도서명 : 실용 Direct3D 11 렌더링 & 계산
저자 : JASON ZINK 외 / 류광 역
발행일 : 2013년 3월 18일
ISBN : 9788994405131
정가 : 43,000원
구매하기 : 강컴닷컴 | 인터파크 | YES24


 



책 소개

Direct3D 11은 제공하는 기능이 너무나 많아서, 응용 프로그램 개발자는 특정 API의 세부사항과 그 구현 방식에 매몰되기가 쉽다. 개별 API 함수의 세세한 사용법에 관한 정보는 많이 구할 수 있지만 Direct3D 11의 기능들을 가장 잘 활용하는 방법에 관한 문서는 드문 편이다.

Direct3D 공동체에서 활발하게 활동하는 저자들이 쓴 이 책은 Direct3D 11의 활용에 관련된 고수준, 저수준 개념들 모두를 깊이 있게 다룬다.

저자들은 개념과 원리, 어려운 요점을 명확하게 이해할 수 있는 도해, 착안을 구체화하기 위한 소스 코드를 최적으로 혼합한 결과물을 흔쾌히 우리에게 내놓았다.

특히 주목할 부분은 다중 스레드 렌더링에 관한 장으로, 이는 작금의 다중 코어 세상에서 필수인 주제이다.

그 외에도 스키닝, 변위 매핑, 동적 테셀레이션, 이미지 처리(DirectCompute를 이용한), 지연 렌더링, 물리 시뮬레이션, 다중 스레드 포물면 매핑 등 여러 예제가 나온다. 이 모든 것으로도 성이 차지 않는다는 듯이, 저자들은 자신의 소스 코드를 Hieroglyph 3이라는 오픈소스 라이브러리의 형태로 공개했다. 이보다 더 좋은 책은 찾아보기 어려울 것이다.

Direct3D 11을 충분히 넓게, 충분히 깊게 다루는 이 책이, MSDN의 상세하지만, 파편적인 정보나 웹의 산발적인 블로그 또는 강좌 게시물을 통해서 마치 장님 코끼리 만지듯이 Direct3D 11을 익히느라 고생이 많았던 현업 게임 개발자들과 게임 개발자 지망생들에게 가뭄의 단비 같은 존재가 되길 바란다.

                                               

도서 특징

  • Direct3D 11을 소개하고 그 전체적인 구조 설명.
  • Direct3D 11의 다양한 메모리 기반 자원들 소개.
  • Direct3D 11의 주된 개념인 렌더링 파이프라인에 관해 서술.
  • 테셀레이션 시스템의 작동 방식과 가능한 활용 방법 상세 소개.
  • 계산 셰이더라는 흥미로운 새 처리 개념 소개, 계산 셰이더의 스레드 적용 모형과 계산 셰이더에 사용할 수 있는 여러 메모리 시스템 상세 설명.
  • HLSL 소개 및 그 문법 설명, 바탕 하드웨어의 효율적 활용을 위한 여러 객체와 함수들 소개.
  • 새로운 다중 스레드 지원 기능들 설명과 이를 활용할 수 있는 시나리오들.
  • 예제의 주된 알고리즘 전체 설명과 그 알고리즘을 이용한 Direct3D 11의 기능 실제 구현 및 Direct3D 11 활용의 관점에서 그 구현의 주된 특징 논의.
  • 렌더링에 필요한 기본적인 수학 개념들 파악, 하나의 물체를 표현하는 세 가지 기법 설명.
  • 아주 다양한 그래픽 응용 프로그램들에서 조금만 수정하면 사용할 수 있는 구현 예제들 제공.
  • 계산 셰이더의 범용 처리 능력을 이용해 흔히 쓰이는 이미지 필터 두 개 구현.
  • 지연 렌더링의 두 가지 주된 접근방식인 ‘고전적’지연 렌더링과 ‘사전 조명’패스 렌더링을 다루는 각 기법마다 그 기초 설명 및 실제 구현 예 제시.
  • 계산 셰이더를 이용한 물리 시뮬레이션 수행, 그 시뮬레이션의 결과를 렌더링 파이프라인을 이용해 렌더링하는 방법 설명.
  • 특별한 형태의 환경 매핑인 이중 포물면 환경 매핑을 이용한 다중 스레드 렌더링 성능 향상 파악.

 

Jason Zink

“이 책을 내 아내 Janice와 두 딸 Jaylay와 Juilet에게 바친다. 그들의 끝없는 사랑과 지원에 감사한다. 그것이 없었다면 이 책이 나오지 못했을 것이다.”

Jack Hoxley

“내가 쓴 글은 수년간의 경험과 오프라인 및 온라인 공동체의 여러 사람들이 보내준 성원의 결실이다. 그들 모두에게 감사한다.”

