확장메뉴
주요메뉴


소득공제 PDF
셰이더 프로그래밍 입문
eBook

셰이더 프로그래밍 입문

: 게임학과 학부생, 게임 프로그래머 지망생, 게임 프로그래머 1~3년차, 테크니컬 아티스트를 위한

[ PDF ]
리뷰 총점9.5 리뷰 11건 | 판매지수 84
정가
15,400
판매가
15,400
추가혜택
쿠폰받기
구매 시 참고사항
  • 2020.4.1 이후 구매 도서 크레마터치에서 이용 불가, PC 뷰어 이용시 하이라이트 기능 사용 불가

품목정보

품목정보
발행일 2015년 02월 02일
이용안내 ?
  •  배송 없이 구매 후 바로 읽기
  •  이용기간 제한없음
  •  TTS 불가능
  •  저작권 보호를 위해 인쇄 기능 제공 안함
지원기기 크레마, PC(윈도우 - 4K 모니터 미지원), 아이폰, 아이패드, 안드로이드폰, 안드로이드패드, 전자책단말기(일부 기기 사용 불가), PC(Mac)
파일/용량 PDF(DRM) | 17.27MB ?
글자 수/ 페이지 수 약 307쪽?
ISBN13 9788968485077

소개 책소개 보이기/감추기

목차 목차 보이기/감추기

저자 소개 관련자료 보이기/감추기

