이미 소장하고 있다면 판매해 보세요.
Part_01. 쉐이더란 무엇인가
- 쉐이더란 무엇인가 - 왜 쉐이더를 그래픽 아티스트가 배워야 하는가 Part_02. 쉐이더를 익히기 위한 기반 지식들 - 렌더링 파이프라인 - 모니터에 표현되는 색과 빛의 기본원리 Part_03. 코딩의 기본/ 유니티 쉐이더 구성 - 코딩의 기초 - 유니티 쉐이더의 작성 요령 Part_04. 기초적인 서피스 쉐이더를 제작해봅시다. - 오브젝트에 메터리얼과 쉐이더를 적용해봅시다. - 쉐이더 코드를 열어서 이름을 바꿔 봅시다. - 쉐이더 Properties를 제작해봅시다. - 색상을 출력하고 연산해 봅시다 - 변수 이용해보기 - 외부에서 값을 입력받아 출력해보기 - 좀 더 깔끔하게 지워봅시다! Part_05. Surface Shader를 이용해 텍스처를 제어해봅시다. - 텍스쳐 한 장 출력하는 것 외의 부분을 삭제해 봅시다. - 텍스쳐의 입력과 출력 - 이미지를 흑백으로 만들어 봅시다. - lerp 함수를 사용해봅시다. Part_06. UV를 이용하는 법을 배워봅시다. - UV의 기본개념 - UV를 시각적으로 확인해봅시다. - UV에 숫자를 더해봅시다. - _Time으로 UV가 흘러가도록 해봅시다. - UV를 이용해서 불 이펙트를 만들어봅시다. - 좀 더 멋진 방법으로 불을 만들어 봅시다 Part_07. 버텍스 컬러를 이용해봅시다. - 버텍스 컬러를 적용해봅시다. - 버텍스 컬러를 출력해봅시다. - 버텍스 컬러를 마스킹 기능으로 사용해봅시다. Part_08. SurfaceOutputStandard 사용하기 - 스탠다드 쉐이더 - 메탈릭(Metallic), 스무스니스(Smoothness) - 노멀맵(Normal Map) - 오클루젼(Occlusion) - 7장의 배경에 기능을 추가해봅시다. Part_09. 램버트(Lambert) / 블린 퐁(Blinn Phong) - 유니티에 내장된 라이팅 구조 - 램버트(Lambert) 라이팅 만들기 - 블린 퐁(Blinn-Phong) 라이팅 만들기 Part_10. 디지털 라이팅 이론 - 디지털 라이트의 분류 - 디지털 라이트의 원리 - 벡터 - 벡터의 특성 - 노멀벡터 - 벡터의 연산 - 벡터 연산을 이용한 디지털 조명 연산 Part_11. 커스텀 라이트 1 _램버트 라이트 - 커스텀 라이트 기본형 만들기 - 램버트(Lambert) 라이트 연산만들기 - 하프램버트(Half Lambert) 라이트 연산만들기 - 램버트(Lambert) 라이트 완성해보기 Part_12. 림 라이트 - 프레넬(Fresnel) 공식을 구현해봅시다. - 림 라이트를 완성해봅시다. - 홀로그램을 만들어 봅시다. Part_13. 커스텀 라이트 2 _블린퐁 스페큘러 - 블린-퐁 반사 이론 - 블린-퐁 스페큘러 만들어 보기 - 글로스 맵으로 스페큘러 강도 조절해보기 - 림 라이트를 커스텀 라이트로 옮겨 보기 - 림 라이트를 이용한 가짜 스페큘러 만들기 Part_14. 커스텀 라이트3 _NPR 렌더링 - NPR 렌더링이란 - 외곽선 만들기 이론 - 2Pass와 면 뒤집기 - 버텍스 쉐이더(Vertex Shader)를 이용한 오브젝트 확장하기 - 끊어지는 음영만들기 - Fresnel을 이용해서 외곽선을 만들어 봅시다. - Diffuse Warped 기법 - Diffuse Warped 기법을 응용해봅시다. Part_15. 큐브맵 리플렉션(Cubmap Reflection) - 큐브맵을 적용해봅시다. - 노멀맵이 적용된 큐브맵을 적용해봅시다. - 마스크 맵을 이용해서 반사영역을 조절해봅시다. Part_16. 알파(Alpha) - Z-버퍼(Z Buffer) - 반투명 : 알파 블렌드(Alpha Blend) - 알파 블렌딩을 만들어봅시다. - 알파 소팅(Alpha Sorting)의 문제 - 알파 테스팅(Alpha Testing) / 컷아웃(Cutout) Part_17. 커스텀 제어 알파 블렌딩 - 커스텀 제어 가능한 알파 블렌딩 - 블렌드 펙터 연산 - 유니티 내장 파티클 쉐이더와 비슷하게 만들어 봅시다 Part_18. 응용하기 - 2Pass를 이용한 깨끗한 알파 블렌딩 - 타이밍에 맞게 반짝이는 기능 - 타들어가며 없어지는 기능 - 흔들리는 풀 - 맷캡(Matcap) - 굴절 만들기 - 물 만들기 - 물에 흔들림을 추가해 봅시다. - 물에 굴절을 추가해 봅시다. - 트라이플레너(Triplanar) Part_19. 부록 및 퍼포먼스 이슈 - 커스텀 라이팅과 구조체 - 추가 옵션 파라메터 - 서피스 쉐이더 인풋 구조 - #pragma target - 데이터 타입 - 쉐이더 LOD(Shader Level of Detail) - Tag 설정 - 프로퍼티스( Properties )의 추가 기능 - 그 외 일반적인 추가 옵션들 - 쉐이더 작성시 퍼포먼스 팁 - 기존 쉐이더를 가지고 공부하기 |
저정종필
관심작가 알림신청정종필의 다른 상품
감수Pope Kim
관심작가 알림신청Pope Kim의 다른 상품
진입장벽이 높았던 쉐이더, 이제 아티스트들도 쉽게 도전할 수 있다.
게임그래픽의 쉐이더는 프로그래머가 다룰 수 밖에 없는 영역이었다 보니 기존의 쉐이더 관련 도서들은 각종 수학공식과 코딩들로 구성된 내용이 대부분이었습니다. 더구나 높은 진입장벽 때문인지 쉐이더를 배우고자 했던 아티스트들은 쉽게 접근하기도 어려운 분야였습니다. 이 책은 프로그래밍으로 완성해야 하는 쉐이더의 구현을 아티스트들의 역량으로도 충분히 발휘할 수 있도록 도움을 주는 책입니다. 저자의 오랜 게임그래픽 실무경험과 대학강의에서 쌓아둔 교육 노하우를 토대로, 아티스트들이 어렵게만 느끼고 있던 쉐이더를 쉽고 재미있는 방식으로 접근하여 중급 단계의 쉐이더까지 다룰 수 있는 자신감과 능력을 키워 줄 수 있는 책입니다. 이 책을 보고 나면 그간 몇 번을 시도해도 이해하기 어려웠던 쉐이더에 대해서 한 잔의 사이다를 마신 듯한 가슴이 뻥 뚫리는 청량감을 맛보게 될 것입니다. 문제는 프로그래밍, 어떻게 접근하여 쉐이더의 구현구조를 이해시키는가 쉐이더는 결국 프로그래밍으로 구현되기 때문에 프로그래밍을 이해하고 공부하는 것은 피할 수 없습니다. 그렇다면 어떻게 접근하면 아티스트들이 쉐이더를 쉽게 이해하면서 시작할 수 있을까요. 저자는 좀 더 쉬운 접근과 설명을 위해서 5개의 원칙을 세웠습니다. = 1. 유니티 및 기타 3D 툴에 대한 기본 설명은 생략합니다. 이 책은 유니티 엔진에서 지원하는 쉐이더를 중점적으로 설명하는 책이므로, 유니티 엔진의 기본 운용방법에 대해서 설명하지 않습니다. 간단한 메터리얼의 생성과 편집, 라이팅 제어 등을 할 수 있고 인터페이스 조작과 유니티 패키지 파일을 다룰 수 있을 정도면 됩니다. 기타 3dsMax나 Maya 등의 3 D툴도 마찬가지입니다. = 2. 수학 수준은 최대한 낮게 설명합니다(사칙연산만 알면 됩니다) 쉐이더는 수학이 매우 많이 필요한 기술이지만, 이 책에서는 쉐이더의 수학적 접근을 최대한으로 줄여서 수학에 관심이 없던 그래픽 아티스트들도 가벼운 마음으로 접근하기 쉽도록 구성되었습니다. 따라서 컴퓨터의 사칙연산 (+, -, ?(곱하기), /(나누기))나 제곱연산의 수학 능력만으로도 충분하며, 숫자도 거의 0과 1사이에서만 연산합니다. 물론, 중고급 난이도의 쉐이더는 다루지 않습니다. = 3. 코딩실력이나 컴퓨터 그래픽스에 대한 지식이 부족하더라도 본문의 정독은 필요합니다. 그래픽 아티스트들이 컴퓨터 그래픽스 이론이나 코딩 부분을 최대한 이해하기 쉽도록 집필이 되어 있습니다. 그래서 초반에 필연적으로 알아두어야 할 이론과 기초 부분은 생략할 수 없을 정도로 중요하므로 어렵더라도 반드시 정독하는 것이 좋습니다. = 4. 책의 구성과 흐름에 맞게 순서대로 진행하는 것이 좋습니다. 그래픽 아티스트가 쉐이더를 이해하기 위한 흐름을 고려하여 목차가 구성되었습니다. 그러므로 앞 부분을 이해하지 않고 넘어가면 뒷부분을 이해하기 어려울 수 있습니다. 가급적 앞 부분을 완벽히 이해하고 예제도 충분히 학습한 후 다음 단계로 넘어가길 바랍니다. = 5. 감마코렉션을 알아두세요. 자신이 만든 쉐이더가 모니터의 감마값 때문에 정상적인 결과물이 나오지 않을 수 있으니 감마코렉션을 잘 이해하고 있어야 합니다. =6. 노드 기반의 비주얼 쉐이더는 다루지 않습니다. 쉐이더 코딩의 기본 개념이 먼저입니다. 아티스트가 기술을 이해하면 놀라운 일이 생깁니다. ‘아티스트가 기술을 이해하면 놀라운 일이 생깁니다.’는 그래픽 아티스트 입장에서 바라본 저자의 평소 게임개발에 대한 지론입니다. 아티스트들이 그래픽적인 기능성과 함께 프로그래밍에 관심을 갖는다면 게임개발에 상당한 기여를 할 수 있다는 것입니다. 이제 아티스트들도 그래픽 리소스 제작에서 벗어나서 게임개발에 좀 더 적극적으로 참여할 수 있는 기회를 가져야 할 때입니다. |