Vulkan은 기존 GPU를 통한 하드웨어 가속 그래픽 (및 일반 계산)을위한 새로운 API입니다. OpenGL은 Vulkan보다 높은 수준의 API이므로 계속 개발 될 것입니다. 원래 "glNext"라고 불렀을 때 Vulkan은 "OpenGL 5"가 될 가능성이 높지만 표준기구는 API 이름이 기존의 것에서 비교적 깔끔하게 분리되는 것과 새로운 이름이 더 잘 일치 할 것이라고 결정했습니다. OpenGL 패러다임.
게임 개발자에 대한 Vulkan의 실질적인 장점은 주로 제어에 관한 것입니다. (더 많은 것을 허용하고, 개발자 측에서 훨씬 더 선행 작업을 수행하면서 더 나은 최적화를 가능하게 할 수 있습니다). 구체적으로 :
- API는 여러 스레드에서 명령 버퍼를 비동기 적으로 생성하고 해당 버퍼를 순차적으로 처리하여 명령 파이프 라인으로 처리하는 데 중점을 둡니다. 이것은 현대 하드웨어의 현실을 반영합니다. 오늘날 OpenGL에 구축 된 대부분의 고급 및 / 또는 고성능 소프트웨어는 이러한 종류의 동작 자체를 구현합니다. API 자체가이를 지원한다는 것은 개발자가 해당 프레임 워크를 직접 구현 및 유지 관리 할 필요가 없으며 적은 노력으로도 그렇게 할 수 있음을 의미합니다.
- 스레드 및 메모리 관리 작업은 드라이버가 아닌 응용 프로그램에 맡겨져있어 게임 개발자가 이러한 동작을보다 강력하게 제어 할 수 있으므로 이러한 동작을 개별 게임의 요구에보다 정확하게 맞출 수 있습니다.
- 유효성 검사 및 진단 계층을 독립적으로 활성화하여 이론적으로 "OpenGL 자체가 겪었던 문제"와의 도구 통합을 개선하고 과도한 유효성 검사를 비활성화 할 수 있습니다. 이론적으로 " 레벨 3의 그래픽 "이 훨씬 성능이 뛰어납니다.
- 모바일 버전과 데스크톱 버전 간에는 API 차이가 크지 않으므로 이론적으로 크로스 플랫폼 게임의 포팅이 쉬워지고 다른 경우에는 모든 사람이 싫어하는 버전 확인 두통이 줄어 듭니다.
Vulkan의 피상적 구조에서 C와 매우 유사한 OpenGL과 유사합니다 (API 호출의 모양과 느낌 등). 그러나 더 나은 형식입니다 (모든 것이 int
나쁘지 는 않습니다 . 관련 형식 정의가 있습니다).
OpenGL보다 훨씬 낮은 수준입니다. D3D9에서 D3D10으로의 전환에서 볼 수 있듯이 OpenGL과 Vulkan 간의 운영 설정 및 복잡성이 급격히 증가 할 것으로 예상 할 수 있습니다. D3D12 자체는 기능 측면에서 Vulkan과 매우 유사한 API이기 때문에 전환은 실제로 D3D11에서 12와 더 유사합니다.