Programing

OpenGL ES 대 OpenGL

lottogame 2020. 9. 24. 08:11
반응형

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 호출을 사용합니다.

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

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

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


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

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


OpenGL ES는 임베디드 시스템 용 Open Graphics Library (OpenGL ES 또는 GLES)가 비디오 게임에서 사용되는 것과 같은 2D 및 3D 컴퓨터 그래픽을 렌더링하기위한 OpenGL 컴퓨터 그래픽 렌더링 API (응용 프로그래밍 인터페이스)의 하위 집합이며 일반적으로 다음을 사용하여 하드웨어 가속을 사용함을 의미합니다. 그래픽 처리 장치 (GPU). 스마트 폰, 컴퓨터 태블릿, 비디오 게임 콘솔 및 PDA와 같은 임베디드 시스템 용으로 설계되었습니다.

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

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


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-과거와 현재


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


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

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


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


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

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

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

링크를 참조하십시오 .

추신

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

참고 URL : https://stackoverflow.com/questions/4519264/opengl-es-versus-opengl

반응형