로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

불칸 프로그래밍 가이드

 [불칸 제작자의 공식 가이드]
   
지은이 그레이엄 셀러 [옮긴이]이상우   |   출판사 에이콘  |   발행일 2017년 03월 29일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 40,000원36,000원 10%
마일리지 5% 2,000원
발행일 2017-03-29
ISBN 8960779865 | 9788960779860
기타정보 번역서 | 524쪽 | 일반
예상출고일 금일 가능 (근무일기준)
배송비 무료배송
   
프로그래밍
종합지수 0p
   
이 책의 원서
  Vulkan Programming Guide: The Official Guide to Learning Vulkan (OpenGL)
Addison-Wesley Professional | Graham Sellers
 

[요약 ]

기반부터 재설계해 애플리케이션들이 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장, ‘다중 패스 렌더링’에서는 이전에 다룬 다양한 주제를 다시 되짚어보고, 더 발전된 애플리케이션(복잡한 다중 패스 설계와 다중 처리 큐를 사용한 지연 렌더링 애플리케이션)을 생성하기 위해 여러 가지를 한데 묶는다.
‘부록’에서는 불칸 애플리케이션에서 가용한 함수를 생성하는 명령어 버퍼를 표로 보여주며, 속성을 결정할 때 빠르게 참조할 수 있다.


[ 지은이의 말 ]

불칸은 거대하고 복잡하며, 새로운 시스템이다. 책 한 권에서 API의 모든 부분을 다 포함하는 것은 극도로 어려운 일이다. 이 책과 더불어 불칸 매뉴얼을 철저하게 읽기를 권장하며, 이종 계산 시스템의 사용과 다른 API를 사용한 컴퓨터 그래픽에 관한 다른 책을 읽는 것을 추천한다. 이런 자료들은 수학과 이 책에서 가정한 다른 개념들을 이해하기 쉽게 해준다.

1장. 불칸의 개요
__인스터스, 장치, 큐
____불칸 인스턴스
____불칸 물리 장치
____물리 장치 메모리
____장치 큐
____논리 장치 생성
__객체 종류와 함수 규약
__메모리 관리
__불칸에서의 멀티스레딩
__수학적 개념
____벡터와 행렬
____좌표계
____불칸의 강화
____레이어
____확장
__깨끗하게 종료하기
__요약

2장. 메모리와 자원
__주 메모리 관리
__자원
____버퍼형식과 지원
____이미지
____자원 시야
____자원 소멸
__장치 메모리 관리
__장치 메모리 할당
____주 시스템의 장치 메모리에 대한 접근
____메모리를 자원에 결속
____간헐 자원
__요약

3장. 큐와 명령어
__장치 큐
__명령어 버퍼의 생성
__명령어 기록
__명령어 버퍼 재사용
__명령어의 제출
__요약

4장. 자료 이동
__자원 상태 관리
____파이프라인 방벽
____전역 메모리 방벽
____버퍼 메모리 방벽
____이미지 메모리 방벽
__버퍼의 비우기와 채우기
__이미지를 비우고 채우기
__이미지 자료의 복사
__압축된 이미지 자료를 복사
__이미지 늘이기
__요약

5장. 프리젠테이션
__프리젠테이션 확장
__프리젠테이션 표면
____마이크로소프트 윈도우에서의 프리젠테이션
____Xlib 기반 플랫폼에서의 프리젠테이션
____Xcb로 프리젠테이션
__스왑 체인
__전체 화면 표면
__프리젠테이션의 수행
__마무리 정리
__요약

6장. 셰이더와 파이프라인
__GLSL의 개요
__SPIR-V 개요
____SPIR-V의 표현
____SPIR-V를 불칸에 전달
__파이프 라인
____계산 파이프라인
____특수화 상수
____파이프라인 생성 가속
____파이프라인 연결
__작업 실행
__셰이더에서의 자원 접근
____서술자 집합
____서술자 집합에 자원을 연결
____서술자 집합의 연결
____균일, 텍셀, 저장 버퍼
____푸시 상수
____표본화된 이미지

7장. 그래픽 파이프라인
__논리적 그래픽 파이프라인
__렌더패스
__프레임 버퍼
__단순 그래픽 파이프라인의 생성
____그래픽 셰이더 단계
____정점 입력 상태
____입력 조합
____테셀레이션 상태
____시야 영역 상태
____래스터라이제이션 상태
____다중표본 상태
____깊이와 스텐실 상태
____색 혼합 상태
__동적 상태
__요약

8장. 그리기
__그리기 위한 준비
__정점 자료
__색인된 그리기
____색인-전용 렌더링
____재설정
__인스턴싱
__간접 그리기
__요약

9장. 기하구조 처리
__테셀레이션
____테셀레이션 설정
____테셀레이션 변수
____테셀레이션 예: 변위 매핑
__기하 셰이더
____기본체 자르기
____기하 셰이더 인스턴싱
__프로그램 가능한 점 크기
__선 너비와 래스터라이제이션 사용자의 자르기와 거르기
__시야 영역 변환
__요약

10장. 화소 처리
__가위 시험
__깊이와 스텐실 연산
____깊이 시험
____스텐실 시험
____선행 화소 시험
__다중표본 렌더링
____표본율 음영
____다중 표본 처리
__논리 연산
__화소 셰이더 출력
__색 혼합
__요약

11장. 동기화
__펜스
__이벤트
__세마포어
__요약

