Shaders for game programmers and artists 추천

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

Moderator: 류광

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

Shaders for game programmers and artists 추천

Post by 쌀밥 »

책을 한권 추천하려고 합니다. 이번주에 제가 읽은 책인데 shader programming 에 관한 책입니다.

우선 제가 이 책을 접하게 된 계기는 amazon 에서 shader 치면 이 책이 가장 먼저 떠서였고, 서평을 보니 반응이 좋아서 였습니다. 그리고 무엇보다도 도서관에 이 책이 있어서 빌려 볼수 있었기 때문이겠군요...

책의 제목을 먼저 보면, Shaders for game programmers and artists 라고 되어있어서 처음에는 "왜 artitst 지??" 하고 이상하게 생각했습니다. 하지만 다 읽고나서 돌아보니, 디자이너들을 위한 책은 절대 아니라는 생각이 들었습니다.

이 책의 가장 큰 특징은 C++ 코딩이 한줄도 안나온다는 점입니다. 보통의 shader 관련 책들이 directX 의 역사부터 시작해서 DX 에서 쉐이더 쓰는 법을 시작으로 책이 시작되는 것과는 매우 다른 구성입니다. 그 대신에 Render Monkey 를 사용합니다.

책 전체가 RenderMonkey 사용을 전재로 해서 작성되어있고, 이런 책 구성이 개인적으로는 매우 마음에 들더군요. 왜냐하면 세세한 코딩을 모두 생략하고 shader 에만 집중할수 있게 해주기 때문입니다. 그리고 현업에서 RenderMonkey 를 활용하면 shader 프로그래머와 게임 로직 프로그래머의 공유되는 작업이 현격히 줄어들고, shader 프로그래머는 디자이너와 같이 작업하기가 매우 수월하질것 같습니다. RenderMonkey 에 대한 설명을 여기서 다할수는 없지만 단단하 요약하면, shader 프로그래머가 코드중의 일부(텍스쳐명, variable 값등)를 디자이더가 수정할수 있도록 인터페이스를 빼주는 것이 있어서 디자이너가 눈으로 결과를 보면서 직접 수치를 조절할수 있게 해줍니다.

책의 구성을 보면, 앞의 대략 100 페이지 분량은 Render Monkey 사용법에 대한 내용입니다. (part 1과 부록B) 개인적으로는 그냥 GUI 사용법을 장황하게 말로 설명하고 있어서 지루하고 짜증나서 몇번이나 덮어 버릴까 고민하게 만든 부분입니다. 혹시 Render Monkey 를 이미 아시는 분이라면 바로 스킵할수 있는 부분이겠습니다.

파트2 에 해당하는 챕터 5부터는 조금씩 재미있어지기 시작하는데, 챕터별로 간단히 내용을 요약하면 이렇습니다.

5장 : texture 입히는 것과 render target 사용한것을 filtering (혹은 다른 용어로 convolution) 시키는 것을 설명합니다.
6장 : Depth of Field 효과를 imposter 방식을 사용해서 구현하는 것을 보여줍니다.
7장 : Heat Haze 효과 (더울때 아스팔트가 이글 거리는 굴절효과)를 구현합니다.
8장 : High Dynamic Range (Glare + streaks + lens flares) 효과를 구현합니다.
9장 : 빛 모델들을 간단히 설명합니다. (BRDF 포함)
10장 : bump mapping 을 구현합니다.
11장 : Reflection 과 refraction 을 구현합니다.
12장 : BRDF 구현들 중의 하나인 Oren-Nayer velvet 이라는 모델을 구현합니다.
13장 : Perlin 노이즈를 구현합니다.
14장 : Toon shading (혹은 NPR) 을 구현합니다.
15장 : Fog 사용법을 설명합니다.
16장 : Skining 을 설명합니다.
17장 : 환경 맵을 diffuse map 과 specular 맵에 대해서 구현합니다.
18장 : Shadow map 을 구현하고, shadow volume 을 설명합니다.
19장 : LOD 에 대한 간단한 설명과 Displacement mapping 이 Shader Model 3.0 에서 어떻게 활용될수 있는지 설명합니다.

부록A : HLSL 메뉴얼입니다.
부록B : RenderMonkey 1.5 메뉴얼입니다.
부록C : 첨부된 CD 설명입니다.
부록D : 각 챕터 마지막부분에 붙어 있는 연습문제들의 정답입니다.
부록E : 책에서 사용된 코드의 라이브러리를 모아두었습니다.

위의 설명에 조금 ㅤㄷㅓㅌ붙여야 할것이 있겠습니다. 우선은, 이 책이 순수하게 RenderMonkey 를 기반으로 하고 있기 때문에, 프로그래머가 이 책을 읽으면서 RenderMonkey 의 어떤 어떤 기능을 사용한다고 설명이 되어있으면 머릿속으로 DX 코딩으로 하면 어떻게 될것이다 하는 것을 스스로 떠올려야 합니다. 그러므로 Shader 에 대한 기본 사용법 정도는 이미 알고 계셔야 합니다. 용책의 마지막 쳅터인 19장 정도만 숙지하시면 무리 없이 가능하지 않을까 싶습니다.

