리얼-타임 렌더링 4/e
- 원서명Real-Time Rendering, Fourth Edition (ISBN 9781138627000)
- 지은이토마스 아케나인 몰러(Tomas Akenine-Möller), 에릭 헤인스(Eric Haines), 나티 호프만(Naty Hoffman), 안젤로 페스(Angelo Pesce), 미할 이와니키(Michał Iwanicki), 세바스티앙 힐레르(Sebastien Hillaire)
- 옮긴이임석현, 권구주, 이은석
- ISBN : 9791161757728
- 88,000원
- 2023년 07월 31일 펴냄
- 하드커버 | 1,556쪽 | 188*235mm
- 시리즈 : 게임 개발 프로그래밍
책 소개
2024년 대한민국학술원 우수학술도서 선정도서
요약
고품질 3D 영상을 실시간으로 렌더링하는 과정에서 필요한 이론과 실무에 관한 내용을 모두 담고 있다. 그래픽스 엔지니어링 분야에서 매우 유용한 기술과 실용적인 지식을 제공한다. 광원, 그림자, 반사, 렌더링 파이프라인, 물리 기반 렌더링 등의 주요 기술을 다루며, 이를 활용해 실시간으로 그래픽을 처리하는 방법을 설명한다. 또한, 최신 기술과 알고리듬에 대한 정보와 함께 이론적인 내용과 코드 예제도 제공해, 컴퓨터 그래픽스 분야에서 일하는 전문가나 학생뿐만 아니라, 가상/증강현실 콘텐츠 개발자, 게임 개발자, 영화/특수효과 종사자 등 다양한 분야에서 일하는 사람들에게 도움을 준다.
추천의 글
“업계에 입문하는 모든 사람에게 추천하는 책이다. 실시간 렌더링을 위한 많은 주제를 다루고 있어 훌륭한 참고 자료일 뿐만 아니라, 각 주제는 추가 연구를 위한 참고 자료와 함께 자세히 설명한다.”
— 알렉스 블라코스(Alex Vlachos), 밸브(Valve) 코퍼레이션
“말 그대로 수천 개의 최신 논문, 강연과 블로그를 하나로 읽기 쉽도록 압축한 모범 사례며, 미해결 문제와 유망한 최신 연구 내용을 제시하고 있다. 초보자와 전문가를 위한 핵심 참고서다!”
— 크리스 와이만(Chris Wyman), 엔비디아(NVIDIA) 수석 연구 과학자
“처음 출간된 이래로 이 책은 이 분야를 공부하고자 하는 누구에게나 귀중한 동반자였다. 기본에 충실한 내용과 최신 기술에 대한 논의가 포함돼 있다. 4판은 컴퓨터 그래픽스에 대해 공부하고자 하는 사람이라면 반드시 읽어야 할 필독서이다.”
— 매트 파르(Matt Pharr), 『물리 기반 렌더링 3/e』(2020, 에이콘) 공동 저자
“이전 판에서 배운 내용을 바탕으로 지금의 렌더링 엔진을 구축했다. 4판은 실시간 렌더링 분야의 현재 상태를 반영했고, 새로운 연구를 시작할 때 가장 먼저 확인하는 자료로 남을 것이다.”
— 패트릭 코지(Patrick Cozzi), Cesium 수석 그래픽 설계자, 『OpenGL Insights』(A K Peters/CRC Press, 2012)의 공동 편집자
“실시간 렌더링을 배우고자 하는 사람에게 추천하는 첫 번째 책이다. 모든 관련 지식을 한 곳에 모았고 읽는 즐거움까지 준다!”
— 아라스 프란케비우스(Aras Pranckeviˇius), 유니티 테크놀로지스(Unity Technologies)
이 책에서 다루는 내용
1초 미만의 매우 짧은 시간에 3차원 이미지를 생성하는 최신 기술들을 다룬다. 지난 10년 동안 개발, 적용된 많은 알고리듬을 다루며, 1,100개 이상의 새로운 레퍼런스를 포함한다. 4판에서는 물리 기반 재료와 조명, 전역 조명과 비사실적 렌더링을 다루는 장이 광범위하게 수정됐다. 색상, 그림자, 체적 기법과 효율적인 음영 처리에 대한 부분은 기존 절에서 새로운 장으로 확대해 소개했다. 가상 현실과 증강 현실에 대해서도 다루고 있으며, 게임과 기타 애플리케이션에서 사용되는 실용적인 렌더링 방법을 설명한다. 대화형 컴퓨터 그래픽스 분야에 대한 탄탄한 이론과 관련 수학을 모두 다룬다.
상세 이미지
목차
목차
- 1장. 소개
- 1.1 개요
- 1.2 표기법과 정의
- 1.2.1 수학 표기법
- 1.2.2 기하학적 정의
- 1.2.3 음영
- 추가 읽을거리와 리소스
- 2장. 그래픽 렌더링 파이프라인
- 2.1 아키텍처
- 2.2 응용 단계
- 2.3 기하 처리 단계 처리
- 2.3.1 버텍스 셰이딩
- 2.3.2 선택적 정점 처리
- 2.3.3 클리핑
- 2.3.4 화면 매핑
- 2.4 래스터화
- 2.4.1 삼각형 준비
- 2.4.2 삼각형 순회
- 2.5 픽셀 처리
- 2.5.1 픽셀 음영
- 2.5.2 병합
- 2.6 파이프라인을 통해
- 결론
- 추가 읽을거리와 리소스
- 3장. 그래픽 처리 장치
- 3.1 데이터-병렬 아키텍처
- 3.2 GPU 파이프라인 개요
- 3.3 프로그래밍 가능한 셰이더 단계
- 3.4 프로그래밍 가능한 음영과 API의 진화
- 3.5 버텍스 셰이더
- 3.6 테셀레이션 단계
- 3.7 지오메트리 셰이더
- 3.7.1 스트림 출력
- 3.8 픽셀 셰이더
- 3.9 병합 단계
- 3.10 컴퓨트 셰이더
- 추가 읽을거리와 리소스
- 4장. 변환
- 4.1 기본 변환
- 4.1.1 이동
- 4.1.2 회전
- 4.1.3 크기 조절
- 4.1.4 전단
- 4.1.5 변환의 결합
- 4.1.6 강체 변환
- 4.1.7 법선 변환
- 4.1.8 역의 계산
- 4.2 특별한 행렬 변환과 연산
- 4.2.1 오일러 변환
- 4.2.2 오일러 변환으로부터 매개변수 추출
- 4.2.3 행렬 분해
- 4.2.4 임의의 축에 대한 회전
- 4.3 사원수
- 4.3.1 수학적 배경 지식
- 4.3.2 사원수 변환
- 4.4 정점 혼합
- 4.5 모핑
- 4.6 지오메트리 구조 캐시 재생
- 4.7 투영
- 4.7.1 직교 투영
- 4.7.2 원근 투영
- 추가 읽을거리와 리소스
- 5장. 음영 기초
- 5.1 음영 모델
- 5.2 광원
- 5.2.1 방향 광
- 5.2.2 위치 광
- 5.2.3 기타 빛의 종류
- 5.3 음영 모델 구현
- 5.3.1 계산의 빈도
- 5.3.2 구현 예제
- 5.3.3 재질 시스템
- 5.4 앨리어싱과 안티앨리어싱
- 5.4.1 샘플링과 필터링 이론
- 5.4.2 화면 기반 안티앨리어싱
- 5.5 투명도, 알파, 합성
- 5.5.1 블렌딩 순서
- 5.5.2 순서에 독립적인 투명도
- 5.5.3 미리 곱한 알파와 합성
- 5.6 디스플레이 인코딩
- 추가 읽을거리와 리소스
- 6장. 텍스처 처리
- 6.1 텍스처 처리 파이프라인
- 6.1.1 투영 함수
- 6.1.2 대응자 함수
- 6.1.3 텍스처 값
- 6.2 이미지 텍스처 처리
- 6.2.1 확대
- 6.2.2 축소
- 6.2.3 볼륨 텍스처
- 6.2.4 큐브 맵
- 6.2.5 텍스처 표현
- 6.2.6 텍스처 압축
- 6.3 절차적 텍스처 처리
- 6.4 텍스처 애니메이션
- 6.5 재질 매핑
- 6.6 알파 매핑
- 6.7 범프 매핑
- 6.7.1 블린의 방법
- 6.7.2 법선 매핑
- 6.8 시차 매핑
- 6.8.1 시차 폐색 매핑
- 6.9 텍스처 조명
- 추가 읽을거리와 리소스
- 7장. 그림자
- 7.1 평면 그림자
- 7.1.1 투영 그림자
- 7.1.2 부드러운 그림자
- 7.2 곡선 표면의 그림자
- 7.3 그림자 볼륨
- 7.4 그림자 맵
- 7.4.1 해상도 향상
- 7.5 비율 근접 필터링
- 7.6 비율 근접 부드러운 그림자
- 7.7 필터링된 그림자 맵
- 7.8 볼륨 그림자 기법
- 7.9 불규칙한 Z 버퍼 그림자
- 7.10 기타 응용
- 추가 읽을거리와 리소스
- 8장. 빛과 컬러
- 8.1 빛의 양
- 8.1.1 복사 측정
- 8.1.2 광량 측정
- 8.1.3 컬러 측정
- 8.1.4 RGB 색상으로 렌더링
- 8.2 장면과 화면
- 8.2.1 하이 다이내믹 레인지 디스플레이 인코딩
- 8.2.2 톤 매핑
- 8.2.3 컬러 등급
- 추가 읽을거리와 리소스
- 9장. 물리 기반 음영
- 9.1 빛에 관한 물리 이론
- 9.1.1 입자
- 9.1.2 미디어
- 9.1.3 표면
- 9.1.4 표면하 산란
- 9.2 카메라
- 9.3 BRDF
- 9.4 조명
- 9.5 프레넬 반사율
- 9.5.1 외부 반사
- 9.5.2 일반적인 프레넬 반사율 값
- 9.5.3 내부 반사
- 9.6 미세 기하학
- 9.7 미세면 이론
- 9.8 표면 반사를 위한 BRDF 모델
- 9.8.1 정규 분포 함수
- 9.8.2 다중 바운스 표면 반사
- 9.9 표면하 산란을 위한 BRDF 모델
- 9.9.1 표면하 알베도
- 9.9.2 표면하 산란과 거칠기의 규모
- 9.9.3 부드러운 표면-표면하 모델
- 9.9.4 거친 표면 표면하 모델
- 9.10 직물용 BRDF 모델
- 9.10.1 경험적 직물 모델
- 9.10.2 미세면 직물 모델
- 9.10.3 마이크로 실린더 직물 모델
- 9.11 파동 광학 BRDF 모델
- 9.11.1 회절 모델
- 9.11.2 박막 간섭 모델
- 9.12 계층형 재질
- 9.13 재질 혼합과 필터링
- 9.13.1 정규 분포와 정규 분포 필터링
- 추가 읽을거리와 리소스
- 10장. 지역 조명
- 10.1 영역 광원
- 10.1.1 광택 재질
- 10.1.2 일반적인 조명 모양
- 10.2 환경 조명
- 10.3 구면과 반구면 함수
- 10.3.1 간단한 테이블 형식
- 10.3.2 구면 기저
- 10.3.3 반구면 기저
- 10.4 환경 매핑
- 10.4.1 위도-경도 매핑
- 10.4.2 구 매핑
- 10.4.3 큐브 매핑
- 10.4.4 기타 투영
- 10.5 정반사 이미지 기반 조명
- 10.5.1 사전 필터링된 환경 매핑
- 10.5.2 미세면 BRDF에 대한 분할 적분 근사
- 10.5.3 비대칭과 이방성 로브
- 10.6 방사도 환경 매핑
- 10.6.1 구 고조파 방사도
- 10.6.2 기타 표현
- 10.7 오류 소스
- 추가 읽을거리와 리소스
- 11장. 전역 조명
- 11.1 렌더링 수식
- 11.2 일반적인 전역 조명 모델
- 11.2.1 라디오시티
- 11.2.2 광선 추적법
- 11.3 주변 폐색
- 11.3.1 주변 폐색 이론
- 11.3.2 가시성과 모호성
- 11.3.3 상호 반사 설명
- 11.3.4 미리 계산된 주변 폐색
- 11.3.5 주변 폐색의 동적 계산
- 11.3.6 스크린 공간 기반 방법
- 11.3.7 주변 폐색 음영
- 11.4 방향성 폐색
- 11.4.1 미리 계산된 방향성 폐색
- 11.4.2 방향석 폐색 동적 계산
- 11.4.3 방향성 폐색을 이용한 음영
- 11.5 확산 전역 조명
- 11.5.1 표면 사전 조명
- 11.5.2 방향성 표면 사전 조명
- 11.5.3 미리 계산된 전이 함수
- 11.5.4 저장 방법
- 11.5.5 동적 확산광 전역 조명
- 11.5.6 빛 전파 볼륨
- 11.5.7 복셀 기반 방법
- 11.5.8 화면 공간 방법
- 11.5.9 기타 방법
- 11.6 반사 전역 조명
- 11.6.1 지역적 환경 맵
- 11.6.2 환경 맵의 동적 업데이트
- 11.6.3 복셀 기반 방법
- 11.6.4 평면 반사
- 11.6.5 화면 공간 방법
- 11.7 통합 접근 방식
- 추가 읽을거리와 리소스
- 12장. 이미지 공간 효과
- 12.1 이미지 프로세싱
- 12.1.1 양방향 필터링
- 12.2 재투영 기법
- 12.3 렌즈 플레어와 블룸
- 12.4 피사계 심도
- 12.5 모션 블러
- 추가 읽을거리와 리소스
- 13장. 폴리곤 이외의 처리 방법
- 13.1 렌더링 스펙트럼
- 13.2 고정 뷰 효과
- 13.3 스카이박스
- 13.4 조명 필드 렌더링
- 13.5 스프라이트와 레이어
- 13.6 빌보드
- 13.6.1 화면 정렬 빌보드
- 13.6.2 전역 기반 빌보드
- 13.6.3 축 방향 빌보드
- 13.6.4 임포스터
- 13.6.5 빌보드 표현
- 13.7 변위 기법
- 13.8 입자 시스템
- 13.8.1 음영 입자
- 13.8.2 입자 시뮬레이션
- 13.9 점 렌더링
- 13.10 복셀
- 13.10.1 응용 분야
- 13.10.2 복셀 저장
- 13.10.3 복셀 생성
- 13.10.4 렌더링
- 13.10.5 기타 주제
- 추가 읽을거리와 리소스
- 14장. 볼륨과 반투명 렌더링
- 14.1 빛 산란 이론
- 14.1.1 참여 미디어 재질
- 14.1.2 투과율
- 14.1.3 산란 이벤트
- 14.1.4 위상 함수
- 14.2 특수한 볼륨 렌더링
- 14.2.1 대규모 안개
- 14.2.2 단순 볼륨 조명
- 14.3 일반 볼륨 렌더링
- 14.3.1 볼륨 데이터 가시화
- 14.3.2 참여 미디어 렌더링
- 14.4 하늘 렌더링
- 14.4.1 하늘과 공간 원근법
- 14.4.2 구름
- 14.5 반투명 표면
- 14.5.1 적용 범위와 투과율
- 14.5.2 굴절
- 14.5.3 커스틱과 그림자
- 14.6 표면하 산란
- 14.6.1 랩 라이팅
- 14.6.2 법선 블러링
- 14.6.3 사전 통합 피부 음영
- 14.6.4 텍스처 공간 확산
- 14.6.5 화면 공간 확산
- 14.6.6 깊이 맵 기법
- 14.7 헤어와 털
- 14.7.1 지오메트리와 알파
- 14.7.2 헤어
- 14.7.3 털
- 14.8 통합 접근법
- 추가 읽을거리와 리소스
- 15장. 비사실적 렌더링
- 15.1 툰 음영
- 15.2 윤곽선 렌더링
- 15.2.1 법선 기반 음영 윤곽 테두리
- 15.2.2 절차적 지오메트리 실루엣화
- 15.2.3 영상 처리에 의한 윤곽선 검출
- 15.2.4 기하학적 윤곽 에지 감지
- 15.2.5 은선 제거
- 15.3 획 표면 양식화
- 15.4 선
- 15.4.1 삼각형 에지 렌더링
- 15.4.2 가려진 선 렌더링
- 15.4.3 후광 적용
- 15.5 텍스트 렌더링
- 추가 읽을거리와 리소스
- 16장. 폴리곤 기법
- 16.1 3차원 데이터 출처
- 16.2 테셀레이션과 삼각형화
- 16.2.1 음영 문제
- 16.2.2 에지 균열과 T 정점
- 16.3 통합
- 16.3.1 병합
- 16.3.2 방향
- 16.3.3 솔리드성
- 16.3.4 법선 벡터 스무딩과 주름 에지
- 16.4 삼각형 팬, 스트립, 메시
- 16.4.1 삼각형 팬
- 16.4.2 삼각형 스트립
- 16.4.3 삼각형 메시
- 16.4.4 캐시 인식 메시 레이아웃
- 16.4.5 정점과 인덱스 버퍼/배열
- 16.5 단순화
- 16.5.1 동적 단순화
- 16.6 압축과 정밀도
- 추가 읽을거리와 리소스
- 17장. 곡선과 곡면
- 17.1 매개변수 곡선
- 17.1.1 베지어 곡선
- 17.1.2 GPU의 경계 베지어 곡선
- 17.1.3 연속성 및 단편적 베지어 곡선
- 17.1.4 큐빅 허마이트 보간
- 17.1.5 Kochanek-Bartels 곡선
- 17.1.6 B-스플라인
- 17.2 매개변수 곡면
- 17.2.1 베지어 패치
- 17.2.2 베지어 삼각형
- 17.2.3 연속성
- 17.2.4 PN 삼각형
- 17.2.5 Phong 테셀레이션
- 17.2.6 B-스플라인 표면
- 17.3 음함수 표면
- 17.4 분할 곡선
- 17.5 분할 표면
- 17.5.1 Loop 분할
- 17.5.2 Catmull-Clark 분할
- 17.5.3 단편적 부드러운 분할
- 17.5.4 변위 분할
- 17.5.5 법선, 텍스처, 컬러 보간
- 17.6 효율적인 테셀레이션
- 17.6.1 부분 테셀레이션
- 17.6.2 적응 테셀레이션
- 17.6.3 빠른 Catmull-Clark 테셀레이션
- 추가 읽을거리와 리소스
- 18장. 파이프라인 최적화
- 18.1 프로파일링과 디버깅 도구
- 18.2 병목 현상 탐색
- 18.2.1 애플리케이션 단계 테스트
- 18.2.2 기하 처리 단계 테스트
- 18.2.3 래스터화 단계 테스트
- 18.2.4 픽셀 처리 단계 테스트
- 18.2.5 병합 단계 테스트
- 18.3 성능 측정
- 18.4 최적화
- 18.4.1 애플리케이션 단계
- 18.4.2 API 호출
- 18.4.3 기하 처리 단계
- 18.4.4 래스터화 단계
- 18.4.5 픽셀 처리 단계
- 18.4.6 프레임 버퍼 기법
- 18.4.7 병합 단계
- 18.5 다중 처리
- 18.5.1 다중 프로세서 파이프라이닝
- 18.5.2 병렬 처리
- 18.5.3 작업 기반 다중 처리
- 18.5.4 그래픽 API 다중 처리 지원
- 추가 읽을거리와 리소스
- 19장. 가속 알고리듬
- 19.1 공간 데이터 구조
- 19.1.1 바운딩 볼륨 계층
- 19.1.2 BSP 트리
- 19.1.3 옥트리
- 19.1.4 캐시 무시와 캐시 인식 표현
- 19.1.5 장면 그래프
- 19.2 컬링 기법
- 19.3 후면 컬링
- 19.4 뷰 절두체 컬링
- 19.5 포털 컬링
- 19.6 디테일과 작은 삼각형 컬링
- 19.7 폐색 컬링
- 19.7.1 폐색 쿼리
- 19.7.2 계층적 Z 버퍼링
- 19.8 컬링 시스템
- 19.9 상세 수준
- 19.9.1 상세 수준 전환
- 19.9.2 상세 수준 선택
- 19.9.3 시간 중심 상세 수준 렌더링
- 19.10 큰 장면 렌더링
- 19.10.1 가상 텍스처링과 스트리밍
- 19.10.2 텍스처 트랜스코딩
- 19.10.3 일반적 스트리밍
- 19.10.4 지형 렌더링
- 추가 읽을거리와 리소스
- 20장. 효율적 음영
- 20.1 디퍼드 음영
- 20.2 데칼 렌더링
- 20.3 타일 음영
- 20.4 클러스터링된 음영
- 20.5 디퍼드 텍스처링
- 20.6 오브젝트 및 텍스처 공간 음영
- 추가 읽을거리와 리소스
- 21장. 가상 현실과 증강 현실
- 21.1 장비와 시스템 개요
- 21.2 물리적 요소
- 21.2.1 지연 시간
- 21.2.2 광학
- 21.2.3 입체시
- 21.3 API와 하드웨어
- 21.3.1 스테레오 렌더링
- 21.3.2 포비티드 렌더링
- 21.4 렌더링 기법
- 21.4.1 끊김
- 21.4.2 타이밍
- 추가 읽을거리와 리소스
- 22장. 교차 검사 방법
- 22.1 GPU 가속 피킹
- 22.2 정의와 도구
- 22.3 바운딩 볼륨 생성
- 22.3.1 AABB와 k-DOP 생성
- 22.3.2 구 생성
- 22.3.3 볼록 다면체 생성
- 22.3.4 OBB 생성
- 22.4 기하학적 확률
- 22.5 경험 법칙
- 22.6 광선/구 교차
- 22.6.1 수학적 솔루션
- 22.6.2 최적 솔루션
- 22.7 광선/박스 교차
- 22.7.1 슬래브 방법
- 22.7.2 광선 기울기 방법
- 22.8 광선/삼각형 교차
- 22.8.1 교차 알고리듬
- 22.8.2 구현
- 22.9 광선/폴리곤 교차
- 22.9.1 교차 검사
- 22.10 평면/박스 교차
- 22.10.1 AA BB
- 22.10.2 OB B
- 22.11 삼각형/삼각형 교차
- 22.12 삼각형/박스 교차
- 22.13 경계-볼륨/경계-볼륨 교차
- 22.13.1 구/구 교차
- 22.13.2 구/박스 교차
- 22.13.3 AABB/AABB 교차
- 22.13.4 k-DOP/k-DOP 교차
- 22.13.5 OBB/OBB 교차
- 22.14 뷰 절두체 교차
- 22.14.1 절두체 평면 추출
- 22.14.2 절두체/구 교차
- 22.14.3 절두체/박스 교차
- 22.15 선/선 교차
- 22.15.1 2차원
- 22.15.2 3차원
- 22.16 세 평면 사이의 교차
- 추가 읽을거리와 리소스
- 23장. 그래픽 하드웨어
- 23.1 래스터화
- 23.1.1 보간
- 23.1.2 보수적 래스터화
- 23.2 대규모 계산과 스케줄링
- 23.3 대기 시간과 점유
- 23.4 메모리 아키텍처와 버스
- 23.5 캐싱과 압축
- 23.6 컬러 버퍼링
- 23.6.1 비디오 디스플레이 컨트롤러
- 23.6.2 단일, 이중, 삼중 버퍼링
- 23.7 깊이 컬링, 테스팅, 버퍼링
- 23.8 텍스처링
- 23.9 아키텍처
- 23.10 사례 연구
- 23.10.1 사례 연구: A RM M ali G71 B ifrost
- 23.10.2 사례 연구: 엔비디아 파스칼
- 23.10.3 사례 연구: A MD G CN Vega
- 23.11 광선 추적 아키텍처
- 추가 읽을거리와 리소스
- 24장. 미래
- 24.1 기타 다뤄야 할 내용
- 24.2 이 책의 독자로서
- 참고 문헌
- 찾아보기
도서 오류 신고
정오표
정오표
[p.1092 : 그림 19.11]
회컬러
→
회색
[p.1144 : 그림 19.45]
자주컬러
→
자주색
[p.1175 : 그림 20.9]
회컬러
→
회색
[p.1214 : 그림 21.5]
빨간컬러
→
빨간색
검은컬러
→
검은색
[p.1262 : 3행]
오른쪽 광선은 tmin < tmax 이후에 놓친다.
→
오른쪽 광선은 tmin > tmax 이후에 놓친다.
[p.1271 : 그림 22.16]
갈컬러
→
갈색