12장. 자료 돌려받기
__질의
____질의 실행
____시간 질의
__주 시스템에서 자료 읽기
__요약

13장. 다중 패스 렌더링
__입력 첨부
__첨주 내용
____첨부 초기화
____렌더 영역
____첨부 내용의 유지
__부 명령어 버퍼
__요약

부록. 불칸 함수
__용어 사전

그레이엄 셀러(Graham Sellers)
AMD의 소프트웨어 설계자로, AMD의 라데온과 FirePro 제품의 OpenGL, 불칸 드라이버의 개발을 관장했다. 컴퓨터와 기술에 관한 열정은 어린 나이에 BBC Micro와 함께 시작했으며, 여전히 작업을 즐기는 8비트와 16비트 가정용 컴퓨터로 이어졌다. 영국의 사우스햄튼 대학교(University of Southampton)에서 공학 석사를 취득했으며, 지금은 플로리다의 올랜도에서 아내와 두 자녀와 살고 있다.

[ 옮긴이의 말 ]

모바일 렌더러에서 최고의 그래픽을 표현하기 위해 엔진과 렌더링 파이프라인을 커스터마이제이션하던 중에 불칸의 발표는 참으로 반가운 소식이었다. 스티브 잡스의 철학으로 인해 항상 유저 인터페이스와 그래픽에 심혈을 기울이던 애플과는 달리, 오픈 플랫폼인 안드로이드 진영의 경우 통일되지 않은 그래픽 하드웨어로 인한 많은 희생이 있기 때문이다. 애플의 경우 독자 API인 메탈을 통해서 상당한 성능 향상을 이루었지만, OpenGL ES의 경우 너무 오래되어 새로운 모바일 그래픽에 맞지 않는 많은 제약을 가져 통일되지 않은 extension에 의존해야만 했다.
비단 모바일 플랫폼만이 아니라 PC에서도 DirectX의 하드웨어 발전에 맞춘 빠른 지원과 달리 OpenGL의 제약과 시대를 따라가지 못했던 부분으로 인해 구식 API화되고 있었다. 그래픽 응용 프로그램이나 대학교에서는 항상 OpenGL을 배우게 되지만, 사실상 업계에서 표준은 항상 DirectX였으며, 언리얼 엔진 같은 업계 최고의 엔진 역시 렌더링 API는 DirectX를 기본으로 간주하였고, nVidia나 AMD같은 하드웨어 벤더들 역시 OpenGL에 대한 지원이 미흡하였다.
그러던 와중 크로노스 그룹의 불칸 발표는 아주 반가운 소식이었다. 파편화된 플랫폼 사이에서 표준이 되는 공통 API의 도입은 개발자에게 엄청난 편의를 제공하며, 플랫폼 별로 맞춰야 하는 많은 고민들을 해결해줄 수 있다. 특히 게임 같은 소프트웨어의 경우 원 소스 멀티 유즈가 대세며, 대부분의 게임 엔진들이 멀티 플랫폼을 지원하는 것을 강점으로 손꼽고 있다. 이를 통해 불칸 같이 PC와 모바일을 아우르는 공통 API의 등장은 업계 전반에 활력을 불어넣게 될 것이며, 앞으로 더 높은 그래픽 퀄리티의 애플리케이션 개발에 든든한 아군이 되어줄 것이다.
이 책은 불칸의 모체였던 AMD의 독자 그래픽 API 맨틀의 개발자로서 불칸의 개발에 깊이 참여한 수석 개발자가 직접 작성한 것으로, 불칸을 이해하기에 이보다 좋은 교재는 없을 것이라고 생각해 추천하는 의미에서 바쁜 일정 중에 번역하였다. 이 책이 많은 다른 개발자들이 불칸을 이해하는 데 도움이 되길 바란다.


[ 옮긴이 소개 ]

이상우
과학에 흥미가 많던 과학도로 과학고를 조기 졸업하고 KAIST에 입학, 전산학과를 수석으로 졸업했다. 컴퓨터로 표현할 수 있는 가상 세계에 대한 흥미가 높아 엔씨소프트에서 게임 개발을 시작했다. 게임 그래픽을 통해 오프라인 렌더러의 기반 이론에 관심을 가지게 됐고, 컴퓨터 그래픽 이론의 연구를 위해 UNC-CH의 그래픽 랩으로 유학을 가서 학위를 받았다. 에픽 게임스에서 최고의 실시간 렌더러를 가진 언리얼 엔진 3/4를 개발하다가, 급속히 성장하는 모바일 렌더러의 세계에서 최고의 그래픽을 표현하기 위해 액션스퀘어에서 블레이드 2의 개발에 매진하고 있다.

등록된 서평이 없습니다.
 
전체평균(0)
회원평점   회원서평수 0
에이콘 출판사의 신간
초보자를 위한 RStudio 마스터
줄리안 힐레브란트, 막시밀리안 니어호프 저
27,000원
(10%↓+5%)
 
텐서플로로 구현하는 딥러닝과 강화학습
잔카를로 자코네, 레자울 카림, 아메드 멘시 저
29,700원
(10%↓+5%)
 
객체지향 자바스크립트
베드 안타니, 스토얀 스테파노프 저
36,000원
(10%↓+5%)
 
백박스 리눅스를 활용한 모의 침투
오동진 저
22,500원
(10%↓+5%)
 
안드로이드 디자인 패턴과 활용 사례
카일 뮤 저
27,000원
(10%↓+5%)
 
이메일주소수집거부