Matt Pettineo

“내 부모님께 바친다.”

역자 소개

류 광

옮긴이 류광은 1996년부터 활동해온 프로그래밍 서적 전문 번역가로, 『Game Programming Gems』시리즈와 Knuth 교수의 고전 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈, Bjarne Stroustrup의 『C++로 배우는 프로그래밍의 원리와 실제』(ProgrammingPrinciples and Practice Using C++)를 비롯한 다양한 분야의 프로그래밍 서적을 50권 넘게 번역했다. 최근의 게임 그래픽 관련 번역서로는 『Game Engine Gems 1』과 『GPU Pro: 고급 렌더링 기법』이 있다.

번역과 프로그래밍 외에 소프트웨어 문서화에도 많은 관심을 가지고 있으며, 수많은 오픈소스 프로젝트들의 표준 문서 형식으로 쓰이는 DocBook의 국내 사용자 모임인 닥북 한국(http://docbook.kr/)의 일원이다.

현재 번역서 정보 사이트 occam’s Razor(http://occamsrazr.net/)와 Game Programming Gems 스터디 사이트 GpgStudy(http://www.gpgstudy.com/)를 운영하고 있다.

 

차례

역자의 글

서문

이 책이 다루는 내용

이 책의 구성

Chapter 1 Direct3D 11 둘러보기

1.1 Direct3D의 큰 틀

1.2 파이프라인

1.3 자원

1.4 Direct3D와의 상호작용

1.5 Direct3D 11 맛보기

Chapter 2 Direct3D 11의 자원들

2.1 자원의 개요

2.2 자원에 대한 좀 더 자세한 설명

2.3 자원 조작

Chapter 3 렌더링 파이프라인

3.1 파이프라인 상태

3.2 파이프라인 실행

3.3 입력 조립기 단계

3.4 정점 셰이더 단계

3.5 덮개 셰이더 단계

3.6 테셀레이터 단계

3.7 영역 셰이더 단계

3.8 기하 셰이더 단계

3.9 스트림 출력 단계

3.10 래스터화기 단계

3.11 픽셀 셰이더 단계

3.12 출력 병합기 단계

3.13 좀 더 높은 수준에서 본 파이프라인 기능

Chapter 4 테셀레이션 파이프라인

4.1 소개

4.2 테셀레이션과 Direct3D 파이프라인

4.3 테셀레이션을 위한 매개변수들

4.4 테셀레이션 매개변수들의 효과

Chapter 5 계산 파이프라인

5.1 소개

5.2 DirectCompute의 스레드 적용 모형

5.3 DirectCompute 메모리 모형

5.4 스레드 동기화

5.5 알고리즘 설계

Chapter 6 HLSL―고수준 셰이딩 언어

6.1 소개

6.2 HLSL 프로그램의 전반적인 적용 절차

6.3 HLSL 언어의 기초

6.4 상수 버퍼

6.5 자원 객체

6.6 동적 셰이더 연계

6.7 고유 함수

6.8 셰이더 반영 API

6.9 fxc.exe 사용법

Chapter 7 다중 스레드 렌더링

7.1 소개

7.2 다중 스레드 렌더링의 동기와 목적

7.3 Direct3D 11의 스레드 적용 모형

7.4 문맥의 파이프라인 상태 전파

7.5 잠재적인 다중 스레드 활용 시나리오

7.6 실제 적용 시 고려사항과 요령

7.7 결론

Chapter 8 메시 렌더링

8.1 메시 변환

8.2 정점 스키닝

8.3 정점 스키닝과 변위 매핑

Chapter 9 동적 테셀레이션

9.1 지형 테셀레이션

9.2 고차 표면

Chapter 10 이미지 처리

10.1 이미지 처리의 기초

10.2 가우스 필터

10.3 양방향 필터

Chapter 11 지연 렌더링

11.1 개요

11.2 기초적인 지연 렌더링

11.3 사전 조명 패스 렌더링

11.4 최적화

11.5 앨리어싱 제거

11.6 투명 효과

Chapter 12 시뮬레이션

12.1 물 시뮬레이션

12.2 입자 시스템

Chapter 13 다중 스레드 포물면 매핑

13.1 이론

13.2 구현 설계

13.3 다중 스레드 시나리오

13.4 결론

부록 A:소스 코드

Hieroglyph 3 라이브러리

Hieroglyph 3을 이용하는 새 Direct3D 11 프로젝트 만들기

이 책의 소스 코드

부록 B:Direct3D 11 질의 인터페이스

질의 인터페이스 사용법

술어 조건부 렌더링

부록 C:테셀레이션 요약

테셀레이션 매개변수 요약

참고문헌

색인