OpenGL ES 대 OpenGL


91

OpenGL ES와 OpenGL의 차이점은 무엇입니까?


13
어떤 OpenGL과 OpenGL ES 버전을 비교하고 있습니까?
Firas Assaad 2010

3
GL2를 사용하는 경우 항상 GLES2를 기반으로합니다. GL2에는 여러 가지 방법이 있지만 대부분의 경우 GLES2에는 한 가지 방법이 있습니다. 또한 그런 식으로 포팅하는 데 문제가 발생하지 않습니다.
zezba9000 2011


답변:


54

OpenGL ES와 OpenGL의 두 가지 중요한 차이점은 기본 렌더링을위한 glBegin ... glEnd 호출 의미를 제거하고 (정점 배열에 유리함) 더 나은 지원을 위해 정점 좌표 및 속성에 대한 고정 소수점 데이터 유형을 도입하는 것입니다. FPU가 부족한 임베디드 프로세서의 계산 능력

여기를보세요 : OpenGL_ES


19
최신 버전의 데스크탑 / 워크 스테이션 OpenGL에서도 제거되었습니다.
Ben Voigt

2
흥미로운 비교는 OGL 3과 GLES 2입니다. OGL 3에서 즉시 모드는 더 이상 사용되지 않습니다 (여전히 지원됨). OGL 3의 많은 기능은 GLES 2에서 사용할 수 있습니다.
nullspace

49

OpenGL ES는 임베디드 시스템을위한 OpenGL API입니다. API 함수의 수는 일반 OpenGL보다 간단하지만 정점 버퍼를 사용하고 더 많은 셰이더를 작성해야하기 때문에 사용하기가 더 어려울 수 있습니다.

일반 OpenGL을 사용하는 경우 glBegin 및 glEnd를 사용하여 그릴 필요가있는 지오메트리 프리미티브를 묶을 수 있지만 Opengl ES를 사용할 때는 꼭지점 버퍼를 사용해야합니다. 성능 문제 때문이라고 생각합니다.

현재 두 가지 Opengl ES 버전이 있으며 1.1 버전은 고정 렌더링 파이프 라인 만 지원할 수 있으며 2.0 버전은 glsl 셰이더를 지원합니다. 그러나 고정 된 렌더링 파이프 라인이 없습니다. 즉, 모든 것에 대해 자신 만의 셰이더를 작성해야합니다.

Opengl ES는 주로 휴대폰과 웹 (webgl)에서 사용됩니다. 사양에 따르면 데스크탑 OpenGL 드라이버는 모든 OpenGL ES API를 지원할 수 있습니다.


3
정점 버퍼를 사용할 필요가 없다고 생각합니다. 즉시 모드 정점 배열을 사용할 수도 있습니다. 내가 잘못?
Gravity

예, 정점 버퍼를 사용할 필요가 없습니다
Stanislav Ageev

2
"일반적인 OpenGL을 사용할 때 glBegin 및 glEnd를 사용하여 그릴 필요가있는 지오메트리 기본 요소를 포함 할 수 있습니다."코드가 포워드 호환되기를 원하거나 Mac을 사용하는 경우가 아닙니다. 오전;)
Jerfov2 22:41에

38

OpenGL 3.3과 OpenGL ES 2.0은 OpenGL 3.3 기능의 하위 집합을 사용하여 대부분 상호 운용이 가능하다는 점을 추가하는 것과 같습니다. 내 사용자 지정 C ++ 엔진은 Android / IOS / Windows / OSX / Linux에 대해 몇 가지 정의가있는 동일한 API 호출을 사용합니다.

주요 차이점은 다음과 같습니다.

  • 지오메트리 셰이더 지원 부족
  • 최소 / 최대 혼합 없음 (이에 대한 확장이있을 수 있음)
  • 쿼드 목록 프리미티브 없음
  • 더 제한된 텍스처 형식 (특히 부동 소수점 관련)
  • glGetTexImage를 사용할 수 없습니다.
  • 다른 여러 고급 기능에 대해 동일한 변환 피드백이 없습니다.

다른 많은 차이점도 있지만 중요한 몇 가지를 다룹니다.


7
누락 된 모든 함수 호출을 포함하도록이 게시물을 천천히 편집 할 수 있다고 생각합니다. 그들은 같은 해에 출시 된 이후 그리고 버전은 여전히 3.3 및 ES 2.0을해야한다 비교
CoffeDeveloper

8

OpenGL ES는 임베디드 시스템 용 Open Graphics Library (OpenGL ES 또는 GLES)가 일반적으로 그래픽 처리 장치 (GPU). 스마트 폰, 컴퓨터 태블릿, 비디오 게임 콘솔 및 PDA와 같은 임베디드 시스템 용으로 설계되었습니다.

OpenGL | ES 공식 웹 사이트 : http://www.opengl.org/

또한 wiki에서 더 많은 정보를 얻을 수 있습니다 : http://en.wikipedia.org/wiki/OpenGL_ES


6

여기에서 OpenGL ES 개요를 검토하세요. http://www.khronos.org/opengles/

간단히 말해서 ES는 "임베디드 시스템"을위한 Open GL의 하위 집합입니다. 구체적인 차이점은 비교하는 버전 및 기능 세트에 따라 다릅니다.



4

