위키독:OpenGL

1. 개요[원본 편집]

OpenGL은 Khronos Group에서 관리하고 있는 3D 렌더링 API로, 첫 개발은 Silicon Graphics사에서 했었다. Direct3D와 달리 Khronos Group에서는 OpenGL API의 버전 제정만 담당하며, 실제 구현물은 NVIDIA나 AMD같은 드라이버 제조사들이 개발을 담당한다.

2. API 종류[원본 편집]

OpenGL은 API의 바리에이션이 많다. 여러 플랫폼을 지원하기 위해서 종류별로 나누었다.

2.1. OpenGL[원본 편집]

OpenGL은 데스크톱 플랫폼을 위해 사용되며, 가장 API의 구성이 탄탄하다. 최신 버전은 4.5 + 확장 API로, 이는 Direct3D 11.3에 대응된다. 지원 플랫폼은 Windows, Linux, OS X이다.

2.2. OpenGL ES[원본 편집]

OpenGL ES는 임베디드 플랫폼을 위해 사용되며, 가장 많이 사용되고 있다. 최신 버전은 3.1이다. OpenGL ES 3.0 버전 이상을 지원하는 시스템에서는 Vulkan을 지원한다. 지원 플랫폼은 매우 많지만 대표적으로는 iOS, Android이다.

2.3. WebGL[원본 편집]

WebGL은 웹 브라우저에서 사용되며, 최신 버전은 1.0이다. API 자체는 OpenGL ES 2.0과 대응된다. 가장 널리 사용되는 Microsoft Internet Explorer 11, Microsoft Edge, Mozilla Firefox, Apple Safari, Google Chrome, Opera 등의 대부분의 브라우저에서 지원하고 있다. 다만 Microsoft의 브라우저는 일부 상황에서 버그가 존재한다.

3. 하위 호환[원본 편집]

OpenGL API는 하위 호환을 위해 성능과 개발 편의성을 포기하는 방향으로 제정되어 왔다. OpenGL 1.0을 사용하던 사람은 OpenGL 2.0을 사용하는데 큰 무리가 없으며, OpenGL 2.0을 사용하던 사람은 OpenGL 3.0을 사용하는데 큰 무리가 없다. API 자체가 거의 비슷하기 때문인데, 사용을 중단하는 함수의 양은 적고 추가되는 함수의 양이 많아진다. API 자체가 하위 호환이 잘 되도록 설계했기 때문인지 Direct3D에 비해 성능이 떨어지는 편이다. Windows용 OpenGL 드라이버의 경우 Direct3D를 사용해 구현이 됐기도 하고 같은 함수를 호출해도 드라이버 제조사마다 구현이 조금씩 달라 호환을 위한 코드를 끼워넣는 등의 일이 빈번하여 Direct3D에 비해 느리거나 Direct3D 9에 근접한 속도를 낸다.

4. 관련 항목[원본 편집]

DirectX