불칸 프로그래밍 가이드
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자(글) 그레이엄 셀러
저자 그레이엄 셀러(Graham Sellers)는 AMD의 소프트웨어 설계자로, AMD의 라데온과 FirePro 제품의 OpenGL, 불칸 드라이버의 개발을 관장했다. 컴퓨터와 기술에 관한 열정은 어린 나이에 BBC Micro와 함께 시작했으며, 여전히 작업을 즐기는 8비트와 16비트 가정용 컴퓨터로 이어졌다. 영국의 사우스햄튼 대학교(University of Southampton)에서 공학 석사를 취득했으며, 지금은 플로리다의 올랜도에서 아내와 두 자녀와 살고 있다.
번역 이상우
역자 이상우는 과학에 흥미가 많던 과학도로 과학고를 조기 졸업하고 KAIST에 입학, 전산학과를 수석으로 졸업했다. 컴퓨터로 표현할 수 있는 가상 세계에 대한 흥미가 높아 엔씨소프트에서 게임 개발을 시작했다. 게임 그래픽을 통해 오프라인 렌더러의 기반 이론에 관심을 가지게 됐고, 컴퓨터 그래픽 이론의 연구를 위해 UNC-CH의 그래픽 랩으로 유학을 가서 학위를 받았다. 에픽 게임스에서 최고의 실시간 렌더러를 가진 언리얼 엔진 3/4를 개발하다가, 급속히 성장하는 모바일 렌더러의 세계에서 최고의 그래픽을 표현하기 위해 액션스퀘어에서 블레이드 2의 개발에 매진하고 있다.
목차
- 1장. 불칸의 개요
__인스터스, 장치, 큐
____불칸 인스턴스
____불칸 물리 장치
____물리 장치 메모리
____장치 큐
____논리 장치 생성
__객체 종류와 함수 규약
__메모리 관리
__불칸에서의 멀티스레딩
__수학적 개념
____벡터와 행렬
____좌표계
____불칸의 강화
____레이어
____확장
__깨끗하게 종료하기
__요약
2장. 메모리와 자원
__주 메모리 관리
__자원
____버퍼형식과 지원
____이미지
____자원 시야
____자원 소멸
__장치 메모리 관리
__장치 메모리 할당
____주 시스템의 장치 메모리에 대한 접근
____메모리를 자원에 결속
____간헐 자원
__요약
3장. 큐와 명령어
__장치 큐
__명령어 버퍼의 생성
__명령어 기록
__명령어 버퍼 재사용
__명령어의 제출
__요약
4장. 자료 이동
__자원 상태 관리
____파이프라인 방벽
____전역 메모리 방벽
____버퍼 메모리 방벽
____이미지 메모리 방벽
__버퍼의 비우기와 채우기
__이미지를 비우고 채우기
__이미지 자료의 복사
__압축된 이미지 자료를 복사
__이미지 늘이기
__요약
5장. 프리젠테이션
__프리젠테이션 확장
__프리젠테이션 표면
____마이크로소프트 윈도우에서의 프리젠테이션
____Xlib 기반 플랫폼에서의 프리젠테이션
____Xcb로 프리젠테이션
__스왑 체인
__전체 화면 표면
__프리젠테이션의 수행
__마무리 정리
__요약
6장. 셰이더와 파이프라인
__GLSL의 개요
__SPIR-V 개요
____SPIR-V의 표현
____SPIR-V를 불칸에 전달
__파이프 라인
____계산 파이프라인
____특수화 상수
____파이프라인 생성 가속
____파이프라인 연결
__작업 실행
__셰이더에서의 자원 접근
____서술자 집합
____서술자 집합에 자원을 연결
____서술자 집합의 연결
____균일, 텍셀, 저장 버퍼
____푸시 상수
____표본화된 이미지
7장. 그래픽 파이프라인
__논리적 그래픽 파이프라인
__렌더패스
__프레임 버퍼
__단순 그래픽 파이프라인의 생성
____그래픽 셰이더 단계
____정점 입력 상태
____입력 조합
____테셀레이션 상태
____시야 영역 상태
____래스터라이제이션 상태
____다중표본 상태
____깊이와 스텐실 상태
____색 혼합 상태
__동적 상태
__요약
8장. 그리기
__그리기 위한 준비
__정점 자료
__색인된 그리기
____색인-전용 렌더링
____재설정
__인스턴싱
__간접 그리기
__요약
9장. 기하구조 처리
__테셀레이션
____테셀레이션 설정
____테셀레이션 변수
____테셀레이션 예: 변위 매핑
__기하 셰이더
____기본체 자르기
____기하 셰이더 인스턴싱
__프로그램 가능한 점 크기
__선 너비와 래스터라이제이션 사용자의 자르기와 거르기
__시야 영역 변환
__요약
10장. 화소 처리
__가위 시험
__깊이와 스텐실 연산
____깊이 시험
____스텐실 시험
____선행 화소 시험
__다중표본 렌더링
____표본율 음영
____다중 표본 처리
__논리 연산
__화소 셰이더 출력
__색 혼합
__요약
11장. 동기화
__펜스
__이벤트
__세마포어
__요약
12장. 자료 돌려받기
__질의
____질의 실행
____시간 질의
__주 시스템에서 자료 읽기
__요약
13장. 다중 패스 렌더링
__입력 첨부
__첨주 내용
____첨부 초기화
____렌더 영역
____첨부 내용의 유지
__부 명령어 버퍼
__요약
부록. 불칸 함수
__용어 사전
출판사 서평
★ 이 책에서 다루는 내용 ★
■ 불칸의 성능을 시연하고 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를 사용한 컴퓨터 그래픽에 관한 다른 책을 읽는 것을 추천한다. 이런 자료들은 수학과 이 책에서 가정한 다른 개념들을 이해하기 쉽게 해준다.
★ 옮긴이의 말 ★
모바일 렌더러에서 최고의 그래픽을 표현하기 위해 엔진과 렌더링 파이프라인을 커스터마이제이션하던 중에 불칸의 발표는 참으로 반가운 소식이었다. 스티브 잡스의 철학으로 인해 항상 유저 인터페이스와 그래픽에 심혈을 기울이던 애플과는 달리, 오픈 플랫폼인 안드로이드 진영의 경우 통일되지 않은 그래픽 하드웨어로 인한 많은 희생이 있기 때문이다. 애플의 경우 독자 API인 메탈을 통해서 상당한 성능 향상을 이루었지만, OpenGL ES의 경우 너무 오래되어 새로운 모바일 그래픽에 맞지 않는 많은 제약을 가져 통일되지 않은 extension에 의존해야만 했다.
비단 모바일 플랫폼만이 아니라 PC에서도 DirectX의 하드웨어 발전에 맞춘 빠른 지원과 달리 OpenGL의 제약과 시대를 따라가지 못했던 부분으로 인해 구식 API화되고 있었다. 그래픽 응용 프로그램이나 대학교에서는 항상 OpenGL을 배우게 되지만, 사실상 업계에서 표준은 항상 DirectX였으며, 언리얼 엔진 같은 업계 최고의 엔진 역시 렌더링 API는 DirectX를 기본으로 간주하였고, nVidia나 AMD같은 하드웨어 벤더들 역시 OpenGL에 대한 지원이 미흡하였다.
그러던 와중 크로노스 그룹의 불칸 발표는 아주 반가운 소식이었다. 파편화된 플랫폼 사이에서 표준이 되는 공통 API의 도입은 개발자에게 엄청난 편의를 제공하며, 플랫폼 별로 맞춰야 하는 많은 고민들을 해결해줄 수 있다. 특히 게임 같은 소프트웨어의 경우 원 소스 멀티 유즈가 대세며, 대부분의 게임 엔진들이 멀티 플랫폼을 지원하는 것을 강점으로 손꼽고 있다. 이를 통해 불칸 같이 PC와 모바일을 아우르는 공통 API의 등장은 업계 전반에 활력을 불어넣게 될 것이며, 앞으로 더 높은 그래픽 퀄리티의 애플리케이션 개발에 든든한 아군이 되어줄 것이다.
이 책은 불칸의 모체였던 AMD의 독자 그래픽 API 맨틀의 개발자로서 불칸의 개발에 깊이 참여한 수석 개발자가 직접 작성한 것으로, 불칸을 이해하기에 이보다 좋은 교재는 없을 것이라고 생각해 추천하는 의미에서 바쁜 일정 중에 번역하였다. 이 책이 많은 다른 개발자들이 불칸을 이해하는 데 도움이 되길 바란다.
기본정보
ISBN | 9788960779860 | ||
---|---|---|---|
발행(출시)일자 | 2017년 03월 29일 | ||
쪽수 | 524쪽 | ||
크기 |
190 * 251
* 31
mm
/ 1041 g
|
||
총권수 | 1권 | ||
시리즈명 |
오픈소스 프로그래밍
|
||
원서명/저자명 | Vulkan Programming Guide/Kessenich, John M. |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립