"OpenGL과 OpenGL ES의 차이점은 무엇입니까"라고 묻는다면 더 나은 답을 얻을 수있을 것입니다.

OpenGL ES 1.1과 ES 2.0, OpenGL 1.5와 2.0, OpenGL 3.0과 4.0 사이에는 큰 차이가 있습니다.

다른 사람들이 설명했듯이 ES는 임베디드 시스템 용으로 작성되었습니다. 또한 GL 사양의 시작 이래 최초의 "집 청소"를 나타냅니다. OpenGL은 a) 동일한 작업을 수행하는 여러 가지 방법이 있습니다 (예 : 쿼드 / 직사각형 두 가지 방법으로 그리고 픽셀 이미지를 두 가지 다른 방법으로 블릿하는 등). ES는 덜 정교한 하드웨어 용으로 설계 되었기 때문에 일반적인 설명으로 기능이 적은 OpenGL보다 간단합니다.

OpenGL ES 1.1은 과거이고 OpenGL 또는 OpenGL ES가 미래에 구조적으로 움직이는 방식을 나타내지 않으므로 OpenGL ES 1.1을 보지 말 것을 촉구합니다.


4

용어와 버전은 매우 혼란 스럽습니다 (특히 초보자를 위해). OpenGL 및 OpenGL-ES (GLES)에 대한 전체적인보기는 OpenGL- Then and Now를 참조 하세요 .


1
링크에는 OpenGL 렌더링 파이프 라인의 작동 방식을 잘 설명하는 예제와 함께 훌륭한 자습서도 포함되어 있습니다.
JustWe

다음은 튜토리얼 링크 입니다.
ap-osd

3

둘 사이의 주요 차이점은 OpenGL ES는 스마트 폰과 같은 임베디드 시스템 용으로 만들어졌고 OpenGL은 데스크톱 용이라는 것입니다. 코딩 수준에서 OpenGL ES는 glBegin / glEnd 등과 같은 고정 기능 기능을 지원하지 않습니다. OpenGL은 호환성 프로파일을 사용하여 고정 기능 파이프 라인을 지원할 수 있습니다.


2

OpenGL 4.6과 비교하여 ES 3.0에 대한 현대적인 대답은 허용되는 대답과는 다릅니다. 이제 모든 고정 파이프 라인 항목이 사라졌습니다.

EMBEDDED SYSTEMS의 경우 ES는 훨씬 덜 견고합니다.


1

OpenGL ES는 단순히 임베디드 시스템 용 OpenGL API입니다 (OpenGL ES는 OpenGL 임베디드 시스템을 나타냄). 따라서 OpenGL의 하위 집합이며 휴대 전화 및 일부 VR 시스템에서 널리 사용되며 덜 정교한 하드웨어 용으로 설계되었습니다. OpenGL ES는 OpenGL보다 용어와 기능이 적습니다. 다음과 같이 생각하십시오. 전체 작업에서 기능이 필요하지 않거나 하드웨어가 처리 할 수없는 경우 해당 시스템에 필요한 것만 사용하므로 추가 할 의미가 없습니다. 이 기능은 OpenGL ES가 그래픽 파이프 라인에서 OpenGL로 셰이더를 제공하지 않기 때문에 더 많은 셰이더와 복잡한 코드를 작성해야하기 때문에이 API의 사용을 더 어렵게 만듭니다. OpenGL ES의 마지막 버전은 3.2이며 이제 추가 지오메트리 세부 정보, 새로운 지오메트리 셰이더에 대한 테셀레이션 지원을 제공 할 수 있습니다. 따라서 OpenGL ES 3.0+ (대상 언어 인 경우)를 배우거나 사용하는 것이 좋습니다. 지금과 다음 세대는 더 강력한 하드웨어 및 그래픽 카드와 함께 이전 버전을 사용하지 않고 대상이 OpenGL 인 경우 v3으로 시작하기 때문입니다. 3+ 또는 4.0+. 시간이 더 많은 경우 이전 버전을 빠르게 살펴보고 개발 방법과 이유를 더 잘 이해할 수 있습니다. 자세한 내용은이 링크를 확인할 수 있습니다.https://en.wikipedia.org/wiki/OpenGL_ES


0

간단히 말해, OpenGL은 데스크톱 버전이고 OpenGL은 컴퓨터보다 메모리 및 성능 제약이 더 많은 휴대폰과 같은 임베디드 시스템 용입니다. OpenGL은 사용하기가 더 어려울 것입니다.


0

OpenGL 은 2D 및 3D 그래픽 API로 수천 개의 응용 프로그램을 다양한 컴퓨터 플랫폼에 제공합니다.

OpenGL ES는 잘 정의 된 데스크톱 OpenGL의 하위 집합 입니다.

OpenGL® ES는 콘솔, 전화, 가전 제품 및 차량을 포함한 임베디드 시스템에서 완전한 기능을 갖춘 2D 및 3D 그래픽을위한 로열티가없는 크로스 플랫폼 API입니다. 잘 정의 된 데스크톱 OpenGL의 하위 집합으로 구성됩니다.

링크를 참조하십시오 .

추신

WebGL은 OpenGL ES와 사양을 공유합니다. 즉, 데스크탑 OpenGL을 배웠다면 다른 것 (OpenGL ES, WebGL)을 배우는 것이 간단합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.