물리 기반 렌더링 3/e [고급 그래픽스를 위한 이론, CG 영화에서 게임 엔진 렌더러까지]
- 원서명Physically Based Rendering, Third Edition: From Theory to Implementation (ISBN 9780128006450)
- 지은이매트 파르(Matt Pharr), 웬젤 제이콥(Wenzel Jakob), 그렉 험프리스(Greg Humphreys)
- 옮긴이이상우
- ISBN : 9791161753744
- 69,000원
- 2020년 01월 07일 펴냄
- 페이퍼백 | 1,440쪽 | 188*235mm
책 소개
요약
게임과 영화 등에 사용되는 컴퓨터 그래픽스에 대한 심도 깊은 이해를 돕고, 게임 엔진이나 렌더러 구현에 관심이 있는 현업 종사자나 학생, 관련 기술을 사용하는 그래픽 아티스트에게 매우 유용한 책이다. 영화 프로덕션의 렌더맨이나 언리얼 엔진의 라이트 매스 같은 오프라인 렌더러의 기술과 최근 게임 엔진에서 사용하는 렌더링 기술을 다루고 있어 컴퓨터 그래픽스의 이해를 위한 최고의 서적이다. 특히 현재 영화뿐 아니라 실시간 렌더링까지 물리 기반 렌더링으로 변경되고 있기에, 엔비디아의 RTX와 DirectX 12의 DXR을 통해 보편화될 레이트레이싱 기술을 이해하기에 최고의 문헌이라 자부한다.
추천의 글
이 책은 확실히 아카데미상을 받을 만 하다. 나는 이 책이 퓰리처상 후보로도 임명돼야 한다고 믿는다.
- 도널드 커누스/ 『The Art of Computer Programming』의 저자
대단한 책이다. 이 책은 기묘한 수학, 매혹적인 물리, 실용적인 소프트웨어 공학, 최첨단 실사 렌더러를 작성하는 데 필요한 기술을 모두 다룬다. 이 모든 주제를 깔끔하고 교육적인 구성으로, 중요한 모든 세부 사항을 생략하지 않고 상세히 설명한다.
pbrt는 단지 레이트레이서(ray tracer)의 ‘장난감’ 구현에 그치지 않고, 안정적이며 완전한 전역 조명 렌더러다. pbrt는 수행 시간을 줄이고 복잡한 장면의 메모리 소모량을 줄이기 위한 중요한 최적화를 포함한다. 그리고 pbrt는 기타 렌더링 알고리즘 변종과 함께 쉽게 확장할 수 있다.
이 책은 학생을 위한 교과서일 뿐만 아니라, 실제 분야의 전문가를 위한 유용한 참고서다. 개정판은 메트로폴리스 빛 전송, 표면 밑 산란, 사전 계산 빛 전송 등으로 확장해 다루고 있다.
- 페르 크리스텐센(Per Christensen)
/픽사 애니메이션 스튜디오 렌더맨 프로덕션, 선임 소프트웨어 개발자
연구나 최고급 렌더링 분야에서 직업을 찾고 있는가? 기초 교육을 받았다면 이제 이 책의 이론과 실전 예제, 즉 실제 코드로 자신의 프로젝트를 시작하라.
개정판에서 매트 파르와 그렉 험프리스는 메트로폴리스 빛 전송이나 의사 몬테카를로 방식 같은 가장 발전된 렌더링 기술도 쉽게 접근할 수 있도록 돕는다. 게다가 기반 작업을 통해 렌더러에 자료를 넣고 추출할 때의 고통을 겪지 않게 해준다.
거시적 접근 방식의 문학적 프로그래밍은 읽기 쉬운 문장의 깔끔한 로직으로 나타난다. 그래픽을 진지하게 생각한다면 최신 기술을 다룬 이 독창적이고도 가치 있는 책을 반드시 읽기 바란다.
- 알렉산더 켈러(Alexander Keller)
/멘탈 이미지스(Mental Images) 수석 과학자
이 책의 대상 독자
이 책의 대상 독자층은 크게 세 종류로 나뉜다.
첫 번째는 대학원생 혹은 학부 고학년 컴퓨터 그래픽스 강의를 들을 수 있는 수준의 학생들이다. 이 책은 독자가 대학 입문 수준의 컴퓨터 그래픽스 지식을 기본적으로 갖췄다고 가정하지만, 벡터 기하학이나 변환 같은 특정 중요 개념은 설명한다. 몇 만 줄 이상의 프로그램을 경험해보지 못한 학생들에게 문학적 프로그래밍 방식은 이해하기 쉬운 바람직한 소개가 될 것이다. 독자들에게 시스템이 왜 이런 방식으로 구성됐는지 알려주기 위해 시스템의 핵심 인터페이스와 추상화를 설명하는 데 특별히 신경을 썼다.
두 번째 독자층은 컴퓨터 그래픽 분야의 전문적인 대학원생과 연구자다. 렌더링을 연구하는 연구자에게 이 책은 해당 분야에 대한 폭넓은 내용을 전할 것이며, pbrt 소스코드는 추가 개발하기에 유용한 기반을 제공한다(혹은 최소한 소스코드의 일부라도 사용할 수 있다). 다른 분야의 연구자인 경우 렌더링을 깊이 있게 이해하는 것은 앞으로의 연구에 유용할 것이라 믿는다.
세 번째 대상 독자층은 소프트웨어 개발 종사자다. 이 책의 많은 내용이 소프트웨어 개발자에게 익숙하겠지만, 알고리즘들의 문학적 방식의 설명은 새로운 관점을 제공할 것이다. pbrt는 표면 세분화(subdivision surfaces), 몬테카를로 빛 전송(Monte Carlo light transport)과 메트로폴리스 표본화(Metropolis sampling)같이 고도화된 구현이 어려운 알고리즘들과 테크닉들의 구현을 포함한다. 이 내용은 경험 있는 렌더링 현업자가 특히 관심 있는 분야일 것이다.
하나의 완전하고 비중 있는 렌더링 시스템의 구조를 파헤침으로써 독자들의 관심을 이끌어내기를 기대한다.
2판과 3판의 차이점
2판이 나온 후 6년이 지나 책과 pbrt 시스템을 갱신하고 확장할 시간이 됐다. 다루기에 가장 유용한 주제가 어떤 것인지 독자에게서 배웠다. 더욱이 렌더링 연구는 계속 빨라지고 있다. 현재 최고의 사용 예를 반영해 책의 많은 부분을 갱신하고 개선했다.
■ 양방향 빛 전송: pbrt의 3판에서는 완전한 기능의 양방향 경로 추적기를 포함하며, 입체 빛 전송과 경로를 가중시키기 위한 다중 중요도 표본화를 지원한다. 완전히 새로운 메트로폴리스 빛 전송 적분기는 양방향 경로 추적기의 요소를 사용하며, 특히 해당 알고리즘의 간결한 구현을 허용한다. 이 알고리즘의 기반은 대략 15년 전에 성립됐다. 이를 pbrt에서 완전히 지원하는 것은 이미 예전에 이뤄졌어야 했던 부분이다.
■ 표면 밑 산란: 많은 물체(특히 피부와 반투명 물체)의 모습은 표면 밑 빛 전송의 결과다. 2판에서의 표면 밑 산란 구현은 초기 2000년대의 최신 기술을 반영했다. 그 후 10년의 연구 진행을 반영하기 위해 BSSRDF 모형과 표면 밑 빛 전송 알고리즘을 철저히 검토했다.
이제 광선 추적 기반 표본화 기술과 함께 더 정확한 방사(diffusion) 방정식을 사용해 2판에서 사용된 비용이 큰 재처리 과정의 필요성을 제거했다.
■ 수치적으로 안정적인 교차점: 기하학적 광선 교차점 계산에서 부동소수점의 반올림 오류는 광선 추적의 오래된 도전이었다. 이는 이미지에 작은 오류를 유발할 수 있다.
이 사안에 집중하고 이 오류에 대한 보수적인(하지만 밀접한) 경계를 유도했으며, 이는 이전 렌더링보다 이 사안에 대한 구현을 더욱 안정적이게 한다.
■ 반투명 물질의 표현: 시스템에서 산란 매질이 설명되고 표현되는 방식을 개선했다. 이는 중첩된 산란 매질에 대해 더 정확한 결과를 얻게 한다. 새 표본화 기술에 따르면 균일 매질의 편향되지 않은 렌더링이 가능해 시스템의 다른 부분과 깔끔하게 통합된다.
■ 측정된 재질: 3판에서는 측정된 재질을 간헐 주파수 공간 기반을 사용해서 표현하고 계산하는 새 기술을 포함했다. 이 방식은 2판에서 사용된 표현으로는 불가능한 정확한 중요도 표본화를 가능하게 해서 편리하다.
■ 포톤 매핑: 포톤 매핑 알고리즘의 획기적인 발전이 메모리에 모든 포톤을 저장할 필요가 없는 변종의 개발로 이뤄졌다. pbrt의 포톤 매핑 알고리즘을 많은 어려운 빛 전송 효과를 효율적으로 렌더링하는 확률적 진행 포톤 매핑에 기반을 둔 구현으로 대체했다.
■ 표본 생성 알고리즘: 렌더링 알고리즘의 수치적인 적분에 사용되는 표본 값의 분포는 최종 결과의 품질에 큰 영향을 미친다. 이 주제에 대한 처리를 철저히 갱신했으며, 이전보다 더 깊이 새로운 방식과 효율적인 구현 기술을 다뤘다.
시스템의 다른 많은 부분은 해당 분야의 진행을 반영하기 위해 개선되고 갱신됐다. 미세표면 반사 모형은 훨씬 나은 표본화 기술과 함께 더 깊이 다뤘다. 털과 다른 세밀한 기하 구조를 위해 새 ‘곡선’ 모양을 추가했다. 이제 현실적인 렌즈 시스템을 모사하는 새 카메라 모형도 사용할 수 있다. 이 책에서 다양하고도 작은 변화를 통해 pbrt 같은 물리 기반 렌더링 시스템의 핵심 개념을 더 명확히 설명하고 묘사했다.
목차
목차
- 1장. 서론
- 1.1 문학적 프로그래밍
- 1.1.1 색인과 상호 참조
- 1.2 극 사실적 렌더링과 레이트레이싱 알고리즘
- 1.2.1 카메라
- 1.2.2 광선-물체 교차점
- 1.2.3 빛 분포
- 1.2.4 가시성
- 1.2.5 표면 산란
- 1.2.6 간접 빛 전송
- 1.2.7 광선 전파
- 1.3 pbrt: 시스템 개요
- 1.3.1 실행 단계
- 1.3.2 장면 표현
- 1.3.3 적분기 인터페이스와 SamplerIntegrator
- 1.3.4 주 렌더링 반복문
- 1.3.5 휘티드 레이트레이싱의 적분기
- 1.4 pbrt의 병렬화
- 1.4.1 자료 경쟁과 조정
- 1.4.2 pbrt의 관습
- 1.4.3 pbrt의 스레드 안전 기대치
- 1.5 이 책을 읽는 방법
- 1.5.1 연습문제
- 1.6 코드의 사용과 이해
- 1.6.1 포인터 혹은 참조?
- 1.6.2 추상화와 효율성
- 1.6.3 코드 최적화
- 1.6.4 이 책의 웹 사이트
- 1.6.5 시스템의 확장
- 1.6.6 버그
- 1.7 간단한 물리 기반 렌더링에 대한 역사
- 1.7.1 연구
- 1.7.2 제작
- 더 읽을거리
- 연습문제
- 2장. 기하 구조와 변환
- 2.1 좌표계
- 2.1.1 좌표계의 손 방향
- 2.2 벡터
- 2.2.1 내적과 외적
- 2.2.2 정규화
- 2.2.3 다양한 연산
- 2.2.4 한 벡터로부터의 좌표계
- 2.3 점
- 2.4 법선
- 2.5 광선
- 2.5.1 광선 미분
- 2.6 3차원 경계 상자
- 2.7 변환
- 2.7.1 동차 좌표계
- 2.7.2 기본 연산
- 2.7.3 이동
- 2.7.4 크기 변경
- 2.7.5 x, y, z축 회전
- 2.7.6 임의의 축에 대한 회전
- 2.7.7 보는 방향 변환
- 2.8 변환의 적용
- 2.8.1 점
- 2.8.2 벡터
- 2.8.3 법선
- 2.8.4 광선
- 2.8.5 경계 상자
- 2.8.6 변환의 조합
- 2.8.7 변환과 좌표계의 손 방향
- 2.9 애니메이션(Animation) 변환
- 2.9.1 사원수
- 2.9.2 사원수 보간
- 2.9.3 AnimatedTransform 구현
- 2.9.4 움직이는 경계 상자의 경계
- 2.10 상호작용
- 2.10.1 표면 상호작용
- 더 읽을거리
- 연습문제
- 3장. 모양
- 3.1 기본 모양 인터페이스
- 3.1.1 경계
- 3.1.2 광선-경계 교차
- 3.1.3 교차 테스트
- 3.1.4 표면 면적
- 3.1.5 방향성
- 3.2 구
- 3.2.1 경계
- 3.2.2 교차 테스트
- 3.2.3 법선 벡터의 편미분
- 3.2.4 SurfaceInteraction 초기화
- 3.2.5 표면 면적
- 3.3 원기둥
- 3.3.1 경계
- 3.3.2 교차 테스트
- 3.3.3 표면 면적
- 3.4 원반
- 3.4.1 경계
- 3.4.2 교차 테스트
- 3.4.3 표면 면적
- 3.5 기타 2차 곡면
- 3.5.1 원뿔
- 3.5.2 쌍곡면
- 3.5.3 포물면
- 3.6 삼각형 메시
- 3.6.1 삼각형
- 3.6.2 삼각형 교차점
- 3.6.3 음영 기하 구조
- 3.6.4 표면 면적
- 3.7 곡선
- 3.8 세분 표면
- 3.8.1 메시 표현
- 3.8.2 세분
- 3.9 반올림 오차 관리
- 3.9.1 부동소수점 산술
- 3.9.2 보존적 광선-경계 교차
- 3.9.3 안정적 삼각형 교차
- 3.9.4 교차점 오차 경계
- 3.9.5 안정적으로 생성한 광선 원점
- 3.9.6 광선 원점 뒤의 교차의 회피
- 3.9.7 토론
- 더 읽을거리
- 연습문제
- 4장. 프리미티브와 교차 가속
- 4.1 기본체 인터페이스와 기하학적 기본체
- 4.1.1 기하학적 기본체
- 4.1.2 TransformedPrimitive 물체 인스턴싱과 애니메이션 기본체
- 4.2 집합체
- 4.3 경계 볼륨 계층
- 4.3.1 BVH 생성
- 4.3.2 표면 면적 휴리스틱
- 4.3.3 선형 경계 입체 계층
- 4.3.4 횡단을 위한 간편한 BVH
- 4.3.5 횡단
- 4.4 kd-트리 가속기
- 4.4.1 트리 표현
- 4.4.2 트리 생성
- 4.4.3 횡단
- 더 읽을거리
- 연습문제
- 5장. 색과 방사 분석
- 5.1 분광 표현
- 5.1.1 Spectrum형
- 5.1.2 CoefficientSpectrum 구현
- 5.2 SampledSpectrum 클래스
- 5.2.1 XYZ 색
- 5.2.2 RGB 색
- 5.3 RGBSpectrum 구현
- 5.4 기본 방사 분석
- 5.4.1 기본 양
- 5.4.2 입사와 방출 방사 함수
- 5.4.3 휘도와 측광
- 5.5 방사 측정 적분
- 5.5.1 투영된 입체각에 대한 적분
- 5.5.2 구좌표에 대한 적분
- 5.5.3 면적에 대한 적분
- 5.6 표면 반사
- 5.6.1 BRDF
- 5.6.2 BSSRDF
- 더 읽을거리
- 연습문제
- 6장. 카메라 모델
- 6.1 카메라 모델
- 6.1.1 카메라 좌표 공간
- 6.2 투영 카메라 모델
- 6.2.1 정사영 카메라
- 6.2.2 원근 카메라
- 6.2.3 얇은 렌즈 모델과 피사계 심도
- 6.3 환경 카메라
- 6.4 사실적 카메라
- 6.4.1 렌즈 시스템 표현
- 6.4.2 렌즈를 지나는 광선의 추적
- 6.4.3 두꺼운 렌즈 근사
- 6.4.4 초점 조정
- 6.4.5 출사동
- 6.4.6 광선 생성
- 6.4.7 카메라 측정 방정식
- 더 읽을거리
- 연습문제
- 7장. 표본 추출과 재구성
- 7.1 표본화 정리
- 7.1.1 주파수 영역과 퓨리에 변환
- 7.1.2 이상적인 표본화와 재구성
- 7.1.3 앨리어싱
- 7.1.4 안티앨리어싱 기술
- 7.1.5 이미지 함성에 활용
- 7.1.6 렌더링에서 앨리어싱의 근원
- 7.1.7 픽셀에 대한 이해
- 7.2 이미지 표본 인터페이스
- 7.2.1 표본 패턴 평가: 불일치
- 7.2.2 기본 Sampler 인터페이스
- 7.2.3 표본기 구현
- 7.2.4 픽셀 표본기
- 7.2.5 전역 표본기
- 7.3 층별 표본화
- 7.4 핼톤 표본기
- 7.4.1 해머슬리와 핼톤 연속
- 7.4.2 핼톤 표본기 구현
- 7.5 (0, 2)-연속 표본기
- 7.5.1 생성 행렬로 표본화
- 7.5.2 표본기 구현
- 7.6 최소거리 최대화 표본기
- 7.7 소볼' 표본기
- 7.8 이미지 재구성
- 7.8.1 필터 함수
- 7.9 필름과 이미지화 파이프라인
- 7.9.1 필름 클래스
- 7.9.2 픽셀 값을 필름에 공급
- 7.9.3 이미지 결과
- 더 읽을거리
- 연습문제
- 8장. 반사 모델
- 8.1 기본 인터페이스
- 8.1.1 반사
- 8.1.2 BxDF 크기변환 어댑터
- 8.2 거울 반사와 투과
- 8.2.1 프레넬 반사
- 8.2.2 거울 반사
- 8.2.3 반사광 투과
- 8.2.4 프레넬 조절 거울 반사와 투과
- 8.3 램버트 반사
- 8.4 미세면 모델
- 8.4.1 오렌-네이어 확산 반사
- 8.4.2 미세면 분포 함수
- 8.4.3 차폐와 그림자
- 8.4.4 토랜스-스패로우 모델
- 8.5 프레넬 입사 효과
- 8.6 퓨리에 기반 BSDF
- 8.6.1 스플라인 보간
- 더 읽을거리
- 연습문제
- 9장. 재질
- 9.1 BSDF
- 9.1.1 BSDF 메모리 관리
- 9.2 재질 인터페이스와 구현
- 9.2.1 무광 재질
- 9.2.2 플라스틱 재질
- 9.2.3 혼합 재질
- 9.2.4 퓨리에 재질
- 9.2.5 추가적인 재질
- 9.3 범프 매핑
- 더 읽을거리
- 연습문제
- 10장. 텍스처
- 10.1 표본화와 안티앨리어싱
- 10.1.1 텍스처 표본화율 찾기
- 10.1.2 텍스처 함수를 필터링하는 방법
- 10.1.3 거울 반사와 투과를 위한 광선 차분
- 10.2 텍스처 좌표 생성
- 10.2.1 2D (u, v) 매핑
- 10.2.2 구면 매핑
- 10.2.3 원통 매핑
- 10.2.4 평면 매핑
- 10.2.5 3D 매핑
- 10.3 텍스처 인터페이스와 기본 텍스처
- 10.3.1 상수 텍스처
- 10.3.2 텍스처 크기 변화
- 10.3.3 텍스처 혼합
- 10.3.4 이중 선형 보간
- 10.4 이미지 텍스처
- 10.4.1 텍스처 메모리 관리
- 10.4.2 ImageTexture 계산
- 10.4.3 밉맵
- 10.4.4 등방성 삼각 필터
- 10.4.5 타원형 가중 평균
- 10.5 입체와 절차적 텍스처링
- 10.5.1 UV 텍스처
- 10.5.2 체커보드
- 10.5.3 입체 체커보드
- 10.6 잡음
- 10.6.1 펄린 잡음
- 10.6.2 무작위 물방울무늬
- 10.6.3 잡음 관용구와 분광 합성
- 10.6.4 울퉁불퉁하고 주름진 텍스처
- 10.6.5 풍랑
- 10.6.6 대리석
- 더 읽을거리
- 연습문제
- 11장. 입체 산란
- 11.1 입체 산란 과정
- 11.1.1 흡수
- 11.1.2 방출
- 11.1.3 외산란과 감쇠
- 11.1.4 내산란
- 11.2 위상 함수
- 11.3 매질
- 11.3.1 매질 상호작용
- 11.3.2 균일 매질
- 11.3.3 3D 격자
- 11.4 BSSRDF
- 11.4.1 분리 가능한 BSSRDF
- 11.4.2 도표화된 BSSRDF
- 11.4.3 표면 밑 산란 재질
- 더 읽을거리
- 연습문제
- 12장. 광원
- 12.1 빛 방출
- 12.1.1 흑체 방출체
- 12.1.2 표준 광원
- 12.2 빛 인터페이스
- 12.2.1 시야 테스트
- 12.3 점광원
- 12.3.1 스포트라이트
- 12.3.2 텍스처 투영 빛
- 12.3.3 각광도계 다이어그램 빛
- 12.4 원거리 광
- 12.5 영역 광
- 12.6 무한 영역 광
- 더 읽을거리
- 연습문제
- 13장. 몬테카를로 적분
- 13.1 배경 지식과 확률의 검토
- 13.1.1 연속 무작위 변수
- 13.1.2 기댓값과 분산
- 13.2 몬테카를로 예측기
- 13.3 무작위 변수의 기본 표본화
- 13.3.1 역방식
- 13.3.2 배제 방식
- 13.4 메트로폴리스 표본화
- 13.4.1 기본 알고리즘
- 13.4.2 변형 선택 전략
- 13.4.3 초기 편향
- 13.4.4 1차원 설정
- 13.4.5 메트로폴리스 표본화로 적분 예측
- 13.5 분포 사이에서 변환
- 13.5.1 다중 차원에서 변환
- 13.5.2 극좌표계
- 13.5.3 구좌표계
- 13.6 다차원 변환의 2D 표본화
- 13.6.1 반구의 균일 표본화
- 13.6.2 단위 원반의 표본화
- 13.6.3 코사인 가중 반구 표본화
- 13.6.4 원뿔 표본화
- 13.6.5 삼각형 표본화
- 13.6.6 카메라 표본화
- 13.6.7 부분 상수 2D 분포
- 13.7 러시안 룰렛과 분리
- 13.7.1 분리
- 13.8 신중한 표본 배치
- 13.8.1 계층 표본화
- 13.8.2 의사 몬테카를로
- 13.8.3 표본 뒤틀림과 왜곡
- 13.9 편향
- 13.10 중요성 표본화
- 13.10.1 다중 중요도 표본화
- 더 읽을거리
- 연습문제
- 14장. 빛 전송 I: 표면 반사
- 14.1 반사 함수 표본화
- 14.1.1 미세면 BxDF
- 14.1.2 FresnelBlend 표본화
- 14.1.3 광택 반사와 투과
- 14.1.4 퓨리에 BSDF
- 14.1.5 응용: 반사 예측
- 14.1.6 BSDF 표본화
- 14.2 광원 표본화
- 14.2.1 특이점이 있는 빛
- 14.2.2 모양 표본화
- 14.2.3 영역 광
- 14.2.4 무한 영역 광
- 14.3 직접 광
- 14.3.1 직접 광 적분의 예측
- 14.4 빛 전송 방정식
- 14.4.1 기본 유도
- 14.4.2 LTE에로의 분석적 해
- 14.4.3 LTE의 표면형
- 14.4.4 경로에 대한 적분
- 14.4.5 피적분 함수에서의 델타 분포
- 14.4.6 피적분 함수의 분할
- 14.5 경로 추적
- 14.5.1 개요
- 14.5.2 경로 표본화
- 14.5.3 점진적 경로 생성
- 14.5.4 구현
- 더 읽을거리
- 연습문제
- 15장. 빛 전송 II: 입체 렌더링
- 15.1 전송 방정식
- 15.1.1 일반화된 경로 공간
- 15.2 입체 산란 표본화
- 15.2.1 균일 매질
- 15.2.2 불균일 매질
- 15.2.3 위상 함수 표본화
- 15.3 입체 빛 전송
- 15.3.1 경로 추적
- 15.4 표면 밑 반사 함수의 표본화
- 15.4.1 SeparableBSSRDF의 표본화
- 15.4.2 TabulatedBSSRDF 표본화
- 15.4.3 경로 추적기에서의 표면 및 산란
- 15.5 확산 방정식을 사용한 표면 밑 산란
- 15.5.1 유사성의 원칙
- 15.5.2 확산 이론
- 15.5.3 단극 해
- 15.5.4 비고전 확산
- 15.5.5 양극 해
- 15.5.6 빛줄기 해
- 15.5.7 단일 산란 항
- 15.5.8 BSSRDFTable 채우기
- 15.5.9 산란 특성 설정
- 더 읽을거리
- 연습문제
- 16장. 빛 전송 III: 사전 계산 빛 전송
- 16.1 경로-공간 측정 방정식
- 16.1.1 카메라 표본화
- 16.1.2 광선 표본화
- 16.1.3 비대칭 산란
- 16.2 확률적 점진적 광자 매핑
- 16.2.1 입자 추적을 위한 이론적 기반
- 16.2.2 광자 매핑
- 16.2.3 SPPMIntegrator
- 16.2.4 가시점의 누적
- 16.2.5 가시점 격자 생성
- 16.2.6 광자 기여의 누적
- 16.3 양방향 경로 추적
- 16.3.1 정점 추상화 레이어
- 16.3.2 카메라와 빛의 세부 경로 생성
- 16.3.3 세부 경로 연결
- 16.3.4 다중 중요도 표본화
- 16.3.5 무한 영역 광과 BDPT
- 16.4 메트로폴리스 빛 전송
- 16.4.1 주 표본 공간 MLT
- 16.4.2 다중화 MLT
- 16.4.3 렌더링에의 적용
- 16.4.4 주 표본 공간 표본기
- 16.4.5 MLT 적분기
- 더 읽을거리
- 연습문제
- 17장. 회고와 미래
- 17.1 디자인 회고
- 17.1.1 삼각형 전용
- 17.1.2 증가된 장면 복잡도
- 17.1.3 상용 렌더링
- 17.1.4 특수한 컴파일
- 17.2 대안 하드웨어 아키텍처
- 17.2.1 GPU 레이트레이싱
- 17.2.2 패킷 추적
- 17.2.3 레이트레이싱 하드웨어
- 17.2.4 미래
- 17.3 결론
- 부록 A. 유틸리티 함수
- 부록 B. 장면 설명 인터페이스
- 부록 C. 코드 조각 찾아보기
- 부록 D. 클래스, 메소드 및 다양한 식별자 찾아보기
도서 오류 신고
정오표
정오표
[p.180 그림 2.19 2행]
∂p/∂u와 ∂p/∂v는
->
∂n/∂u와 ∂n/∂v는
[p.191 그림 3.3]
->
[p.226 4-6행]
음영 기하 구조를 위한 법선과 접선 벡터는 Shape에 저장되지 않을 수 있는 GetShadingGeometry() 메서드에서 받은 행렬을 통해 월드 공간으로 변환해야 하므로 물체 공간에 남겨진다.
->
문장 삭제
[p.280 아래에서 6행]
->
[p.336 첫 번쨰 문단 3-4행]
극좌표 분해 기반 변환 보관 알고리즘
->
극좌표 분해 기반 변환 보간 알고리즘
[p.367 첫 번쨰 문단 2행]
개시 라인
->
캐시 라인
[p.377 두 번쨰 문단 2행]
KdTreeAccel::nAllocedNodessms는
->
KdTreeAccel::nAllocedNodes는
[p.378 세 번쨰 문단 1행]
->