스크랩

구간

셰이더 코딩 입문 셰이더 코딩의 기초에서 유니티와 언리얼 셰이더까지

카일 할러데이 저 | 조형재 역 | 에이콘출판 | 2019년 11월

미리보기 북트리

정가
$72.00
판매가
$52.49 (27%↓) 최저가 보상
적립금
$1.05 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161753720 / 448쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

저자 소개

  • 저자 : 카일 할러데이
저자 : 카일 할러데이
시카고에 거주하는 게임 프로그래머다. 셰이더 프로그래밍을 비롯해 게임과 건축 시각화와 관련된 그래픽 기술 개발 분야에서 7년 이상 종사했다.

역자 : 조형재
서울대학교 미술대학에서 금속공예를 전공했고, KAIST 문화기술대학원에서 게임 내러티브에 관한 연구로 석사 학위를 취득했다. 2000년 이후부터 3D 애니메이션 스튜디오를 거쳐 주로 게임 개발사에서 근무했다. 구체적인 약력은 개인 홈페이지(www.zorotoss.com)에서 확인할 수 있다. 2014년 현재 온라인 게임 개발사에 근무하고 있다. 유니티와 관련해 경희대학교, 가천대학교, 동국대학교 창업지원단 등에서 강의를 맡았으며, 역서로는 에이콘 출판사의 『Unity 3D Game Development by Example 한국어판』, 『유니티 3D 모바일 게임 아트』, 『Unity 3 Blueprint 한국어판』, 『Unity 3.x Game Development Essentials 한국어판』, 『Unity 3 Game Development Hotshot 한국어판』, 『유니티와 iOS 모바일 게임 개발 프로젝트』가 있다.

역자 소개

  • 역자 : 조형재

서울대학교 미술대학을 졸업하고, KAIST 문화기술대학원에서 게임 내러티브에 관한 연구로 석사 학위를 취득했다. 2000년 이후부터 주로 게임 개발사에서 근무했는데, 구체적인 약력은 개인 홈페이지(www.zorotoss.com)에서 확인할 수 있다. 2019년 현재는 모바일 게임 개발사에서 근무하고 있다. 경희대학교, 가천대학교에서 게임 엔진과 관련된 강의를 맡았으며, 역서로는 에이콘 출판사의 『Unity 3D Game Development by Example 한국어판』(2011), 『유니티 3D 모바일 게임 아트』(2011), 『Unity 3 Blueprint 한국어판』(2011), 『Unity 3.x Game Development Essentials 한국어판』(2012), 『Unity 3 Game Development Hotshot 한국어판』(2012), 『유니티와 iOS 모바일 게임 개발 프로젝트』(2013), 『유니티 NGUI 게임 개발』(2014)이 있다.


 

머리말

★ 지은이의 말 ★

이 책을 선택한 것을 환영한다. 게임 개발에 필요한 셰이더 작성의 이론과 실습을 최대한 친절하게 소개하려는 의도로 이 책을 집필했다. 셰이더 작성은 매우 큰 주제라고 할 수 있다. 나 역시 처음 셰이더를 접했을 때 매우 당황스러웠던 기억이 있다. 이 책을 통해 독자가 그런 당황스러움에서 벗어나고, 게임 그래픽이라는 방대한 세상에 빨리 그리고 자신감 있게 첫발을 내딛게 하는 것이 나의 바람이다.
이 책은 ‘목수가 연장을 만드는 법까지 알 필요는 없다’는 기본 철학을 바탕으로 했다. 아름다운 시각 효과를 위한 셰이더를 만들려고 렌더링 엔진을 만드는 방법까지 알 필요는 없다고 생각한다. 특히 이 일을 처음 시작할 때는 더욱 그렇다. 이 책은 독자가 창의적으로 다양한 시도를 하고, 멋진 것을 만들고, 나아가 그 과정에서 재미를 느끼는 데 중점을 뒀다. 그런 목표에 집중하기 위해 그래픽 프로그래머가 되는 방법을 안내하거나 체계적인 수학 교육을 시도하지는 않는다(다양한 주제를 다루다 보니 약간의 수학 내용이 나오기는 한다). 대신 아주 기초적인 부분에서 출발해 현대 게임이 어떻게 화면에 대상을 그리는지 설명한다. 그 다음 원하는 화면을 그리기 위한 셰이더 작성 실습으로 곧바로 들어간다. 이 과정에서 수많은 예시 코드와 참고 그림을 보게 된다. 그리고 이 책을 마칠 무렵이면 현재 가장 인기 있는 게임에서 볼 수 있는 라이팅 환경과 셰이더를 직접 재현하는 단계에 이를 것이다.
이 책을 마치고 그래픽 프로그래밍을 더 공부하고자 결심하거나, 자신만의 렌더링 엔진을 만들거나, 좀 더 고급스러운 셰이더 테크닉을 원할 수 있다. 이 책이 한결 심화된 주제를 위한 탄탄한 기초를 제공할 것으로 기대한다.

 

 

될지도 모른다. 게임에서 셰이더의 역할이 어느 때보다 높게 평가 받는 시기다. 이제 게임 개발자, 특히 게임 아트 쪽 개발자에게 셰이더는 반드시 이해해야 하는 대상인 동시에 개인의 역량을 드러낼 수 있는 기회의 영역이라고 할 수 있다.
이 책은 셰이더의 개념과 원리를 코딩을 통해 직접 경험할 수 있는 기회를 제공한다. 코드에서 버텍스와 메쉬를 생성하는 것에서 출발한다. 라이팅, 노말 매핑, 큐브 맵과 같은 현대 게임 그래픽의 근간이 되는 주요 개념을 자세히 설명하고, 직접 코딩을 통해 구현한다. 마지막으로 유니티와 언리얼에서 이 책에서 설명한 내용과의 접점을 확인한다. 당장 쓸 수 있는 화려한 최신 기법을 소개하기보다는 실제 코딩을 통해 리얼타임 컴퓨터 그래픽과 셰이더의 기본 개념을 설명한다.
독자에 따라서는 일부 그래픽과 수학 개념이 다소 어렵게 느껴질 수 있다. 최대한 친절하게 전달하려 했지만 개념 자체가 생소한 독자에게는 여전히 어렵게 느껴질 것이다. 그러나 설령 한 두 부분을 이해하지 못하고 넘어간다 해도 크게 문제가 되지는 않는다. 이 책을 읽은 것 만으로도 셰이더 사용과 게임 엔진의 셰이더 개발 도구를 활용하는 데 큰 도움이 될 것이다.
이 책의 번역이 독자 제현(諸賢)의 학습과 실무에 도움이 될 수 있기를 진심으로 기원한다.

2019년 11월
한적한 겨울 바닷가에서
조형재 드림

 

책 속에서

목차

1장. 게임 그래픽

__렌더링
__메쉬
__벡터
__색상
__렌더링 파이프라인
__셰이더
__요약


2장. 셰이더 작성

__윈도우 개발환경 준비
__프로젝트 세팅
__메쉬 생성
__버텍스 셰이더
____버전 선언
____in 키워드
____vec 데이터 타입
____gl_Position
____정규화 장치 좌표
__프래그먼트 셰이더
____out 키워드
__셰이더 바인딩
__버텍스 속성
__프래그먼트 보간
__유니폼 변수
__요약


3장. 텍스처

__쿼드
__UV 좌표
__텍스처 사용
__UV 좌표 스크롤링
__밝기 조정
__색상 연산
__mix( )
__요약


4장. 투명도와 깊이

__새 프로젝트 준비
__메쉬와 셰이더 준비
__알파 테스팅과 discard
__깊이 테스팅
__알파 블렌딩
__min( )과 max( )
__알파 블렌딩의 원리
__가산 블렌딩
__스프라이트 시트 애니메이션
__요약


5장. 버텍스 셰이더와 이동, 회전, 크기

__버텍스 셰이더와 이동
__버텍스 셰이더와 크기
__버텍스 셰이더와 회전
__변환 행렬
__변환 행렬 애니메이션
__단위 행렬
__요약


6장. 카메라와 좌표

__뷰 행렬
__변환 행렬과 좌표 공간
__카메라 프러스텀과 투영
__요약


7장. 3D 프로젝트

__메쉬 불러오기
__카메라와 원근 투영
__요약


8장. 디퓨즈 라이팅

__부드러운 셰이딩과 평평한 셰이딩
__월드 노말과 뒤섞기
__노말 행렬
__라이팅 계산과 노말
__벡터의 내적
__내적을 이용한 셰이딩
__디렉셔널 라이트
__림 라이트 효과
__요약


9장. 라이팅 모델

__스펙큘러 라이팅
__스펙큘러 셰이더
__디퓨즈와 스펙큘러 라이팅 합치기
__앰비언트 라이팅
__퐁 라이팅 모델
__블린-퐁 라이팅 모델
__텍스처를 이용한 라이팅 제어
__요약


10장. 노말 매핑

__노말 맵
__탄젠트 공간
__탄젠트 벡터
__벡터의 외적
__노말 매핑
__물 셰이더
__노말 매핑의 현재
__요약


11장. 큐브맵과 스카이박스

__큐브맵
____큐브맵 불러오기
__큐브맵 렌더링하기
__스카이박스
__원근 분할
__스카이박스와 원근 분할
__스카이박스 그리기
__큐브맵 반사
__큐브맵의 현재
__요약


12장. 라이팅 심화

__디렉셔널 라이트
__포인트 라이트
__스포트 라이트
__정적 멀티라이트
__동적 멀티라이트
__라이팅의 현재
__요약


13장. 셰이더 프로파일링

__성능 측정
__CPU 시간과 GPU 시간
__수직동기
__드라이버와 소프트웨어
__프로파일링
__그래픽 디버거: 엔사이트 그래픽스
__CPU 제약과 GPU 제약
____간편 프로파일링
__셰이더 추적
__요약


14장. 셰이더 최적화

__버텍스 셰이더 활용
__동적 분기
__MAD 연산
__GLSL 함수
__쓰기 마스크
__오버드로우
__마지막 지침


15장. 정밀도

__부동 소수점 정밀도
__사례연구: 애니메이션
__모바일 플랫폼과 저정밀도 변수
__사례 연구: 포인트 라이트
__요약


16장. 유니티 셰이더

__셰이더와 재질
__셰이더랩
__단색 셰이더
__블린-퐁 셰이더 포팅하기
__반투명 셰이더
__멀티라이트 지원
__코드에서 데이터 전달
__셰이더그래프
__요약


17장. 언리얼 엔진 셰이더

__재질과 재질 인스턴스
__단색 셰이더
__UE4 노드 그래프
__림 라이트 재질
__Default Lit 재질의 입력
__버텍스 셰이더와 프래그먼트 셰이더
__다른 셰이딩 모델
__블렌드 모드
__코드에서 데이터 전달
__언리얼 셰이더 코드
__요약


18장. 고도 셰이더

__셰이더와 재질
__고도 셰이딩 언어
__프래그먼트 셰이더 출력 변수
__림 라이트 셰이더
__버텍스 애니메이션 셰이더
__UV 애니메이션
__반투명 셰이더와 블렌드 모드
__코드에서 데이터 전달
__비주얼 셰이더 편집기?
__요약
__메쉬 탄젠트 계산


부록

__메쉬 탄젠트 계산
__ofxEasyCubemap 클래스

top