목차

,

Unity's Rendering Pipeline

Shaders define both how an object looks by itself (its material properties) and how it reacts to the 새이더는 어떻게 오브젝트가 스스로 볼지(물체 속성들)를 정의 한다. 그리고 어떻게 빛에 반응 할지를 정의 한다.

빛 계산은 새이더에서 만들어 져야하고 많은 가능한 빛과 새도우 종류들이 있기 때문에 작동한는 질적인 새이더를 쓰는 것은 태스크에 포함되어질 것이다. 쉽게 말하자면 유니티3은 모든 lighting, shadowing, lightmapping, forward vs. deferred lighting things를 자동으로 관리해 주는 Surface Shaders를 소개하고 있다.

이 문서는 유니티의 lighting & rendering pipeline의 특성과 Surface Shaders 이면에 무엇이 진행되는지 기술하고 있다.

Rendering Paths

조명이 어떻게 적용되고 어떠한 쉐이더의 Passes이 사용되는지는 어떠한Rendering Path가 사용되는지에 달려 있습니다. 하나의 쉐이더에서 각 패스는 Pass Tags를 통해서 그것의 조명 타입과 커뮤니케이트 합니다.

Deferred Lighting path

PrepassBase 패스는 normals & 반사적인 대표자를 그립니다; PrepassFinal 패스는 텍스쳐, 조명 & 발산하는 재질 속성을 결합하는 것에 의해서 마지막 색을 표현합니다. 모든 일반적인 씬안의 조명은 스크린 공간에서 별개로 행해집니다. 자세한 내용을 위해서는 Deferred Lighting를 살펴보시기 바랍니다.

Forward Rendering path

ForwardBase 패스는 주변색, 조명맵, 방향성 있는 조명 그리고 중요하지 않은 조명 (vertex/SH)을 한 번에 표현합니다. ForwardAdd 패스는 어떠한 첨부적인 픽셀당 조명을 위해서도 사용됩니다; 그러한 조명에 의해 비춰지는 물체당 하나의 실시가 행해집니다. 자세한 내용을 위해서는 Forward Rendering를 살펴보시기 바랍니다.

Vertex Lit Rendering path

정점 조명이 프로그래밍이 가능한 쉐이더를 지원하지 않는 플랫폼에서 주로 종종 사용되기 때문에 Unity는 lightmapped vs. lightmapped의 케이스들을 처리하기 위해서 내부적으로 다수의 쉐이더 순열을 생성할 수 없습니다. 따라서 lightmapped과 non-lightmapped 물체들을 처리하기 위해서는 다수의 패스들이 명확하게 쓰여져야만 합니다.