OpenGL
조무위키
이 문서에서 설명하는 대상은 좆퇴물입니다!! |
계속하면 정신이 나가 샷건을 칠 수 있으니 하기 전에 다량의 항암제를 준비하거나 전문가와 상의를 권고합니다. 하지만 이미 늦었군요, YOU DIED |
ㄴ 그래픽 드라이버 만들 때
외계인 고문급의 퍼포먼스와 갓적화를 이뤄주는 로우레벨 API 목록 | |||
---|---|---|---|
맨틀 | DirectX 12 | Vulkan |
최적화가 개판인 API 목록 | |||
---|---|---|---|
Metal | DirectX 9.0c | OpenGL | OpenGL ES |
OpenGL(Open Graphics Library)는 실리콘 그래픽스가 처음 만들고 지금은 크로노스 그룹에서 개발하고 관리하는 그래픽 API이다.
엄연히 말하면 OpenGL 자체는 라이브러리가 아니라 API이기 때문에 실제 구현할 때는 API를 코드로 구현한 라이브러리를 사용해야 한다. 이것을 실제 구현한 라이브러리로는 GLUT (애저녁에 개발 중단), FreeGLUT (오픈소스), GLFW (Graphics Library FrameWork) 등이 있다. 학교에서는 FreeGlut을 썼었는데 GLFW를 쓰는 것이 더 쉽다.
크로스 플랫폼이라서 윈도우도 좀 옛날 버전(1.x)이기는 하지만 네이티브로 지원하며 리눅스에서는 아주 잘 지원한다.
그래픽카드 만드는 회사들도 당연히 지원 잘해준다.
다만 macOS에서는 예전에는 애플에서 적극적으로 참여했었기 때문에 아주 많이 사용했지만, Metal이라는 자체 라이브러리를 만들면서 OpenCL과 같이 레거시로 격하됐고(Deprecated) 애플의 평소 행보를 봤을 때 조만간 지원이 삭제될 것으로 보인다.
최신 버전은 2017년 7월 31일에 나온 4.6이며 요즘은 Vulkan을 주로 개발하기에 7년이 지난 지금까지 새 버전이 안 나오고 있다.
다른 라이브러리보다 상대적으로 쉽기 때문에 컴퓨터 그래픽스 과목을 학부 때 듣게 되면 접하게 된다.
여러 기능들이 계속 추가되어 왔기 때문에 API에 추가 기능까지 지원을 해야 해서 드라이버가 중요한데 너무 복잡해져서 버그 같은 것이 너무 많아지니까 골치 아파진 크로노스 그룹은 Vulkan을 만들게 됐다. 오죽하면 윈도우 크롬에서는 OpenGL 명령어를 그냥 DirectX로 번역해서 돌린다고 한다. 근래에는 Vulkan도 플래그로 지원한다.
보통 윈도우 게임을 리눅스로 포팅하게 되면 이걸 사용한다. 윈도우에서는 당연히 DirectX가 훨씬 나으며 성능도 잘 나온다.