Description

왜? 그래픽 아티스트가 쉐이더를 배워야 하는가? 사실 불과 십여 년 전까지만 해도, 쉐이더라는 그 특유의 프로그래밍스러운 제작방식 때문에 쉐이더가 '프로그래머의 영역' 이라고 말하는 프로그래머와 아티스트들이 적지 않았던 것도 사실입니다. 하지만 근본적으로 말하면 쉐이더의 시작은 '그래픽 아티스트들이 원하는 3D의 질감을 자유롭게 제어하도록 하자'라는 것이 목표였기 때문에, 사실 쉐이더는 그래픽 아티스트의 영역이라고 할 수 있습니다. 그럼에도 불구하고 게임에서 쉐이더가 프로그래머의 영역처럼 여겨졌었던 이유는 당시 실시간 3D 게임에서 처리할 수 있는 쉐이더의 효과가 극히 제한적이다 보니 아티스트가 다루기에는 너무 기술적으로 민감한 영역이 많았었습니다. 그래서 그래픽 아티스트가 어설프게 다루는 것보다 프로그래머가 다루는 것이 훨씬 안정적이고 좋은 결과를 보여줬기 때문이었습니다. 하지만 이제는 시대가 발전하여 게임도 영화에 필적할만한 표현이 가능해졌으며, 어느 정도의 비효율적인 환경에서도 잘 적응하는 하드웨어가 개발되고 있는 시대인 만큼 기술적인 효율성보다는 아티스트의 감성을 보장해주는 시대가 되어가고 있습니다. 멋진 그래픽 쉐이더를 구현하려면 그래픽 아티스트들의 감각이 절대적으로 필요합니다. 그들은 3D 툴의 Material Editor와 같은 쉐이더 에디터를 통해서 오랫동안 비주얼 쉐이더를 연구하며 감각을 키워왔기 때문입니다. 프로그래머가 이해하는 쉐이더와 아티스트가 이해하는 쉐이더는 기본 개념부터 다르지만 결국 두 파트가 함께 공유하며 완성해야 하는 영역입니다. 아트적인 감각과 테크니컬 감각이 잘 조화되면 정말 훌륭한 비주얼이 완성될 것입니다. 진입장벽이 높았던 쉐이더, 이제 아티스트들도 쉽게 도전할 수 있다. 게임그래픽의 쉐이더는 프로그래머가 다룰 수 밖에 없는 영역이었다 보니 기존의 쉐이더 관련 도서들은 각종 수학공식과 코딩들로 구성된 내용이 대부분이었습니다. 더구나 높은 진입장벽 때문인지 쉐이더를 배우고자 했던 아티스트들은 쉽게 접근하기도 어려운 분야였습니다. 이 책은 프로그래밍으로 완성해야 하는 쉐이더의 구현을 아티스트들의 역량으로도 충분히 발휘할 수 있도록 도움을 주는 책입니다. 저자의 오랜 게임그래픽 실무경험과 대학강의에서 쌓아둔 교육 노하우를 토대로, 아티스트들이 어렵게만 느끼고 있던 쉐이더를 쉽고 재미있는 방식으로 접근하여 중급 단계의 쉐이더까지 다룰 수 있는 자신감과 능력을 키워 줄 수 있는 책입니다. 이 책을 보고 나면 그간 몇 번을 시도해도 이해하기 어려웠던 쉐이더에 대해서 한 잔의 사이다를 마신 듯한 가슴이 뻥 뚫리는 청량감을 맛보게 될 것입니다. 문제는 프로그래밍, 어떻게 접근하여 쉐이더의 구현구조를 이해시키는가 쉐이더는 결국 프로그래밍으로 구현되기 때문에 프로그래밍을 이해하고 공부하는 것은 피할 수 없습니다. 그렇다면 어떻게 접근하면 아티스트들이 쉐이더를 쉽게 이해하면서 시작할 수 있을까요. 저자는 좀 더 쉬운 접근과 설명을 위해서 5개의 원칙을 세웠습니다. = 1. 유니티 및 기타 3D 툴에 대한 기본 설명은 생략합니다. 이 책은 유니티 엔진에서 지원하는 쉐이더를 중점적으로 설명하는 책이므로, 유니티 엔진의 기본 운용방법에 대해서 설명하지 않습니다. 간단한 메터리얼의 생성과 편집, 라이팅 제어 등을 할 수 있고 인터페이스 조작과 유니티 패키지 파일을 다룰 수 있을 정도면 됩니다. 기타 3dsMax나 Maya 등의 3 D툴도 마찬가지입니다. = 2. 수학 수준은 최대한 낮게 설명합니다(사칙연산만 알면 됩니다) 쉐이더는 수학이 매우 많이 필요한 기술이지만, 이 책에서는 쉐이더의 수학적 접근을 최대한으로 줄여서 수학에 관심이 없던 그래픽 아티스트들도 가벼운 마음으로 접근하기 쉽도록 구성되었습니다. 따라서 컴퓨터의 사칙연산 (+, -, ?(곱하기), /(나누기))나 제곱연산의 수학 능력만으로도 충분하며, 숫자도 거의 0과 1사이에서만 연산합니다. 물론, 중고급 난이도의 쉐이더는 다루지 않습니다. = 3. 코딩실력이나 컴퓨터 그래픽스에 대한 지식이 부족하더라도 본문의 정독은 필요합니다. 그래픽 아티스트들이 컴퓨터 그래픽스 이론이나 코딩 부분을 최대한 이해하기 쉽도록 집필이 되어 있습니다. 그래서 초반에 필연적으로 알아두어야 할 이론과 기초 부분은 생략할 수 없을 정도로 중요하므로 어렵더라도 반드시 정독하는 것이 좋습니다. = 4. 책의 구성과 흐름에 맞게 순서대로 진행하는 것이 좋습니다. 그래픽 아티스트가 쉐이더를 이해하기 위한 흐름을 고려하여 목차가 구성되었습니다. 그러므로 앞 부분을 이해하지 않고 넘어가면 뒷부분을 이해하기 어려울 수 있습니다. 가급적 앞 부분을 완벽히 이해하고 예제도 충분히 학습한 후 다음 단계로 넘어가길 바랍니다. = 5. 감마코렉션을 알아두세요. 자신이 만든 쉐이더가 모니터의 감마값 때문에 정상적인 결과물이 나오지 않을 수 있으니 감마코렉션을 잘 이해하고 있어야 합니다. =6. 노드 기반의 비주얼 쉐이더는 다루지 않습니다. 쉐이더 코딩의 기본 개념이 먼저입니다. 아티스트가 기술을 이해하면 놀라운 일이 생깁니다. '아티스트가 기술을 이해하면 놀라운 일이 생깁니다.'는 그래픽 아티스트 입장에서 바라본 저자의 평소 게임개발에 대한 지론입니다. 아티스트들이 그래픽적인 기능성과 함께 프로그래밍에 관심을 갖는다면 게임개발에 상당한 기여를 할 수 있다는 것입니다. 이제 아티스트들도 그래픽 리소스 제작에서 벗어나서 게임개발에 좀 더 적극적으로 참여할 수 있는 기회를 가져야 할 때입니다.