ShaderX 7 추천 및 간단 요약

GPG 카탈로그에서 다루는 책들을 읽을 때 도움이 될만한 참고자료를 추천하는 게시판입니다.
(참고자료 추천 요청을 받는 곳은 아닙니다.)

Moderator: 류광

쌀밥
Posts: 1058
Joined: 2003-02-02 20:23
Location: THQ Inc.
Contact:

ShaderX 7 추천 및 간단 요약

Post by 쌀밥 »

ShaderX 시리즈는 사실 추천한다는 말이 필요없는 유명한 책들입니다.

지난주 부터 열심히 읽고 있었는데 워낙에 분량도 많고 (약 750페이지) 난이도가 제게 상당히 버거울 정도로 높아서 읽는데 시간이 좀 많이 걸렸습니다.

그런데 힘들었던만큼 배운게 많은 매우 매우 좋은 책이었다고 생각합니다.

제가 볼때에 이 책의 수준은 GPU gems 시리즈 (마지막 시리즈 3판은 2007년에 출간되었으니 그 후로 좀 뒤쳐진 감이 있습니다)와 ACM Siggraph 논문들의 중간쯤에 있다고 생각합니다.

하지만 ACM 논문들이 실용적인 기술보다는 (좋게 말해서) 미래 지향적인 것들이 많다는 점을 고려하면, 게임 프로그래머 수준에서 접할수 있는 가장 난이도 높은 그래픽 프로그래밍 관련 책이 바로 ShaderX7 이라고 생각합니다.

작년에 ShaderX5를 읽을때는 이렇게 까지 어렵다고 느끼진 않았는데, 아무튼 이번 판에서는 난이도가 매우 높아졌으니, 읽으시기 전에 마음의 준비를 하고 보시는게 좋겠다는 생각입니다.


내용은 매우 매우 훌륭한것들이 많은데, 오늘은 졸려서 길게 못쓸것 같고 간단하게 키워드로 정리하면 이렇게 될것 같습니다.

1. Deferred Shading 개선법
2. Pre-light Rendering
3. Cascaded shadow mapping
4. Screen-Space Ambient Occlusion (SSAO)
5. Game Engine 관련

여기서 Pre-light rendering 이라는 것은 아마도 여기에서 처음 등장한 개념인것 같은데 책의 책임 편집자인 Wolfgang Engel 아저씨가 직접 쓰신 글입니다. 기본 개념은 기존 deferred shading 의 방법으로는 G-buffer 가 자꾸 커지고 사용할수 있는 material 수가 제한되니, 모델을 먼저 그리지 말고 빛을 먼저 그리고 모델을 나중에 그리는 방법으로 순서를 바꾸면 여러가지로 장점이 많이 생긴다는 점입니다. 사실 개인적으로는 굉장히 획기적인 방법이라고 생각합니다.

pre-light rendering 은 제 블로그에 간단히 요약을 해보았으니 참고하시기 바랍니다.
http://wrice.egloos.com/5000313

Casecaded shadow mapping 은 사실 ShaderX5 에서 Wolfgang Engel 아저씨가 이미 글로 다 써서 정리하신건데, 그걸 직접 게임에 적용해보니 발견되는 문제점이나 개선 방법이 많이 다루어지고 있습니다. 저는 사실 5권 읽을때 제대로 이해를 못했었는데, 이번에 제대로 이해할수 있었습니다.

SSAO 는 2007년 CryTek 의 Lead programmer 가 ACM 논문으로 써서 유명해진 기술입니다. 하지만 구체적인 부분들이 아직까지 공개되지 않은것들이 많았는데, 이번 ShaderX7 에서 구체적인 내용이 공개되었다고 합니다. SSAO 는 기존에 offline 에서 미리 선 계산해서 사용해야했던 AO 를 실시간에서 (frame 당 3ms 정도 소요, X-box 기준인듯..) post-processing 으로 구현을 해내는 방법입니다. 사실 SSAO 관련글들이 너무 많아서 지겨울 정도였는데, 그만큼 획기적인 기술이라는 걸 반증하는 거라고 생각합니다.

그 밖에도 여러가지 상용 게임들의 개발 후기 같은 느낌의 글들이 많습니다. 대표적으로는 GTA 4 의 그림자 구현이 잘 설명되어있고, 고담 프로젝트4의 눈/비 표현에 대해서도 아주 자세히 잘 설명되어있습니다. CrackDown 의 구름, 소품, 자동차에 생기는 반사 표현 방법도 매우 인상적이었습니다. 사실 글을 읽어보면 머리 위로 지나가는 "다리"가 만드는 반사는 어떻게 표현되어있는지 설명이 빠져있는데 조금만 생각해보면 양쪽 길가의 빌딩 높이값을 최대로 주면 머리위에서 만나는 것처럼 표현할수 있다는 걸 알수 있습니다.

그리고 8장의 게임 엔진 관련 글들은 하나 빼고 다 좋은 매우 훌륭한 파트였다고 생각됩니다. (그 하나는 바로 UI 설계 관련입니다. 너무 어설펐어요 ㅡ.ㅡ)

개인적으로는 6.6장의 real-time 으로 ray tracing 구현하는것도 상당히 인상적이었습니다. kD-tree 비슷한 BIH 라는 binary tree 를 (1D texture 형태로) 몽땅 GPU 로 보내서 에니메이션 처리랑 ray 충돌 검사를 전부 shader 에서 구현하더군요. 불행히고 구현 내용을 보니 shader model 3.0 이상을 기준으로 한것이었습니다만 배운게 많았습니다. 이걸 보면 ray tracing 으로 구현된 게임을 보는 것도 조만간 가능하겠다는 생각이 들더군요.

여러가지 점에서 강추 강추인 책이니 꼭 읽어보시기 바랍니다.
개인에 따라 난이도가 버겁다고 생각되시는 분은 Real-time rendering 3판을 (불행히도 2판으로는 무리일듯) 먼저 읽어보시기를 권하고 싶습니다.

그리고 책을 다 읽고나시면 Real-time rendering 의 저자들중 한명이 Naty 라는 분의 관련글도 꼭 읽어보시기 바랍니다.
http://www.realtimerendering.com/blog/shaderx7/

그리고 또 참고로 ShaderX7 의 목차는 여기에서 확인하실수 있습니다.
http://www.shaderx7.com/TOC.html
I want to live in korea, making programs, but...
http://wrice.egloos.com
moonyeom
Posts: 168
Joined: 2007-02-05 16:38

Post by moonyeom »

쌀밥님, 좋은 정보 감사...(^.^)/
난, 가져다 쓰는건 왠지 싫어...
iremember
Posts: 9
Joined: 2006-08-10 16:42

오...

Post by iremember »

좋은 정보 감사합니다.
/*

Let's GO─!!

*/
Post Reply