이 튜토리얼은 Vulkan의 그래픽스와 컴퓨팅 API를 사용하는 기본기를 가르쳐줄 것입니다. Vulkan은 현대 그래픽 카드의 추상화를 보다 더 낫게 제공하도록 Khronos Group(OpenGL로 알려진)에서 만든 새로운 API입니다. 새로운 인터페이스는 어플리케이션을 의도한대로 더 잘 작동되도록 하며, OpenGL이나 Direct3D같은 API보다 나은 향상과 덜 놀라운 드라이버 동작을 이끌 수 있습니다. Vulkan의 개념은 Direct3D 12와 Metal과 비슷합니다. 하지만 Vulkan은 완전한 크로스 플랫폼의 이점이 있어 Windows, Linux, Android를 동시에 개발할 수 있게 해줍니다.
하지만 이러한 이점을 얻기 위해 당신은 상당히 많은 API들을 학습해야 합니다. 그래픽 API와 관련된 모든 세부사항들은 당신의 어플리케이션에서 설정되어야 합니다. 프레임 버퍼를 생성하고, 버퍼나 텍스쳐 이미지 같은 오브젝트들의 메모리를 관리하는 것들까지 포함해서 말이죠. 그래픽 드라이버가 하는 일이 적다는 뜻은, 올바르게 작동할 수 있도록 당신의 어플리케이션에서 더 많은 것을 해야 한다는 것입니다.
중요한 건 Vulkan은 모두를 위한 것은 아니라는 점입니다. 높은 성능의 컴퓨터 그래픽을 열망하거나 관련된 분야에서 일을 하는 프로그래머들을 대상으로 합니다. 만약 컴퓨터 그래픽보다는 게임 개발에 더 관심이 있다면, OpenGL이나 Direct3D를 고수하는 것이 나을 것입니다. 다른 대안으로는 Unreal Engine이나 Unity같은, Vulkan을 지원하는 High Level API를 사용하는 것입니다.
이 튜토리얼을 따라가기 위한 몇가지 전제조건이 있습니다:
이 튜토리얼에선 OpenGL이나 Direct3D에 대한 지식이 있다고 가정하지 않습니다. 하지만 3D 컴퓨터 그래픽에 대한 기초 지식은 필요합니다. 예를 들면, perspective projection에 대한 수학적인 내용은 설명하지 않습니다. 이 온라인 서적에서 컴퓨터 그래픽에 대한 좋은 설명을 볼 수 있습니다. 컴퓨터 그래픽에 대한 다른 훌륭한 자료들도 있습니다:
당신이 원한다면 C++ 대신 C를 사용할 수도 있습니다. 하지만 다른 선형대수 라이브러리를 사용해야 하고, 스스로 코드 구조를 작성해야 합니다. 우리는 class나 RAII같은 C++ 기능을 사용할 것입니다. Rust 개발자가 할 수 있는 튜토리얼의 다른 버전도 존재합니다.
다른 프로그래밍 언어를 사용하는 개발자가 쉽게 따라오기 위해서, Vulkan을 사용할 때 오리지날 C의 API를 사용할 것입니다. 하지만 만약 당신이 C++을 사용한다면, 몇가지 더러운 작업들을 추상화하여 오류를 예방할 수 있도록 새로 만들어진 Vulkan-Hpp를 사용하는 것을 권장합니다.
튜토리얼을 e-book으로 보고 싶다면 EPUB이나 PDF 버전을 다운로드 받을 수 있습니다: