OpenGL ES와 OpenGL의 차이점은 무엇입니까?
OpenGL ES와 OpenGL의 차이점은 무엇입니까?
답변:
OpenGL ES와 OpenGL의 두 가지 중요한 차이점은 기본 렌더링을위한 glBegin ... glEnd 호출 의미를 제거하고 (정점 배열에 유리함) 더 나은 지원을 위해 정점 좌표 및 속성에 대한 고정 소수점 데이터 유형을 도입하는 것입니다. FPU가 부족한 임베디드 프로세서의 계산 능력
여기를보세요 : OpenGL_ES
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를 지원할 수 있습니다.
OpenGL 3.3과 OpenGL ES 2.0은 OpenGL 3.3 기능의 하위 집합을 사용하여 대부분 상호 운용이 가능하다는 점을 추가하는 것과 같습니다. 내 사용자 지정 C ++ 엔진은 Android / IOS / Windows / OSX / Linux에 대해 몇 가지 정의가있는 동일한 API 호출을 사용합니다.
주요 차이점은 다음과 같습니다.
다른 많은 차이점도 있지만 중요한 몇 가지를 다룹니다.
OpenGL ES는 임베디드 시스템 용 Open Graphics Library (OpenGL ES 또는 GLES)가 일반적으로 그래픽 처리 장치 (GPU). 스마트 폰, 컴퓨터 태블릿, 비디오 게임 콘솔 및 PDA와 같은 임베디드 시스템 용으로 설계되었습니다.
OpenGL | ES 공식 웹 사이트 : http://www.opengl.org/
또한 wiki에서 더 많은 정보를 얻을 수 있습니다 : http://en.wikipedia.org/wiki/OpenGL_ES
여기에서 OpenGL ES 개요를 검토하세요. http://www.khronos.org/opengles/
간단히 말해서 ES는 "임베디드 시스템"을위한 Open GL의 하위 집합입니다. 구체적인 차이점은 비교하는 버전 및 기능 세트에 따라 다릅니다.
OpenGL ES 레지스트리에는 OpenGL ES와 해당 OpenGL 버전 간의 자세한 API 차이점이 포함되어 있습니다.
그러나 OpenGL ES 3.0의 차이점을 포함하는 문서는 없습니다.
"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을 보지 말 것을 촉구합니다.
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
OpenGL 은 2D 및 3D 그래픽 API로 수천 개의 응용 프로그램을 다양한 컴퓨터 플랫폼에 제공합니다.
OpenGL ES는 잘 정의 된 데스크톱 OpenGL의 하위 집합 입니다.
OpenGL® ES는 콘솔, 전화, 가전 제품 및 차량을 포함한 임베디드 시스템에서 완전한 기능을 갖춘 2D 및 3D 그래픽을위한 로열티가없는 크로스 플랫폼 API입니다. 잘 정의 된 데스크톱 OpenGL의 하위 집합으로 구성됩니다.
이 링크를 참조하십시오 .
추신
WebGL은 OpenGL ES와 사양을 공유합니다. 즉, 데스크탑 OpenGL을 배웠다면 다른 것 (OpenGL ES, WebGL)을 배우는 것이 간단합니다.