안드로이드는 OpenGL ES를 사용하는데, OpenGL과 OpenGL의 차이점은 무엇입니까?
안드로이드는 OpenGL ES를 사용하는데, OpenGL과 OpenGL의 차이점은 무엇입니까?
답변:
OpenGL ES (Embedded Systems)는 제거 된 OpenGL 버전입니다. 이 둘 사이에는 많은 차이점이 있으며 자세한 내용을 보려면 이 128 사양 용지를 읽으십시오. 그러나 ES는 OpenGL의 하위 집합이므로 모든 ES 앱은 비 ES 시스템에서 작동하지만 그 반대는 아닙니다.
ES에있는 것과 그렇지 않은 것을 쉽게 정의 할 수있는 곳은 없습니다. "OpenGL-ES는 OpenGL과 비슷하지만 많은 것들이 없습니다. 예를 들어, glBegin이나 glEnd가 없습니다."
아아, 지금까지 답변 중 하나가 완전하지 않고 완전히 정확합니다. 실제로 OpenGL-ES는 OpenGL이하지 않는 두 가지 작업을 수행합니다.
1) OpenGL API를 제거하고 확장하여 모바일 플랫폼에 적합하게 만듭니다. 즉, 먼저 실제로 필요하지 않은 API 및 기능을 제거하고 다각형 렌더링 또는 표시 목록 사용과 같은 모바일 구현에 부담이됩니다. 그런 다음 모바일 플랫폼에 더 유용하도록 몇 가지 신중한 확장 기능을 만듭니다. 그래도 이것의 예를 기억할 수 없습니다.
2) 모바일 플랫폼의 창 관리자 (따라서 기본 그래픽 하드웨어)에 인터페이스를 제공합니다. EGL로 알려진 OpenGL-ES의이 부분은 데스크탑의 GLUT와 매우 유사합니다. 해당 인터페이스에 반드시 필요한 것은 아닌 편리한 방법이 없습니다. 따라서 다면체 나 구를 그리는 API는 없습니다 (GLUT처럼). 그러나 예를 들어 GLUT의 init (), DisplayFunc () 및 ReshapeFunc () 콜백에 해당하는 API가 있습니다.
Android에는 두 가지 OpenGL ES 버전이 있습니다.
경고, OpenGL ES 2.0은 OpenGL ES 1.X와 호환되지 않습니다!
거의 모든 안드로이드 폰에는 OpenGL 1.X GPU가 있으며 대부분 2.0이 있습니다. OpenGL ES 2.0은 Android 2.x 이상에서만 사용할 수 있습니다.