책 소개
원서의 예제 코드가 아직 등록되지 않았습니다. 대안으로 다음의 두 링크를 알려드립니다.
- https://github.com/LunarG/VulkanSamples
- https://github.com/SaschaWillems/Vulkan
요약
기반부터 재설계해 애플리케이션들이 GPU 가속을 직접 조절할 수 있게 하는 차세대 OpenGL 기술 표준인 불칸에 대한 공식 가이드다. 불칸 API 수석 개발자인 저자가 풍부한 예제와 함께 불칸 API와 SPIR-V 셰이딩 언어를 소개한다. 또한 불칸의 목적, API 구성의 핵심 개념을 토대로 불칸의 고유하고 놀라운 능력을 필요로 하는 복잡한 렌더링 시스템을 보여주기 때문에 그래픽 애플리케이션을 작성하는 모든 사람들에게 필수적인 레퍼런스가 될 것이다.
이 책에서 다루는 내용
■ 불칸의 성능을 시연하고 OpenGL과 다른 점을 보여주는 테스트된 코드 예제
■ 불칸의 새 메모리 시스템을 시작하고 작업하는 전문 가이드
■ 큐, 명령어, 자료 이동, 프리젠테이션에 대한 철저한 논의
■ SPIR-V 바이너리 셰이더 언어와 계산/그래픽 파이프라인에 대한 완전한 설명
■ 그리기 명령어, 기하구조와 화소 처리, 동기화 기본체, 불칸 자료를 응용프로그램에서 읽기에 대한 자세한 논의
■ 응용프로그램의 완전한 사례 연구: 복잡한 다중패스 아키텍처와 다중 처리 큐를 사용한 지연 렌더링
■ 불칸 함수와 SPIR-V 연산 코드, 완전한 불칸 용어 사전을 보여주는 부록
이 책의 대상 독자
주요 독자는 이미 다른 그래픽과 계산 API에 친숙한 프로그래머들이다.
이 책의 구성
1장, ‘불칸의 개요’에서는 불칸을 간략히 소개하고, 불칸의 기반을 구성하는 개념을 알아본다. 또한 불칸 객체를 생성하는 기본을 살펴보고, 불칸 시스템을 시작하는 기초적인 방법도 함께 알아본다.
2장, ‘메모리와 자원’에서는 인터페이스의 기반이 되는 불칸의 메모리 시스템을 소개한다. 불칸 장치가 사용하는 메모리를 어떻게 할당하는지와 애플리케이션 안에서 수행되는 시스템 요소들을 알아본다.
3장, ‘큐와 명령어’에서는 명령어 버퍼(command buffer)를 설명하고 이를 제출하는 큐를 소개한다. 불칸 프로세스가 어떻게 작동하고 애플리케이션 실행을 위한 명령어 다발을 생성한 뒤 장치에 어떻게 보내는지 보여준다.
4장, ‘자료 이동’에서는 최초로 자료 이동에 중점을 둔 몇몇 불칸 명령어를 소개한다. 3장에서 처음 다룬 개념을 사용해 명령어 버퍼를 생성하며, 2장에서 소개한 자원과 메모리에 저장된 자료를 복사하고 포맷한다.
5장, ‘프리젠테이션’에서는 애플리케이션이 생성한 이미지를 어떻게 화면에 표현하는지 보여준다. 프리젠테이션은 윈도우 시스템과 상호작용하기 위해 사용되는 용어로, 플랫폼에 특화됐으며, 이 장에서는 플랫폼 특화 주제 중 일부를 자세히 알아본다.
6장, ‘셰이더와 파이프라인’에서는 불칸이 사용하는 바이너리 셰이딩 언어 SPIR-V를 소개한다. 또한 파이프라인(pipeline) 객체도 살펴보며, SPIR-V 셰이더를 사용해 어떻게 생성되는지를 보여준다. 그리고 계산 파이프라인(compute pipeline)의 개념을 알아보는데, 이는 불칸을 사용해서 계산 작업을 처리하는 데 사용할 수 있다.
7장, ‘그래픽 파이프라인’에서는 6장에서 다룬 것을 기반으로 그래픽 파이프라인을 생성하고 소개하는데, 이는 불칸에서 그래픽 프리미티브를 렌더하는 데 필요한 모든 설정을 포함한다.
8장, ‘그리기’에서는 불칸에서 가용한 다양한 그리기 명령어를 알아보고, 색인된(indexed) 것과 비색인된 그리기, 인스턴싱, 간접 명령도 함께 살펴본다. 그래픽 파이프라인에 자료가 들어가는 방법, 7장에서 소개한 것보다 더 복잡한 기하구조를 그리는 방법을 알아본다.
9장, ‘기하구조 처리’에서는 불칸 그래픽 파이프라인의 첫 반쪽을 더욱 자세히 알아보고, 테셀레이션과 기하구조 셰이더 단계에 대해 다른 시각으로 접근한다. 또한, 이 단계에서 가능한 일부 더 발전된 방법을 보여주고 래스터라이제이션 단계까지 파이프라인을 다룬다.
10장, ‘화소 처리’에서는 9장에서 처리하지 않는 기하구조를 유저에게 보여주기 위한 픽셀의 연속을 변환하는 방법인 레스터라이제이션 과정과 그 후의 모든 일을 알아본다.
11장, ‘동기화’에서는 불칸 애플리케이션에 가용한 다양한 프리미티브 동기화를 다루며, 펜스(fence), 이벤트(event), 세마포어(semaphore)도 알아본다. 이들 모두는 애플리케이션이 불칸 병렬 본질의 효율적인 사용을 가능하게 하는 기반이 된다.
12장, ‘자료 돌려받기’에서는 이전 장에서 사용된 통신의 방향을 역으로 해 애플리케이션에서 불칸으로부터 자료를 읽을 때 일어나는 사안들을 살펴본다. 불칸 장치가 수행하는 연산의 시간을 측정하고, 불칸 장치로부터 연산에 대한 통계를 받고, 애플리케이션에서 불칸이 생성한 자료를 받는 방법을 보여준다.
13장, ‘다중 패스 렌더링’에서는 이전에 다룬 다양한 주제를 다시 되짚어보고, 더 발전된 애플리케이션(복잡한 다중 패스 설계와 다중 처리 큐를 사용한 지연 렌더링 애플리케이션)을 생성하기 위해 여러 가지를 한데 묶는다.
‘부록’에서는 불칸 애플리케이션에서 가용한 함수를 생성하는 명령어 버퍼를 표로 보여주며, 속성을 결정할 때 빠르게 참조할 수 있다.
목차
목차
- 1장. 불칸의 개요
- 인스터스, 장치, 큐
- 불칸 인스턴스
- 불칸 물리 장치
- 물리 장치 메모리
- 장치 큐
- 논리 장치 생성
- 객체 종류와 함수 규약
- 메모리 관리
- 불칸에서의 멀티스레딩
- 수학적 개념
- 벡터와 행렬
- 좌표계
- 불칸의 강화
- 레이어
- 확장
- 깨끗하게 종료하기
- 요약
- 인스터스, 장치, 큐
- 2장. 메모리와 자원
- 주 메모리 관리
- 자원
- 버퍼형식과 지원
- 이미지
- 자원 시야
- 자원 소멸
- 장치 메모리 관리
- 장치 메모리 할당
- 주 시스템의 장치 메모리에 대한 접근
- 메모리를 자원에 결속
- 간헐 자원
- 요약
- 3장. 큐와 명령어
- 장치 큐
- 명령어 버퍼의 생성
- 명령어 기록
- 명령어 버퍼 재사용
- 명령어의 제출
- 요약
- 4장. 자료 이동
- 자원 상태 관리
- 파이프라인 방벽
- 전역 메모리 방벽
- 버퍼 메모리 방벽
- 이미지 메모리 방벽
- 버퍼의 비우기와 채우기
- 이미지를 비우고 채우기
- 이미지 자료의 복사
- 압축된 이미지 자료를 복사
- 이미지 늘이기
- 요약
- 자원 상태 관리
- 5장. 프리젠테이션
- 프리젠테이션 확장
- 프리젠테이션 표면
- 마이크로소프트 윈도우에서의 프리젠테이션
- Xlib 기반 플랫폼에서의 프리젠테이션
- Xcb로 프리젠테이션
- 스왑 체인
- 전체 화면 표면
- 프리젠테이션의 수행
- 마무리 정리
- 요약
- 6장. 셰이더와 파이프라인
- GLSL의 개요
- SPIR-V 개요
- SPIR-V의 표현
- SPIR-V를 불칸에 전달
- 파이프 라인
- 계산 파이프라인
- 특수화 상수
- 파이프라인 생성 가속
- 파이프라인 연결
- 작업 실행
- 셰이더에서의 자원 접근
- 서술자 집합
- 서술자 집합에 자원을 연결
- 서술자 집합의 연결
- 균일, 텍셀, 저장 버퍼
- 푸시 상수
- 표본화된 이미지
- 7장. 그래픽 파이프라인
- 논리적 그래픽 파이프라인
- 렌더패스
- 프레임 버퍼
- 단순 그래픽 파이프라인의 생성
- 그래픽 셰이더 단계
- 정점 입력 상태
- 입력 조합
- 테셀레이션 상태
- 시야 영역 상태
- 래스터라이제이션 상태
- 다중표본 상태
- 깊이와 스텐실 상태
- 색 혼합 상태
- 동적 상태
- 요약
- 8장. 그리기
- 그리기 위한 준비
- 정점 자료
- 색인된 그리기
- 색인-전용 렌더링
- 재설정
- 인스턴싱
- 간접 그리기
- 요약
- 9장. 기하구조 처리
- 테셀레이션
- 테셀레이션 설정
- 테셀레이션 변수
- 테셀레이션 예: 변위 매핑
- 기하 셰이더
- 기본체 자르기
- 기하 셰이더 인스턴싱
- 프로그램 가능한 점 크기
- 선 너비와 래스터라이제이션 사용자의 자르기와 거르기
- 시야 영역 변환
- 요약
- 테셀레이션
- 10장. 화소 처리
- 가위 시험
- 깊이와 스텐실 연산
- 깊이 시험
- 스텐실 시험
- 선행 화소 시험
- 다중표본 렌더링
- 표본율 음영
- 다중 표본 처리
- 논리 연산
- 화소 셰이더 출력
- 색 혼합
- 요약
- 11장. 동기화
- 펜스
- 이벤트
- 세마포어
- 요약
- 12장. 자료 돌려받기
- 질의
- 질의 실행
- 시간 질의
- 주 시스템에서 자료 읽기
- 요약
- 질의
- 13장. 다중 패스 렌더링
- 입력 첨부
- 첨주 내용
- 첨부 초기화
- 렌더 영역
- 첨부 내용의 유지
- 부 명령어 버퍼
- 요약
- 부록. 불칸 함수
- 용어 사전
도서 오류 신고
정오표
정오표
[p.21 : 위에서 6행]
SK
->
SDK
[p. 272 : 3행]
셰이딩 언어인 PIR-V의
->
셰이딩 언어인 SPIR-V의
[p. 480 : 1행]
첨주 내용
->
첨부 내용