Top

Physically Based Rendering Second Edition 물리 기반 렌더링 [현실 같은 그래픽스를 위한 알고리즘, 게임 엔진과 렌더러까지]

  • 원서명Physically Based Rendering, Second Edition: From Theory To Implementation (ISBN 9780123750792)
  • 지은이매트 파르(Matt Pharr), 그렉 험프리스(Greg Hunphreys)
  • 옮긴이이상우
  • ISBN : 9788960777620
  • 58,000원
  • 2015년 10월 16일 펴냄
  • 페이퍼백 | 1,224쪽 | 188*255mm

판매처

개정판

책 소개

2016년 대한민국학술원 우수학술도서 선정도서
요약

이 책은 게임과 영화 등에 사용되는 컴퓨터 그래픽스에 대한 심도 깊은 이해를 돕고, 게임 엔진이나 렌더러 구현에 관심이 있는 현업 종사자나 학생들에게 매우 유용한 책이다. 영화 프로덕션의 렌더맨(RenderMan)이나 언리얼 엔진의 라이트 매스(Lightmass) 같은 오프라인 렌더러의 기술에 더해, 최근 게임 엔진에서 사용하는 렌더링 기술까지 다루는, 컴퓨터 그래픽스를 위한 최고의 서적이다.

추천의 글

이 책은 대단한 책이다. 이 책은 기묘한 수학, 매혹적인 물리, 실용적인 소프트웨어 공학, 그리고 최첨단 실사 렌더러를 작성하는 데 필요한 기발한 기술을 모두 다룬다. 이 모든 주제를 깔끔하고 교육적인 방식으로, 실제로 중요한 모든 세부사항을 생략하지 않고 상세히 설명한다.
pbrt는 단지 레이트레이서(ray tracer)의 ‘장난감’ 구현만이 아니라, 일반적이고 안정적인 완전한 전역 조명 렌더러다. pbrt는 수행 시간을 줄이고 복잡한 장면의 메모리 소모량을 줄이기 위한 많은 중요한 최적화를 포함한다. 더욱이 pbrt는 기타 렌더링 알고리즘 변종과 함께 쉽게 확장할 수 있다.
이 책은 학생을 위한 교과서일 뿐만 아니라, 실제 분야의 전문가들을 위한 유용한 참고 도서다. 개정판은 메트로폴리스 빛 전송, 표면 밑 산란, 사전 계산 빛 전송 등에 대한 부분으로 확장됐다.
-페르 크리스텐센(Per Christensen) / 픽사 애니메이션 스튜디오(Pixar Animation Studios) 렌더맨 프로덕션, 선임 소프트웨어 개발자

연구나 최고급 렌더링 분야에서 직업을 찾고 있는가? 기초 교육을 받고난 후에는 이론과 실전 예제, 즉 실제 코드가 함께 하는 이 책으로 자신의 프로젝트를 시작하라. 개정판에서 매트 파르와 그렉 험프리스는 메트로폴리스 빛 전송이나 의사 몬테카를로 방식 같은 가장 발전된 렌더링 기술에 대해서도 쉬운 접근을 제공한다. 게다가 기반 작업을 통해, 렌더러에 자료를 넣고 추출할 때의 고통을 겪지 않게 해준다. 거시적 접근 방식의 문학적 프로그래밍은 읽기 쉬운 문장의 깔끔한 로직으로 나타난다. 그래픽을 진지하게 생각한다면 최신 기술을 다룬 이 독창적이고도 극도로 가치 있는 이 책을 반드시 읽기 바란다.
-알렉산더 켈러(Alexander Keller) / 멘탈 이미지스(Mental Images) 수석 과학자

이 책에서 다루는 내용

이 책은 현대 실사 렌더링 시스템 기반의 수학적인 이론과 함께 실질적인 구현을 설명한다. 문학적 프로그래밍(literate programming)으로 알려진 메소드를 써서 사람이 읽을 수 있는 문서와 소스코드를 합쳐, 잘 이해할 수 있도록 특별히 설계된 하나의 참고문헌으로 만들었다. 그래픽 교육에 있어 경탄할 만한 성취다. 이 책의 개념과 소프트웨어를 통해 굉장히 아름다운 이미지를 생성하는 완전한 기능의 렌더링 시스템을 디자인하고 사용하는 방법을 배우게 될 것이다.

표면 밑 산란, 메트로폴리스 빛 전송, 사전 계산 빛 전송, 다중 분광 렌더링 등을 다루는 많은 내용이 개정판에 추가되었다.

이 책에서 설명한 렌더링 시스템의 윈도우, OS X, 리눅스 지원 소스코드는 www.pbrt.org에서 볼 수 있다.

코드와 문서는 각 함수, 변수, 메소드를 처음 설명하는 페이지를 열거하고, 고유한 색인 기능으로 긴밀히 상호 참조할 수 있도록 정리했다.

이 책의 대상 독자