책이 2004년에 출간되었다는 것이 처음 보기 시작하면서부터 걸렸는데, 책을 다 읽은 지금 시점에서 다시 생각해보면, 5년전의 책 답지 않게 지금도 매우 유용하게 읽힐수 있는 훌륭한 책이라는 생각입니다. 지금도 사실 HDR 같은거 하드웨어가 안 밭쳐줘서 제대로 쓰지 못하고 있는 상황이고, 이 책에서 설명한 BRDF 같은 것은 실제로 게임에서 쓰지는 못하더라도 구현 하는 방법을 읽기만 해도 배우는것이 많습니다.

이 책 끝내고 바로 ShaderX7 (2009년판)을 읽기 시작했는데, 첫파트가 geometric shader 에 대한 이야기 부터 시작하더군요. Geometric shader 돌아가는 하드웨어 아직까지 본적도 없는데.... 하는 생각이 들면서 최근 책이라고 다 좋은게 아니고 좀 오래된 책이라고 다 나쁜게 아니라는 생각이 들었습니다.

아쉽게도 이 책에서 Displacement mapping 을 간단히 다루기는 하지만, 2007년 이후로 알려지기 시작한 parallex mapping 이나 Relief mapping 같은 것에 대한 언급이 없습니다. 이부분은 다른 책들을 읽어서 보충하셔야 할것 같습니다.

RenderMonkey 1.5 버전이 이 책에서 사용되고 있는데 지금 최신 버전이 1.8 인것을 고려하면 버전은 별로 문제가 안된다고 생각합니다. 다만 이 책을 쓰일당시에 RenderMonkey 에서 지원되지 않던 기능들이 몇가지 있어서 그것과 관련된 기능은 코드가 제공되지 않고 개념적인 설명만 주어져 있습니다. (Skinning 과 Shadow volume 부분)

저는 읽는데 3일정도 걸렸는데, 앞부분은 허접이라고 생각될 정도로 쉽지만 뒤로 가면서 어려워집니다. 제 생각에는 중급자 정도 수준으로 다른 shader 책을 본적이 없는 분들께 매우 강력히 추천하고 싶은 책입니다. 번역본이 없어서 영어가 약한분들께는 좀 부담이 될것 같은게 좀 아쉽네요.
I want to live in korea, making programs, but...
http://wrice.egloos.com
mmoboy
Posts: 144
Joined: 2006-02-02 11:15

이런책이 번역서가 나와야 할텐데

Post by mmoboy »

너무 아쉽습니다. 저도 원서를 읽을려면 읽겠지만.. 실력이 미천한지라..
좀 오래 걸립니다.. 그러다가 답답해서 닫아 버리기 일쑤죠..


이런 책들이 번역되서 나왔으면 좋겠습니다. ㅠ.ㅠ;

ShaderX시리즈도 나왔으면 좋겠구요..
Game Coding Complete도 마찬가지고..



나중에 제가 부자가 된다면 제 사비로..
류광님께 부탁드려서.. 쫘르르륵 다 번역 출판 해버리고 싶습니다 ㅠ.ㅠ

..부자가 된다면 말이죠 ㅠ.ㅠ
뭐 해먹고 사나.. ('' ) ( '')
쌀밥
Posts: 1058
Joined: 2003-02-02 20:23
Location: THQ Inc.
Contact:

Post by 쌀밥 »

참고하시라고 적어봅니다.

ShaderX 7 을 읽고 있는 중이었는데, 읽으면서 reference 목록들중에 Wolfgang Engel (ShaderX의 총괄 편집자이자 RockStar 의 핵심 개발자) 이 쓴 Shader 책이 있다는 것을 알게 되었습니다.

책 제목은 Programming Vertex & Pixel Shaders 입니다.

아마존의 평점도 높고, 2004년에 쓰여진 책이고, parallex mapping 도 설명되어있다고 하니 shader 책을 고르고 계신분들께서는 한번 고려해보시는 것도 좋겠다고 생각합니다. 이 책이 있는 줄 진작에 알았다면 저는 Engel 아저씨가 쓴 책을 선택했을것 같습니다. ㅜ.ㅜ

주의 하실점은 2판(2008년판)은 DirectX10 기준으로 Geometric shader 내용도 포함하고 있으니 필요에 따라 구분해서 선택하시기 바랍니다.
I want to live in korea, making programs, but...
http://wrice.egloos.com
66v
Posts: 6
Joined: 2008-11-09 23:35
Location: 후쿠오카 모 회사
Contact:

Programming Vertex & Pixel Shaders의 경우

Post by 66v »

Geometry Shader가 추가된 2008년도 제 2판은 프린트 버전으로 발매되지 못했습니다.
http://www.gamedev.net/community/forums ... 1&#3393638

출판교섭이 실패하자 아까운 작업물을 썩힐바엔 공개하는게 낫다고 판단하여
저자분들께서 GameDev에 공개하셨습니다.
http://wiki.gamedev.net/index.php/D3DBook:Book_Cover
부산-후쿠오카는 배타고 3시간.
Post Reply