본문 바로가기

Vulkan

Introduction

다음 글 : Overview>>


About


이 튜토리얼은 Vulkan 그래픽의 사용 및 API 계산의 기본 사항을 알려줍니다. Vulkan은 최신의 그래픽 카드를 훨씬 더 잘 추상화하는 Khronos 그룹 (OpenGL로 알려짐)의 새로운 API입니다. 이 새로운 인터페이스를 사용하면 응용 프로그램이 의도하는 바를 잘 기술 할 수 있으므로 OpenGL 및 Direct3D와 같은 기존 API와 비교하여 성능이 향상되고 과도한 드라이버 동작을 줄일 수 있습니다. Vulkan의 아이디어는 Direct3D 12 및 Metal의 아이디어와 유사하지만 Vulkan은 완벽한 크로스 플랫폼이라는 장점이 있으며 동시에 Windows, Linux 및 Android 용으로 개발할 수 있습니다.

그러나 이러한 이점에 대해 지불하는 비용은 훨씬 더 세밀한 API를 사용하여 프로그래밍을 해야 한다는 것입니다. 그래픽 API와 관련된 모든 세부 사항은 초기 프레임 버퍼 작성 및 버퍼 및 텍스처 이미지와 같은 객체에 대한 메모리 관리를 포함하여 어플리케이션이 시작될 때 설정 해야합니다. 그래픽 드라이버에 의존 하는 일이 줄어 들기 때문에 올바른 동작을 위해 응용 프로그램에서 더 많은 작업을 해야 합니다.

여기서 전달하는 메시지는 벌컨이 모든 사람을 위한 것이 아니라는 것입니다. 고성능 컴퓨터 그래픽에 열의를 가진 프로그래머와 이 분야에 관하여 일을 하고 있는 사람을 대상으로 하고 있습니다. 컴퓨터 그래픽보다는 게임 개발에 더 관심이 있다면 OpenGL 또는 Direct3D를 사용하는 것이 좋습니다. 또 다른 대안은 Unreal Engine 또는 Unity와 같은 엔진을 사용하는 것입니다. 이 엔진은 Vulkan을 사용할 수있을뿐만 아니라 훨씬 높은 수준의 API를 제공합니다.

이 튜토리얼을 수행하기위한 몇 가지 전제 조건을 설명한다.

Vulkan (NVIDIA, AMD, Intel)과 호환되는 그래픽 카드 및 드라이버

C ++ 경험 (RAII, 초기 설정자 목록 익숙 함)

C ++ 11 (Visual Studio 2013+, GCC 4.8 이상)과 호환되는 컴파일러

3D 컴퓨터 그래픽에 대한 경험

이 자습서에서는 OpenGL 또는 Direct3D 개념에 대한 지식은 없지만 3D 컴퓨터 그래픽의 기본 사항을 알아야합니다. 예를 들어 투시와 투영을 구성하는 수학적 방법은 설명하지 않습니다. 컴퓨터 그래픽 개념의 훌륭한 소개를 보려면 온라인 설명서를 참조하십시오.

원하는 경우 C ++ 대신 C를 사용할 수 있지만 C를 사용 하려면 C에서 사용할 수 있는 다른 선형 대수 관련 라이브러리를 사용 해야 하며 직접 코드 구조를 만들어 사용 해야 합니다. 우리는 클래스 및 RAII와 같은 C ++ 기능을 사용하여 로직 및 리소스 관리를 구성합니다.

E-Book

이 자습서를 전자 서적으로 읽으려면 EPUB 또는 PDF 버전을 다운로드 할 수 있습니다.


EPUB

PDF

Tutorial structure


벌컨 (Vulkan)의 작동 방식과 화면에서 첫 번째 삼각형을 얻기 위하여 할 일에 대한 개요부터 시작하겠습니다. 모든 작은 단계의 사용 목적은 전체 그림 안에서 이들의 기본적인 역할을 이해 한 후에 더 잘 이해할 수 있습니다. 다음으로 선형 대수 연산을 위한 GLM 라이브러리와 Vulkan SDK와 창 생성을 위한 GLFW를 사용하여 개발 환경을 설정합니다. 이 자습서 에서는 Visual Studio로 Windows에서, GCC에 의한 Ubuntu Linux로 설정하는 방법에 대해 설명합니다.


그런 다음 첫 삼각형을 렌더링하는 데 필요한 Vulkan 프로그램의 모든 기본 구성 요소를 구현합니다. 각 장은 대략 다음과 같은 구조를 따릅니다 :


새로운 개념과 목적 소개

관련 API 호출을 모두 사용하여 프로그램에 통합.

추상화된 헬퍼 작성


각 장은 이전 장에서 후속 조치로 작성 되었지만 특정 Vulkan 기능을 소개하는 독립 실행 형 기사로 장을 읽을 수도 있습니다. 이는 해당 사이트가 참고 자료로도 유용하다는 것을 의미합니다. Vulkan의 모든 함수와 타입들은 스펙 해당 스펙설명 페이지로 연결되어 있으므로 클릭하면 자세한 내용을 볼 수 있습니다. Vulkan은 매우 새로운 API이므로 스펙 자체에는 몇 가지 오류가 있을 수 있습니다. 이러한 오류나 의견이 있으면 Khronos GitHub repository 사이트를 이용하여 제출하시는 것이 좋습니다.


첫 번째 Vulkan 프로그램으로 삼각형을 화면에 그리는 설명을 마친 후에는 텍스처 및 3D 모델을 사용하도록 프로그램을 이어서 작성할 것 입니다.


이전에 그래픽 API (OpenGL 또는 Direct3D) 를 사용해 왔다면, 첫 번째 지오메트리가 화면에 나타날때 까지 많은 단계가  있을 수 있음을 알 수 있을 것 입니다. Vulkan 에는 이러한 초기 단계가 많이 있지만, 각 단계는 이해하기 쉽고 중복되지 않는 다는 것을 알 수 있습니다.


일단 지루한 삼각형을 그리면 완벽한 질감으로 구성된 3D 모델을 그리는 데 그리 많은 작업이 필요하지 않으며, 이러한 단계를 넘어서는 각각의 단계에서 훨씬 보람을 느낄 수 있을 것입니다.


튜토리얼을 수행하는 동안 문제가 발생하면 먼저 FAQ를 검색해 하여 문제점 및 해당 문제에 대한 해결방법이 있는지 확인하십시오. 그 후에도 여전히 문제가 발생한다면 관련 페이지의 뎃글로 남겨 주시기 바랍니다.


본 튜토리얼은 Vulkan Tutorial 사이트의 내용을 원 저작자의 허락하에 한글로 번역 및 편역을 하고 있습니다.
영문에 익숙하신 분들은 원 저작자의 사이트를 참고하시기 바랍니다.


다음 글 : Overview>>


'Vulkan' 카테고리의 다른 글

Setup - Validation layers  (0) 2018.01.21
Setup - Creating an instance  (0) 2018.01.20
Setup - Base code  (0) 2018.01.20
Development environment  (0) 2018.01.19
Overview  (0) 2018.01.19