사실 DirectX9 이후로는 게임 시장이 모바일위주 시장으로 이동과 더불어 상용엔진 위주로 프로젝트를
진행하다 보니 DirectX나 OpenGL과 같은 3D API를 할 일이 많이 줄어 들었다.
하지만 그럼에도 3D API를 직접 짜 보는 일(software renderer)과 3D API를 사용하여 간단한 게임을
만들어 보는게 여전히 중요하다고 생각한다.
이 책은 예전에 내가 게임 프로그래머가 되기 위해 공부할 때 많은 도움을 받았던
"DirectX9를 이용한 3D Game 프로그래밍 입문"(일명 용책) 책의 최신 개정판이다.
이 책을 가볍게 읽고 난 후의 느낌은 "아, 역시 이 책은 정석 이구나" 였다.
용책과 마찬가지로 활용법이나 응용법이 보다, 사용법에 좀 더 집중하여 쓴 책이라는 느낌을 받았다.
처음에는 대부분의 3D 책의 틀대로 간단한 수학적인 내용이 나온다.
벡터, 행렬, 변환... 이 조합은 책 살때마다 들어있어 지겹지만 사실 볼때마다 새롭게 느껴진다.
특히 최근에는 그다지 볼 일이 없어 오랜만에 읽었더니 기억이 새록새록 떠오르는게 좋았다.
그 이후로는 Direct 3D에 대한 기본적인 내용과 렌더링에 대한 기본적인 내용이 나온다.
자연스럽게 이어지는 내용으로는 렌더링 내부는 어떤 순서로 이루어 지는지에 대한 설명이며
축약해서 말하자면 렌더링 파이프라인에 대한 글이다.
이전에는 지원하지 않았던 테셀레이션, 기하 셰이더가 시대를 반영해서 추가되어 있었다.
조금은 지루한 개념들 설명이 끝나면 DirectX를 사용한 렌더링을 실습하면서 추가 개념들을
익힐 수 있는 구성으로 넘어가고, 3D 렌더링에서 중요한 조명에 관한 내용이 뒤따른다.
기본에 충실한 렌더링, 라이팅 텍스처, 블렌딩등을 DirectX 12로 하나씩 따라 구현하다보면
어느새 DirectX12 문법이 익숙해 진다.
문법이 익숙 해 질 때즘, 스텐실, 기하셰이더, 계산 셰이더, 테셀레이션, 등의 고급(?) 단계로 넘어가고
용책에는 조금 약했다고 느껴지는 응용에 대한 내용이 나온다.
이 책을 대략적으로 훑어보고 나서 드는 생각은 다시 하나하나씩 꼼꼼하게 읽어보고 정리하고 싶다였다.
그만큼 책 내용이 알차게 들어 있어 다시 자세하게 읽어보고 싶어졌다.
특히 뒤의 응용부분은 하나하나 주제로 하여 추가 구현이나 정리를 하면 재미있을 것 같다.
나름 현 시대를 반영한 최신 DirectX12 바이블이며 유일한 번역서이다.
시대가 시대인 만큼 분명 "용책"만큼의 사랑을 받기는 어렵겠지만 집에서 자체엔진을 만드는
사람이나, DirectX에 관심이 있는사람, 또는 PC 프로젝트를 하는 사람(DirectX 12로 게임을 제작하는
회사가 있을까??), 또는 3D 렌더링을 공부하는 사람들 한테 좋은 지침서가 될 것이다.
기본에 충실하고 내용이 알차서 좋다.
다소 옛날 지식이나 너무 반복되는 기본내용이라고 생각할 수 도 있지만 내가 보기엔
3D 입문서라는 명칭에 맞게 용책과 마찬가지로 기본에 충실하며, 용책보다는 좀 더 폭넓게
쓰기 위해 노력한 부분이 보인다.
다만 입문서기에 간단하게 맛만 보는 느낌의 주제들이 꽤 많다.
그렇기에 좀 더 깊이있게 파이프라인을 공부하고자 하는 사람들, 셰이더 테크닉을 공부하고 싶은 사람들,
물리적 작용에 대한 공부를 하고 싶은 사람들, 자체엔진을 만들고 싶은 사람들은
이 책을 지침으로 추가 공부를 하면 좋을 것 같다.
입문서로서 전반적으로 균형이 잘 잡힌 좋은 책 인 것 같다.