이 페이지는 Forward
rendering path에 대한 자세한 서술합니다.
하나 혹은 여러 개의 패스의 각 포워드 렌더링 패스는 오브젝트에 영향을 주는 라이트에 달려 있습니다. 라이트들은 또한 포워드 렌더링에 의해 그들의 설정과 강도에 따라 다르게 다루어지고, 좌우되지요.
포워드 렌더링에서, 각 오브젝트에 적용되는 가장 밝은 라이트들은 퍼 픽셀 라이트 모드로 온전하게 렌더링 됩니다. 그리고, 4개까지의 라이트들은 버텍스 당 라이트로 계산됩니다. 다른 라이트들은 Spherical Harmonics (SH) 로 계산됩니다. 이것은 많이 빠르지만 근사값에 불과합니다. 라이트가 픽셀당 라이트인지 아닌지는 다음 사항들에 의합니다:
Not Important
로 설정된 라이트는 항상 버텍스당(per-vertex)이거나 SH 입니다.Important
로 설정된 라이트는 언제나 픽셀 당 (per-pixel) 입니다.Pixel Light Count
Quality Setting보다 덜한 라이트라면, 밝기를 감소하기 위해서 더 많은 라이트가 픽셀 당으로 랜더링 됩니다.각 오브젝트의 랜더링은 다음과 같이 발생합니다:
예를 들어, 만약 어떤 오브젝트가 여러 개의 라이트에 영향을 받는다면 (아래 그림의 공이 A에서 H 까지의 라이트 영향을 받으면):
A 부터 H 까지의 각 라이트는 같은 색과 강도를 가지고 있다고 합시다. 이들 모두는 자동 렌더링 모드라고 한다면, 그래서 이들은 이 오브젝트를 위해 정확하게 이 순서로 정렬 될 것입니다. 가장 밝은 라이트들은 픽셀당 라이트 모드로 렌더링 됩니다. (A에서 D) 그리고 최대 4개까지 버텍스당 라이트 모드로 (D에서 G) , 그리고 최종적으로 나머지 라이트는 SH가 됩니다. (G에서 H 까지):
라이트 그룹은 겹쳐집니다; 예를 들어 마지막 픽셀 당 라이트는 버텍스 당 라이트 모드와 섞이고 그래서 오브젝트와 라이트가 움직임에 따라 더 적은 "light popping"이 생깁니다.
기본 패스는 하나의 픽셀 당 방향성 라이트와 모든 SH 라이트와 함께 오브젝트를 랜더링 합니다. 이 패스는 또한 쉐이더에서 모든 라이트 맵, 은은하고 방사적 라이팅을 추가합니다. 이 패스에서 랜더링 된 방향성 라이팅은 Shadows을 가질 수 있습니다.
추가 패스들은 해당 오브젝트에 추가되는 각 픽셀당 라이트를 위해 랜더링 됩니다. 이러한 패스들의 라이트들은 쉐도우를 가질 수 없습니다 (그래서 결과적으로, Forward Rendering은 쉐도우를 가진 하나의 방향성 라이트를 지원합니다).
SH (Spherical Harmonics, 구면 조화 함수)라이트는 매우 빨리 랜더링 될 수 있습니다. 그들은 CPU에 아주 작은 비용만 부과하며 GPU에 적용은 actually free입니다(그것은, 기본 패스는 항상 SH 라이팅을 연산합니다; 그러나 SH 라이트는 작동하는 방식 때문에 그 비용은 얼마나 많은 SH 라이트가 있느냐에 상관없이 항성 정확하게 동일합니다).
SH 라이트의 단점은:
요약하면, SH 라이팅은 대부분 작은 동적 오브젝트에 사용하기에 충분합니다.