티스토리 뷰

바쁜 와중에도 손으로 직접 해보는건 다 못해보고 그저 따라치면서 읽었습니다. 하지만 제가 생각하기에는 분명 이 책은 실습 위주의 책입니다. 아마 그냥 대충 눈으로만 책으로 보시기에는 손이 너무 심심하고 따분한 책이 될겁니다.

 사실 저 같은 경우에는 셰이더 프로그래밍을 다루기전에 걱정이 들긴했었습니다. Unity3D로 간단한 게임을 구현하면서 셰이더의 존재를 알았고, 무엇보다도 이를 잘 다루기 위해서는 미적 감각과 수학적 감각이 필요하다는 걸 안 상태에서 이책을 접하기가 쉽지는 않았지요. 미적 감각이야 그렇다치더라도 수학적 감각은 진짜 대학다닐때 수학 수업을 들으면서 진짜 적성에 맞지 않다는 느끼고 열심히 하지 않았습니다. (덕분에 지금 고생 열심히 하고 있네요...)

분명 게임 전공을 하시는 분이라면 누구나 걱정하시는 문제가 게임 월드 상의 위치와 카메라간의 상관관계, 빛의 위치에 대한 수학적 계산일 겁니다. 그리고 셰이더는 보통 이런 계산을 통해서 조금더 개체가 실감나게끔 해주는 요소이기에 반드시 다뤄야 할 요소일 것이겠고요. 누구나 어렵게 생각하는 것을 저자분은 이렇게 정의합니다.


"셰이더는 화면에 출력할 픽셀의 위치와 색상을 계산하는 함수"

  

그리고 여기에 철저히 맞춰서 책의 틀을 잡고 있습니다. 가령 이해가 조금 힘든 부분에서는



와 같이 그림과 수식이 같이 정의되어서 설명되어 있기 때문에 저도 쉽게 알아가면서 따라갈 수 있었던 것 같습니다. 그런데 막상 책을 다 보고나니까 저자분이 서두에서 말한 내용이 그대로 와닿습니다. 물론 기타 부가적인 효과를 적용하기 위한 함수들도 있지만 거의 전반적인 진행은 픽셀을 정의하고 행렬화해서 계산하는 형식을 계속 취해왔던 거 같네요.


전반적인 평을 하자면 어떻게 보면 어렵게 생각할 수 있는 영역을 저자이신 Pope Kim 님이 잘 설명해주신 거 같습니다. 그에 필요한 내용도 수식이나 그림을 통해서 설명이 되어 있고 코드에 대한 분석도 설명이 필요한 부분별로 잘 나눠져서 진행된다는 점에서 읽기가 편했던 것 같습니다. 한가지 아쉬운 점이 있다면 조금더 지식의 배고픔이 더해졌다랄까요? 뭔가 얇다는 거.. (이부분은 저자분도 언급하셨습니다. 괜히 두꺼우면 책값만 비싸지기에 정말로 알짜배기 내용만 담았다고 말이지요.)

하지만 분명 읽어보신 분들은 아실겁니다. 그 얇음 속에서도 무언가를 얻어갈 수 있는게 있고, 그걸 직접 해보면서 얻는 결과에 대한 뿌듯함이 배어있는 책이라고 할 수 있겠습니다.

Do It Yourself! 

직접해보시면서 느껴보셨으면 좋겠습니다.

댓글