이 페이지에서는 Forward 렌더링 경로에 대해 자세하게 설명합니다.
포워드 렌더링 경로에서는 오브젝트에 영향을 미치는 광원에 따라 각 오브젝트를 한 번 이상의 패스에 렌더링합니다. 광원 자체도 설정 및 강도에 따라 포워드 렌더링에서 다르게 처리됩니다.
포워드 렌더링에서 각 오브젝트에 영향을 미치는 가장 밝은 광원이 픽셀당 릿 모드에서 완전히 렌더링됩니다. 그런 다음 점 광원이 버텍스당 4개까지 계산됩니다. 나머지 광원은 훨씬 빠르지만 근사치만 계산하는 스피리컬 하모닉스(SH)로 계산됩니다. 광원이 픽셀당 광원이 될지 여부를 결정하는 요인은 다음과 같습니다.
각 오브젝트는 다음과 같이 렌더링됩니다.
예를 들어 여러 광원에 영향을 받는 오브젝트(아래 그림에서 광원 A-H에 영향을 받는 원)가 있는 경우를 가정해 보겠습니다.
광원 A-H가 모두 컬러와 강도가 동일하고 자동 렌더링 모드라고 가정합니다. 따라서 이 오브젝트에 대해 광원은 정확히 알파벳 순서대로 정렬됩니다. 가장 밝은 광원(A-D)은 픽셀당 릿 모드로 렌더링되고 다음 광원이 최대 4개까지(D-G)가 버텍스당 릿 모드로 렌러딩되고 마지막으로 나머지 광원(G-H)이 SH로 렌더링됩니다.
광원 그룹은 오버랩됩니다. 예를 들어 마지막 픽셀당 광원은 버텍스당 릿 모드에 블렌드되므로 오브젝트와 광원이 움직일 때 빛이 갑자기 나타나는 “광원 팝” 현상이 감소합니다.
Base pass renders object with one per-pixel directional light and all SH lights. This pass also adds any lightmaps, ambient and emissive lighting from the shader. Directional light rendered in this pass can have Shadows. Note that Lightmapped objects do not get illumination from SH lights.
Additional passes are rendered for each additional per-pixel light that affect this object. Lights in these passes can’t have shadows (so in result, Forward Rendering supports one directional light with shadows).
스피리컬 하모닉스 광원은 매우 빨리 렌더링됩니다. 광원 적용에는 CPU 리소스가 아주 조금 사용되고 GPU 리소스는 사용되지 않습니다. 즉, 베이스 패스는 항상 SH 라이팅을 계산하지만 SH 광원의 작동 방식으로 인해 SH 광원 수에 관계 없이 사용되는 리소스의 양은 항상 동일합니다.
SH 광원의 단점은 다음과 같습니다.
요약하면, SH 광원은 작은 동적 오브젝트에 유용한 경우가 많습니다.