저자 : Pope Kim
http://kblog.popekim.com
연세대학교 법학과를 졸업하고, BCIT Bachelor of Technology in Computer Systems - Graphics를 졸업했다. 캡콤 밴쿠버와 렐릭 엔터테인먼트(THQ 캐나다)에서 선임 그래픽 프로그래머(Senior Graphics Programmer)로 근무했고, 현재는 게임개발포에버(http://www.gamedevforever.com)의 대표 운영자를 맡고 있다. 시그래프 및 KGC에서 강연자로 나서기도 했던 저자는 지금까지 주로 Xbox 360와 PS3용 게임을 만들었으며 13개 가량의 게임을 출시했다.

본 원고는 저자가 2007년 1월부터 2009년 12월까지 3년간 캐나다의 The Art Institute of Vancouver 대학에서 셰이더 프로그래밍 강의를 하면서 축적한 자료와 지식을 옮겨 놓은 것이다. 게임 프로그래밍 학과에서 3년간 강의를 했었는데 3년 내내 학부생들로부터 가장 우수한 강좌로 선정되었다.

책 속으로 책속으로 보이기/감추기

책을 쓰게 된 배경
2007년 강의를 시작할 때 수업에 사용할 교과서를 찾기 위해 정말 많은 노력을 했지만 시중에 출간된 도서들 중 셰이더 입문서를 찾기란 거의 불가능했습니다. 몇 년이 지난 지금도 마찬가지입니다. 시중에 나와있는 셰이더 책들 대부분은 셰이더 코드를 작성할 수 있는 중고급 프로그래머만을 위한 것이었기 때문에 셰이더에 입문하는 학생들은 내용을 이해하지 못하고 포기하는 경우가 많았습니다. 그나마 셰이더 입문 내용이 DirectX 책에 담겨있는 경우가 있었지만 저자 나름 마땅한 책이 없다고 생각했던 이유는,

__ 셰이더는 구색 맞추기 식으로 포함되어 너무 수박 겉핥기식이다.
__ 학계에 계신 분들이 집필한 서적은 이론이나 문법 중심으로 이해하기 힘들다.
__ 실무에 사용되지 않는 내용을 너무 많이 담고 있다.
__ 지면수만 많아 책 값이 비싸다.

등 이었습니다. 결국 교과서 없이 강의를 시작했고 이론이나 수학에 치우치기보다는 실무에 적용할 수 있거나, 실무에서 사용할 수 있는 기초 개발 기법 중심으로 수업을 진행했습니다. 강의를 하면서 좋았던 점은 그리 어렵지 않게 생각했던 내용 중에 학생들이 이해하지 못하는 것을 하나씩 알아낼 때였습니다. 그래서 그걸 다시 쉽게 이해시킬 수 있도록 강의자료를 다듬고 다듬은 결과가 바로 이 책입니다.
강의를 하는 3년 내내 게임프로그래밍 학과 학생들이 이 과목을 AI 대학의 가장 훌륭한 수업으로 꼽을 정도였으니 좀 부끄럽지만 이 책을 여러분에게 자신있게 권해드립니다. 그리고 제 과목에서 만든 데모 프로그램을 포트폴리오로 삼아 Ubisoft 및 EA 같은 세계 유수의 회사에 취직한 학생들도 몇 됩니다. 저자 나름 가슴 뿌듯한 일입니다. 현재는 게임개발에 집중하기 위해 대학강의를 중단한 상황이지만, 이 내용을 그냥 썩혀두기에는 아깝다고 생각되어 책을 출간하기로 결정했습니다. 이 책이 셰이더를 배우려는 독자에게 조금이나마 도움이 되었으면 합니다.

이 책의 기본 원칙
강의에서도 그랬듯이 이 책을 집필할 때 다음의 원칙을 기초로 삼았습니다.

실습 위주
물론 셰이더를 작성할 때 수학이나 이론을 전혀 무시할 수 없지만, 저자의 오랜 강의 경험으로는 이론을 먼저 배우고 그걸 코드로 옮기는 것보다, 일단 코드를 작성하고 그 다음 막히는 곳에서 이론을 찾아보고 해결하는 것이 훨씬 더 훌륭한 학습방법이라 생각합니다. 왜냐하면 이렇게 문제를 해결하기 위해 찾아본 이론은 기억에 더 오래 남기 때문입니다. 따라서 이 책은 실습 위주로 구성되었으며, 책의 내용을 한 줄씩 따라하면서 코드를 작성하다 보면 어느덧 배경 이론까지 이해할 수 있도록 했습니다.

쉬운 설명
제 수업은 게임아트 학과 학생들도 꽤 청강을 하였습니다. 따라서 아티스트들도 이해할 수 있도록 쉽게 설명하는 것이 제 목표 중 하나입니다. 그러려면 무언가를 설명할 때, 수학공식을 보여주기보다는 실제 생활에서 일어나는 현상을 예로 드는 것이 훨씬 더 효과적이었습니다. 이 책을 집필할 때도 마찬가지 원칙을 따랐습니다. 책을 읽다 보면 이론적으로 100% 옳지 않는 설명도 가끔 보입니다. 그것은 말 그대로 설명을 쉽게 하기 위해 제 나름 이론을 적당히 무시하였거나 아니면 저조차 이론을 100% 이해하지 못했을 경우입니다. 게임 그래픽은 눈에 보이는 결과가 맞다면 그게 정답인 분야이므로 이론적으로 약간 틀린다 하여도 결과가 맞다면 전 크게 신경 쓰지 않습니다.

입문자만을 위한 책
이 책은 순수하게 입문자를 위한 책입니다. 이미 고급기법을 다루는 훌륭한 책이 시중에 많이 나와있는 상황에서 굳이 그 책들과 경쟁할 필요를 못 느끼고, 중복되는 내용을 다루면서 지면수를 늘리고 싶지도 않기 때문입니다. 여러분이 이 책을 본 후에 셰이더에 재미가 붙어 다른 고급기법을 즐겁게 찾아 볼 수 있다면 그것 만으로도 전 만족합니다. 그리고 정말 괜찮은 새 기법을 찾았다면 저에게 살짝 귀뜸이라도 해주면 더 좋겠습니다.

순서대로 배우는 내용
강의할 때 좋았던 점은 쉬운 내용부터 어려운 내용까지 순서대로 가르칠 수 있었다는 점입니다. 이 책도 그런 방식으로 진행됩니다. 처음 장부터 시작해서 천천히 지식을 축적해 간다고 할까요? 따라서 뒷장으로 가면 갈수록 기본적인 내용은 다시 설명하지 않습니다. 예를 들면 법선매핑을 배우기 전에 이미 조명기법을 배우게 되므로 법선매핑에서는 조명기법을 다시 설명하지 않는 거죠. 따라서 이 책을 읽을 때는 대학강의를 듣듯이 처음부터 순서대로 읽어야만 합니다. 이 책이 다른 셰이더 책처럼 여러 논문을 한군데 모아 놓은 게 아니므로 그 정도는 이해해 주면 좋겠습니다. 그리고 이 책은 지면수도 그리 많지 않으니 무리한 요구는 아닐거라 믿습니다.

이 책에서 다루는 내용
이 책에서 다루는 내용은 정점셰이더와 픽셀셰이더를 이용한 셰이더 기법입니다. 이 책은 크게 세 부분으로 나눠져 있습니다.

PART I
셰이더의 정의를 알아본 뒤, 모든 셰이더 기법의 기초가 되는 색상, 텍스처매핑, 조명셰이더를 만들어 봅니다.

PART II
1부에서 배운 내용에 살을 붙여 게임에서 널리 사용하는 스페큘러매핑, 법선매핑, 그림자매핑 등의 기법을 구현합니다.

PART III
요즘 게임에서 점점 중요해져 가는 2D 이미지 처리 기법을 배워봅니다.

이 책은 DirectX 10과 11에서 새로 추가된 지오메트리geometry, 헐hull, 연산compute 셰이더는 다루지 않습니다. 이유는 초급자에게는 좀 어려운 내용일 뿐만 아니라 아직 실무에서 널리 이용되지 않기 때문에 실용적인 내용을 알려드리기가 조금은 어렵습니다. DirectX 10이 처음 소개될 때만 해도 홍보자료에서는 엄청 대단한 것처럼 광고를 해댔지만 실제 실무에서 제대로 이용한 경우가 없으니까요. 일단 이 책으로 기초를 다지고, 천천히 이 내용을 배워도 문제되지 않습니다.

대상독자
프로그래머
제가 가르쳤던 학생들은 게임 프로그래밍 학과 2학년 학생들로 제 과목을 듣기 전에 C++, 3D 수학, DirectX 등의 과정을 이미 마쳤습니다. 게임 개발자가 셰이더 프로그래밍에 입문하는 과정도 이와 다르지 않다고 생각합니다. 최소한 DirectX는 학습한 뒤에 셰이더를 살펴보는 게 보통이니까요. 이 책의 대상독자도 마찬가지입니다. 이 책을 보려면 최소한 C++와 DirectX 정도는 공부했어야 하며, 3D 수학까지 학습했다면 더 좋겠죠.

테크니컬 아티스트
요즘 들어 프로그래머와 아티스트 사이를 조율해주는 테크니컬 아티스트의 입지가 높아졌습니다. 그리고 테크니컬 아티스트가 셰이더 프로토타입을 만드는 경우도 허다합니다. 강의를 하던 도중에 일반 아티스트청강생도 어느 정도 이해를 했던 내용이므로 테크니컬 아티스트라면 아무 문제가 없겠죠? 테크니컬 아티스트는 굳이 DirectX를 직접 다루지 않아도 되므로 별다른 준비사항 없이 이 책을 봐도 됩니다. 책을 보다 이해가 안 되는 수학 같은 게 있다면 정석 책을 열어보거나 인터넷 검색을 해야 할지도 모르지만요. 각 장의 마지막에 DirectX 프레임워크를 다루는 내용이 있는데 그 부분만 건너 뛰면 됩니다.

온라인 커뮤니티
이 책을 보다 궁금한 사항이 있다면 토론장을 열어둘 예정이므로 저자의 블로그http://kblog.popekim.com를 방문하길 바랍니다. 정오표나 기타 업데이트도 이 블로그를 통해 공개할 예정입니다.
---지은이 서문 중에서

출판사 리뷰 출판사 리뷰 보이기/감추기

추천평 추천평 보이기/감추기

셰이더란 참 이상한 기술입니다. 분명히 프로그래머가 알아볼 수 있는 언어로 구성되어 있고, 그 안의 프로세스도 지극히 하드코어한 공학적 내용입니다. 그렇지만 그런 수학적 프로그래밍 결과물이 예술이 되어 나오는, 공학과 예술이 조합된 신기한 세계라고 할 수 있습니다. 그 때문에 3D 게임을 제작할 때, 그래픽 아티스트가 셰이더에 대해 민감하게 관심을 가지고 접근하고 싶어하는 것도 이상한 일이 아닐 것입니다. 자신들의 작품이 더욱 아름답고 예술적으로 보이고 싶어하는 것은 아티스트의 본능에 가까운 것이니까요. 아티스트였던 저 역시 그랬습니다.
그 후에 제가 처음 셰이더라는 것에 관심을 가지고 프로그래머가 보는 책을 뒤적거렸을 때가 생각납니다. 지금은 물론 많이 바뀌었지만, 그 때에는 더더욱 셰이더라는 것은 엄연한 프로그래머의 분야였으며(외국은 어땠을지 잘 모르겠지만) 그래픽 아티스트는 범접할 수 없는 미지의 세계였었습니다. 물론 그 당시 그래픽 아티스트가 볼 수 있는 셰이더와 관련된 책은 전무했으며, 프로그래머를 위한 기초 셰이더 책도 기껏해야 한두 권 정도였습니다. 그리고 놀랍게도 지금도 크게 변하지 않았습니다. 여전히 많은 책에서 기초 셰이더는 3D 프로그래밍에 소속된 한 단원에 불가한 경우가 대부분이며, 그나마도 빈약하거나, 그래픽 아티스트를 전혀 배려하지 않은 철저하게 3D 프로그래머를 위해 씌여진 책이었습니다. 그래서 저와 같이 셰이더에 관심을 가지게 된 그래픽 아티스트는 전혀 알아듣지도 못하는 C++와 DirectX 프레임워크를 공부하며, 어떻게든 셰이더에 근접해 가기 위해 발버둥을 치다가 많은 좌절을 겪곤 했었습니다. 그리고 그때 정말 아쉬웠던 것이, 그래픽 아티스트를 조금이라도 배려한 셰이더 책이 한 권쯤 있으면 좋겠다는 것이었습니다. 셰이더는 사실 DirectX의 프레임워크를 제외하고, 구현이나 프로그래밍 수준은 무척 간단합니다. 그래픽 아티스트도 조금만 관심을 가지면, 적어도 어느 정도까지는 크게 어렵지 않게 접근할 수 있도록 만들어 놓은 언어입니다. 그렇지만 아티스트의 그 마음과 수준을 이해하고 고려하면서, 이런 전문적인 내용을 쉽게 설명할 수 있는 책을 집필할 수 있는 사람이 없었다는 것이 문제였습니다. 그리고 드디어, 프로그래머와 그래픽 아티스트를 모두 친절하게 고려한 셰이더 책이 처음으로 세상에 나오게 되었습니다. 이 책을 집필한 Pope Kim님은 캐나다에서 일류 그래픽 프로그래머로 오랜 기간 근무하면서, 대학에서 강의하면서 준비하고 정리한 지식을 이 책에 정리해 놓았습니다. 프로그래머와 그래픽 아티스트 모두를 고려한 내용을 말이지요!
다른 책에서는 한 번에 묶어서 설명하기 때문에 그래픽 아티스트도 어쩔 수 없이 같이 배워야 했던 DirectX 프레임워크를, 이 책에서는 선택사항으로 단원마다 분리해서 필요없는 그래픽 아티스트는 건너뛸 수 있도록 배려하고 있습니다. 게다가 어려운 수학과 이론은 건너뛰고, 바로 실습해 볼 수 있도록 친절하게 준비되어 있는 모습이 마치 그래픽 아티스트를 위해 씌여진 책으로 보일 정도라고 할 수 있습니다. 그렇다고 프로그래머에게 부족한 책도 아닙니다. 셰이더를 처음 시작하는 프로그래머가 셰이더에 대한 기본 개념을 실습을 통해 쉽게 잡을 수 있도록 구성되어 있기 때문에, 이 책은 그래픽 아티스트나 프로그래머 모두 만족할 수 있는 '실용적인' 책이라고 말할 수 있을 것입니다. 부디 이 책이 많은 사람에게 읽히고, 그들의 '즐거운 결과물'을 완성하는 데 밑거름이 되기를 바라는 바입니다.
정종필 (Ndoors Tecnical Art Director)
제가 게임 프로그래밍을 시작할 때는 셰이더로 멋을 내는 시절이 아니었습니다. 그러다 보니 제가 처음 셰이더를 공부할 때는 맨 땅에 헤딩하며 새롭게 공부해야만 했고, 그때 참고할 수 있었던 건 영어로 된 원서나 웹사이트였습니다. 주변에서 공부하는 걸 봐도 역시나 영어로 된 원서 위주였고, 한글로 된 책은 대부분 번역서였습니다. 심지어 번역이 매끄럽지 않아 혼란을 주기도 했습니다. 그리고 셰이더라는 게 초보자들보다는 어느 정도 그래픽 프로그래밍을 할 수 있는 사람이 사용하다보니 책 또한 그런 사람을 대상으로 적혀있었습니다. 물론 그 시절(몇 년 안됐지만^^)에는 그게 정상이었고, 그래도 되는 시절이었습니다. 저 역시 그렇게 공부를 하던 중 너무 어렵기도 하고, 개인적인 사정으로 인해 공부를 중단하였습니다.
최근 몇 년 사이 3D 그래픽 프로그래밍에서 셰이더는 필수가 되었고, 이제는 초보 프로그래머도, 학생도 공부해야만 하는 필수 요소로 떠올랐습니다. 하지만 저와 같은 초보자나 학생이 참고할 수 있는 책은 여전히 찾기 힘들며, 제가 이전에 공부하던 때와 비교해 봐도 셰이더 관련 서적은 별로 변화가 없습니다. 지금과 같은 때에 이 책이 출간된 것은 저와 같은 사람에게는 큰 행운이라고 생각됩니다. 그저 C++, DirectX 정도만 살짝 익힌 초보자도 이해할 수 있을 정도로 쉽게 구성되어 있으며(실제로 검수에 참여한 한 분은 DirectX도 잘 모르시는 테크니컬 아티스트였다고 합니다) 빛과 공간에 대한 설명과 기초적인 단어의 설명부터, 실제 게임에 사용되는 기법들을 차근차근 설명하고 있습니다. 다시 말해 초보자가 혼자서 셰이더를 익힐 수도 있고, 이 책을 통해 익힌 셰이더 기술을 바로 게임에 활용할 수도 있으며, 새로운 기법으로 응용하는 것 또한 가능할 정도의 근본적인 설명과 실용적인 설명이 공존(모순같지만 사실입니다)합니다. 그동안 원서, 어려운 책, 이해되지 않는 책을 보며 힘들었던 저와 같은 셰이더를 공부하는 분들을 생각하면, 이런 책이 지금이라도 나오게 된 것에 대해 다행스럽게 생각하며, 추천사를 핑계로 남들보다 먼저 『셰이더 프로그래밍 입문』을 접하게 된 것에 대해 감사하게 생각합니다. 이제 막 게임을 만들려고 하는 게임 프로그래머 지망생과, 우리 게임에 조금 더 멋진 셰이더 효과를 넣기 위해 에너지 음료와 함께 밤낮으로 고민하고 있는 프로그래머 여러분에게 진심으로 이 책을 추천합니다.
이상대 (NCSoft 블레이드 앤 소울 팀 클라이언트 프로그래머)

회원리뷰 (4건) 회원리뷰 이동

한줄평 (7건) 한줄평 이동

총 평점 9.7점 9.7 / 10.0

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 구매후 즉시 다운로드 가능
  •  배송비 : 무료배송
반품/교환 안내

상품 설명에 반품/교환과 관련한 안내가 있는경우 아래 내용보다 우선합니다. (업체 사정에 따라 달라질 수 있습니다)

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
  • 절판 상태입니다.
뒤로 앞으로 맨위로 공유하기