이 책의 주요 독자층은 대학원생 혹은 학부 고학년 컴퓨터 그래픽스 강의를 들을 수 있는 수준의 학생들이다. 이 책은 기본적으로 독자들이 대학 입문 수준의 컴퓨터 그래픽스 지식을 갖췄다고 가정하지만, 벡터 기하학이나 변환 같은 특정한 중요한 개념은 설명한다. 몇 만 줄 이상의 프로그램을 경험해보지 못한 학생들에게 문학적 프로그래밍 방식은 이런 복잡성에 대한 바람직한 소개가 될 것이다. 우리는 이런 독자들에게 왜 시스템이 이런 방식으로 구성됐는지를 알려주기 위해 시스템의 핵심 인터페이스와 추상화에 대한 이유를 설명하는 데 특별히 신경을 썼다.
두 번째 대상 독자층은 전문적인 대학원생들과 연구자, 소프트웨어 개발 종사자, 그리고 자신만의 렌더링 시스템을 구현하는 데 재미를 느끼고 관심이 있는 사람들이다. 이 책의 많은 내용이 이런 독자들에게는 익숙하겠지만, 알고리즘들의 문학적 방식의 설명을 보는 것이 새로운 관점을 제공할 수 있다. pbrt는 표면 세분화(subdivision surfaces), 몬테카를로 빛 전송(Monte Carlo light transport)과 메트로폴리스 표본화(Metropolis sampling)같이 고도화된 구현이 어려운 알고리즘들과 테크닉들의 구현을 포함하고 있으며, 이 내용은 특히 경험 있는 렌더링 현업자에게 관심 있는 분야일 것이다. 하나의 완전하고 비중 있는 렌더링 시스템의 구조를 파헤치는 것이 이런 독자들의 관심을 유발하기를 기대한다.

이 책의 구성

개정판에서 달라진 점
초판이 발행된 지 6년이 지났다. 그 동안 수천 권이 팔렸으며, 수천 번의 pbrt 다운로드가 있었다. 많은 피드백과 격려가 있었으며, 우리의 경험을 바탕으로 초판의 pbrt 버전과 업데이트된 버전의 변화를 결정했다.

1.플러그인(plugin) 아키텍처를 제거 초기 버전 pbrt는 실행 중(run-time) 플러그인 아키텍처를 통해 장면을 렌더하기 위한 기하 모양(shape), 광원, 적분기(integrator), 카메라 등의 물체(object)를 동적으로 불러왔다. 사용자들은 렌더링 시스템을 다시 컴파일할 필요 없이 새로운 물체 종류(예, 새로운 기하 모양)를 추가해 확장할 수 있었다. 이 방식은 초기에 우아하게 보였지만, 복잡한 멀티플랫폼의 지원과 어려운 디버깅을 야기했다. 유일하게 사용 가능한 시나리오(바이너리(binary) pbrt 배포본 혹은 바이너리 플러그인)는 우리의 교육적 오픈소스 목표와 반하므로 이번 판에서 제외됐다.

2.이미지 처리 파이프라인(image processing pipeline)을 제거 초기 버전에서는 톤 매핑(tone-mapping) 인터페이스를 통해 고명암비(HDR, High Dynamic Range) 부동소수점 결과 이미지를 직접 저명암비(low dynamic range) TIFF로 전환해 보여줬다. 이 기능은 HDR 이미지가 드물던 2004년 기준으로 만들어졌다. 하지만 2010년에는 디지털 사진술(photography)의 발달로 HDR 이미지가 흔해졌다. 톤 매핑의 이론과 실습은 우아하고 배울 가치가 있지만, 새 버전에선 이미지 형성(formation) 과정에 집중하고 이미지 디스플레이(display)를 제외하기로 했다. 관심 있는 독자들은 레인하드(Reinhard) 등(2005)의 철저한 최신 HDR 이미지 디스플레이를 위한 처리에 관한 책을 읽어보자.

3.작업 병렬화 멀티코어 아키텍처는 이제 도처에 존재하며, pbrt 역시 유저들의 사용 가능한 코어의 개수대로 성능을 확장할 수 있어야 의미 있다. 이 책의 병렬 프로그래밍 구현에 관한 세부 사항(예, 적절한 작업 크기나 뮤텍스(mutex) 종류)이 그래픽 프로그래머가 아직도 어렵고 잘 가르쳐주지 않는 확장 가능한 병렬 코드 개발의 세부 사항과 복잡성을 이해하는 데 도움이 되길 바란다.

4.프로덕션(production) 렌더링에의 적합성 초기 버전은 순수하게 교육용 툴과 렌더링 연구의 디딤돌로서 제작됐다. 사실 초기 버전은 제한된 이미지 기반 라이팅(image-based lighting), 모션 블러(motion blur) 미지원, 복잡한 라이팅에서의 광자 매핑(photon mapping) 구현의 불안정성 등 프로덕션 환경에서의 사용이 어려운 점이 많았다. 초기 버전보다 훨씬 발전된 기능의 지원과 표면 밑 산란(subsurface scattering)과 메트로폴리스 빛 전송(Metropolis light transport)의 지원으로 복잡한 환경의 초고품질 렌더링 이미지에 훨씬 적합해졌다. 기능 개선을 통해 더욱 기능이 완전해졌지만, 교수에겐 학생이 처리 가능한 과제를 주는 것이 더욱 어려워졌다. 사실 초기 버전 pbrt에 대해서도 학생들이 직접 레이트레이싱 시스템을 개발하는 것의 부담과 이점에 대한 트레이드오프가 발생했다. 초기 버전의 pbrt가 많은 대학에서 사용됐으므로, 새 버전의 복잡성과 기능 완성의 트레이드오프가 바람직해 계속 고품질 렌더링 수업에 사용되길 바란다.