알라딘

처음 만나는 Vulkan - 차세대 그래픽스 API 표준 Vulkan으로 고성능, 고효율 3D 그래픽스 만들기

파르민더 싱 지음, 이환용 옮김 | 한빛미디어
  • 등록일2018-09-14
  • 파일포맷pdf
  • 파일크기6 M  
  • 지원기기아이폰, 아이패드, 안드로이드, 태블릿, PC
  • 평점 평점점 평가없음

책소개

차세대 그래픽스 API 표준 Vulkan을 기초부터 학습하기 위한 모든 것
OpenGL API의 차세대 표준이라고 보기도 하지만, Vulkan은 새로운 API에 대한 시장의 요구에 맞추어 완전히 새로운 접근 방식으로 기초부터 다시 설계한 차세대 그래픽스 및 컴퓨팅 API 표준이다. Vulkan은 GPU 하드웨어 설정을 제어해 병렬 컴퓨팅 능력을 최대한 활용하게 한다. Vulkan의 드라이버 계층은 작게 구성돼 있는데, 이는 응용 프로그램 개발자가 응용 프로그램과 사용하는 자원, 메모리 관리, 동기화 등 더 많은 것을 책임져야 한다는 것을 뜻한다. 따라서 Vulkan API로 프로그래밍을 하려면 일정 수준 이상의 그래픽스와 프로그래밍 관련 지식이 필요하다.
이 책에는 Vulkan의 기초를 학습하기 위한 모든 것이 담겨 있다. 이 책은 독자로 하여금 Vulkan의 이론과 개념, API 표준을 배우고, 실습 예제를 통해 Vulkan이 작동하는 것을 볼 수 있게 한다. 이 책에서는 되도록 일반적이고 직접적인 개념이나 용어를 사용하려고 노력했다. 특히 예제는 독자가 Vulkan을 차근차근 배울 수 있게 장 순서대로 따라 하도록 구성되어 있으며, 각 장은 이전 장의 내용에 새로운 내용을 추가하고 차이점을 소개한다.
이 책을 통해 Vulkan을 완벽히 마스터하기는 어렵지만, Vulkan이 기본 개념과 API 표준을 배우고 예제를 통해 기본 동작과 기능을 살펴볼 수 있다. 게임의 성능 향상과 최적화 또는 게임 엔진 개발에 관심이 있는 개발자라면 Vulkan을 이용해 만족도 높은 결과를 얻길 바란다.

이 책에서 다루는 내용
1장 Vulkan의 기본이 되는 내용을 설명하고, 현재 가장 널리 쓰이는 OpenGL API와 비교해 Vulkan의 차별화된 기능들을 설명한다.
2장 슈도 코드 프로그램을 통해 간단한 'Hello World' 프로그램을 작성해 본다. 이를 통해 Vulkan 프로그램을 맛보고, Vulkan 응용 프로그램을 빌드하는 단계별 과정을 배우게 된다.
3장 첫 번째 Vulkan 예제 프로그램을 만들어 보면서 프로그래밍 환경 설정 방법을 배운다.
4장 Vulkan 응용 프로그램에서 디버깅하는 방법을 설명한다.
5장 커맨드 버퍼를 상세히 설명하고 커맨드 버퍼를 구현해 본다.
6장 리소스 할당과 스와프 체인 구축 이미지 리소스에 대해 살펴보고, 이미지 생성과 할당, 바인딩, 매핑 같은 메모리 관리 개념에 관해 설명한다.
7장 버퍼 리소스와 그리려는 물체의 기하 정보를 포함하는 버텍스 버퍼를 구현하는 방법을 배운다.
8장 Vulkan의 컴퓨팅 및 그래픽스 파이프라인을 소개한다. 이 장에서는 그래픽스 파이프라인 흐름에 대한 개략적인 설명과 함께 파이프라인의 시작부터 끝까지 다양한 모듈의 역할을 설명한다.
9장 Vulkan에서 개체를 그리는 과정을 상세히 설명한다.
10장 디스크립터와 푸시 상수를 사용해 Vulkan 응용 프로그램에서 셰이더 리소스의 값을 변경하는 방법에 관해 설명한다.
11장 텍스처를 추가해 3D 물체에 사실감을 부여하는 렌더링 방법을 배운다.

이 책을 배우는 데 필요한 사전 지식
이 책에서 설명한 하드웨어와 소프트웨어가 필요하며, C/C++ 프로그래밍에 대한 지식과 일정 수준의 코딩 경험이 있어야 한다.
이 책의 대상 독자
이 책은 크로스 플랫폼, 고성능 그래픽과 컴퓨팅 응용 프로그램을 만들어 사용하는 데 관심 있는 독자를 대상으로 하고 있다. 그래픽스와 컴퓨팅 분야의 지식과 경험이 있다면 관련된 Vulkan 개념을 이해하는 데 도움이 될 것이다.

저자소개

