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


답변:


13

OpenGL ES (Embedded Systems)는 제거 된 OpenGL 버전입니다. 이 둘 사이에는 많은 차이점이 있으며 자세한 내용을 보려면 이 128 사양 용지를 읽으십시오. 그러나 ES는 OpenGL의 하위 집합이므로 모든 ES 앱은 비 ES 시스템에서 작동하지만 그 반대는 아닙니다.

ES에있는 것과 그렇지 않은 것을 쉽게 정의 할 수있는 곳은 없습니다. "OpenGL-ES는 OpenGL과 비슷하지만 많은 것들이 없습니다. 예를 들어, glBegin이나 glEnd가 없습니다."


5
ES는 OpenGL의 단순한 하위 집합이 아니기 때문에 모든 ES 앱이 비 ES 시스템에서 작동한다고 주장하는 것은 사실이 아닙니다.
Jari Komppa

5
@JariKomppa-OpenGL 4.1부터입니다.
DMan

변화 / 차이점에 대한 좋은 요약 좋을 것 입니다 .
bobobobo

19

아아, 지금까지 답변 중 하나가 완전하지 않고 완전히 정확합니다. 실제로 OpenGL-ES는 OpenGL이하지 않는 두 가지 작업을 수행합니다.

1) OpenGL API를 제거하고 확장하여 모바일 플랫폼에 적합하게 만듭니다. 즉, 먼저 실제로 필요하지 않은 API 및 기능을 제거하고 다각형 렌더링 또는 표시 목록 사용과 같은 모바일 구현에 부담이됩니다. 그런 다음 모바일 플랫폼에 더 유용하도록 몇 가지 신중한 확장 기능을 만듭니다. 그래도 이것의 예를 기억할 수 없습니다.

2) 모바일 플랫폼의 창 관리자 (따라서 기본 그래픽 하드웨어)에 인터페이스를 제공합니다. EGL로 알려진 OpenGL-ES의이 부분은 데스크탑의 GLUT와 매우 유사합니다. 해당 인터페이스에 반드시 필요한 것은 아닌 편리한 방법이 없습니다. 따라서 다면체 나 구를 그리는 API는 없습니다 (GLUT처럼). 그러나 예를 들어 GLUT의 init (), DisplayFunc () 및 ReshapeFunc () 콜백에 해당하는 API가 있습니다.


2
EGL은 OpenGL ES의 일부가 아닙니다. 그것은 별개의 것입니다. 사양을 참조하십시오. OpenGL ES의 필수 부분은 아니며 시스템에 존재할 수 있다는 말을 제외하고는 거의 언급되지 않지만 창 설정 등은 OpenGL ES 스펙의 범위를 벗어납니다
gman

7

Android에는 두 가지 OpenGL ES 버전이 있습니다.

  • OpenGL ES 1.x (1.0 또는 1.1) : 즉각적인 명령이없는 OpenGL 1.5의 하위 세트
    • glBegin / glEnd 없음
    • 쿼드 또는 폴리곤 지원 안함
  • OpenGL ES 2.0 : 고정 파이프 라인이없는 OpenGL 3.X의 하위 세트
    • 버텍스 쉐이더
    • 프래그먼트 셰이더
    • 지오메트리 쉐이더를 사용할 수 없습니다

경고, OpenGL ES 2.0은 OpenGL ES 1.X와 호환되지 않습니다!

거의 모든 안드로이드 폰에는 OpenGL 1.X GPU가 있으며 대부분 2.0이 있습니다. OpenGL ES 2.0은 Android 2.x 이상에서만 사용할 수 있습니다.

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