싱가포르에 위치한 블랙매직디자인Blackmagic Design에서 컴퓨터 그래픽스 엔지니어로 일하고 있다. 그래픽스 응용 개발 관련된 업무를 해왔고, 특히 네트워크 시뮬레이션, 기하 모델링, 네비게이션, 자동차, 인포테인먼트 시스템, 영상처리, 포스트 프로덕션 관련 분야에서 10년 이상 일해왔다. 그의 관심 연구 분야로는 GPU 프로그래밍, 그래픽스 및 컴퓨팅 응용 프로그램의 확장성을 위한 포팅과 성능 최적화 기술 등이 있다.
그는 Vulkan과 Metal, OpenGL ES 트레이너로 활동하고 있으며, 『OpenGL ES 3.0 Cookbook』(Packt, 2015)을 저술한 바 있다. 여행과 가벼운 요리가 취미이고, 딸아이와 좋은 시간을 보내려고 노력하고 있다.
저자와 연락하고 싶다면 https://www.linkedin.com/in/parmindersingh18 또는 http://openglescookbook.com을 통해 만날 수 있다.

목차

CHAPTER 1 차세대 3D 그래픽스 API 시작하기
1.1 Vulkan과 그 진화 과정
1.2 Vulkan vs OpenGL
1.3 알아두어야 할 주요 용어
1.4 Vulkan의 기초
1.5 Vulkan 응용 프로그램의 이해
1.6 Vulkan 프로그래밍 모델 시작하기
1.7 요약

CHAPTER 2 처음 만드는 Vulkan 슈도 프로그램
2.1 Vulkan 설치
2.2 Hello World 슈도 코드
2.3 하나로 맞추기
2.4 요약

CHAPTER 3 장치와 인사하기
3.1 LunarG SDK 시작하기
3.2 CMake로 첫 번째 프로젝트 설정하기
3.3 확장판 소개 3.3.1 레이어와 확장판에 대한 쿼리
3.4 인스턴스 생성
3.5 물리적 장치와 논리적 장치 이해하기
3.6 큐와 큐 패밀리 이해하기
3.7 장치와 큐를 함께 구현하기
3.8 요약

CHAPTER 4 디버깅
4.1 디버깅 맛보기
4.2 LunarG 유효성 검증 레이어와 해당 기능 이해하기
4.3 디버깅 구현
4.4 요약

CHAPTER 5 커맨드 버퍼와 메모리 관리
5.1 커맨드 버퍼 시작하기
5.2 커맨드 풀과 버퍼 API
5.3 커맨드 버퍼의 레코딩
5.4 커맨드 버퍼를 위한 래퍼 클래스 구현
5.5 메모리 관리
5.6 요약

CHAPTER 6 WSI를 이용한 이미지 리소스 할당과 스와프 체인 구축
6.1 이미지 리소스 시작하기
6.2 이미지 리소스 이해하기
6.3 메모리 할당과 이미지 리소스 바인딩
6.4 스와프 체인 소개
6.5 깊이 이미지 생성
6.6 응용 프로그램의 흐름 요약
6.7 요약

CHAPTER 7버퍼 리소스, 렌더 패스, 프레임 버퍼와 SPIR-V 셰이더
7.1 버퍼 리소스의 유형 이해하기
7.2 버퍼 리소스로 기하 데이터 생성하기
7.3 렌더 패스 이해하기
7.4 렌더 패스 사용과 프레임 버퍼 생성하기
7.5 배경색 지우기
7.6 Vulkan에서의 셰이더 작업
7.7 요약

CHAPTER 8 파이프라인과 파이프라인 스테이트 관리
8.1 파이프라인 시작하기
8.2 PCO로 파이프라인 개체 캐싱
8.3 그래픽스 파이프라인 생성
8.4 컴퓨팅 파이프라인 이해
8.5 Vulkan의 파이프라인 스테이트 개체
8.6 파이프라인 구현
8.7 요약

CHAPTER 9 개체 그리기
9.1 Vulkan의 그리기 과정 개요
9.2 드로잉 개체 준비하기
9.3 드로잉 개체의 렌더링
9.4 인덱싱된 기하의 렌더링
9.5 Vulkan의 동기화 프리미티브 이해하기
9.6 디스플레이 윈도의 크기 조정
9.7 요약

CHAPTER 10 디스크립터와 푸시 상수
10.1 디스크립터의 개념 이해하기
10.2 Vulkan에서 유니폼을 구현하는 방법
10.3 푸시 상수 업데이트
10.4 요약

CHAPTER 11 텍스처 그리기
11.1 이미지 리소스의 개요
11.2 텍스처 드로잉을 위한 사전 작업
11.3 선형 타일링으로 이미지 리소스 구현하기
11.4 최적 타일링으로 이미지 리소스 구현하기
11.5 이미지와 버퍼 간 데이터 내용 복사
11.6 디스크립터 세트의 업데이트
11.7 요약

한줄 서평