이 페이지에서는 Unity 빌트인 렌더 파이프라인의 포워드 렌더링 경로에 대해 설명합니다.
포워드 렌더링은 오브젝트에 영향을 미치는 광원에 따라 각 오브젝트를 한 번 이상의 패스에 렌더링합니다. 광원 자체도 설정 및 강도에 따라 포워드 렌더링에서 다르게 처리됩니다.
포워드 렌더링에서 각 오브젝트에 영향을 미치는 가장 밝은 광원이 픽셀당 릿 모드에서 완전히 렌더링됩니다. 그런 다음 점 광원이 버텍스당 4개까지 계산됩니다. 나머지 광원은 훨씬 빠르지만 근사치만 계산하는 스피리컬 하모닉스(SH)로 계산됩니다. 광원이 픽셀당 광원이 될지 여부를 결정하는 요인은 다음과 같습니다.
각 오브젝트는 다음과 같이 렌더링됩니다.
예를 들어 여러 광원에 영향을 받는 오브젝트(아래 그림에서 광원 A-H에 영향을 받는 원)가 있는 경우를 가정해 보겠습니다.
광원 A-H가 모두 컬러와 강도가 동일하고 자동 렌더링 모드라고 가정합니다. 따라서 이 오브젝트에 대해 광원은 정확히 알파벳 순서대로 정렬됩니다. 가장 밝은 광원(A-D)은 픽셀당 릿 모드로 렌더링되고 다음 광원이 최대 4개까지(D-G)가 버텍스당 릿 모드로 렌러딩되고 마지막으로 나머지 광원(G-H)이 SH로 렌더링됩니다.
광원 그룹은 오버랩됩니다. 예를 들어 마지막 픽셀당 광원은 버텍스당 릿 모드에 블렌드되므로 오브젝트와 광원이 움직일 때 빛이 갑자기 나타나는 “광원 팝” 현상이 감소합니다.
베이스 패스는 픽셀당 방향 광원 하나와 모든 SH/버텍스 광원으로 오브젝트를 렌더링합니다. 셰이더의 모든 라이트맵과 앰비언트 및 이미시브 조명도 추가합니다. 이 패스에서 렌더링되는 방향 광원에는 섀도우가 있을 수 있습니다. 라이트매핑된 오브젝트는 SH 광원에 조명을 받지 않습니다.
셰이더에서 “OnlyDirectional” 패스 플래그를 사용하는 경우 포워드 베이스 패스는 주 방향 광원, 앰비언트/광원 프로브 및 라이트맵만 렌더링합니다. SH 및 버텍스 광원은 패스 데이터에 포함되지 않습니다.
이 오브젝트에 영향을 미치는 각각의 추가 픽셀당 광원에 대해 추가 패스가 렌더링됩니다. 이 패스의 광원은 기본적으로 섀도우가 없습니다. 따라서 포워드 렌더링에서는 multi_compile_fwdadd_fullshadows 배리언트 단축키를 사용하지 않는 한 섀도우가 있는 방향 광원 1개가 지원됩니다.
스피리컬 하모닉스 광원은 매우 빨리 렌더링됩니다. 광원 적용에는 CPU 리소스가 아주 조금 사용되고 GPU 리소스는 사용되지 않습니다. 즉, 베이스 패스는 항상 SH 라이팅을 계산하지만 SH 광원의 작동 방식으로 인해 SH 광원 수에 관계 없이 사용되는 리소스의 양은 항상 동일합니다.
SH 광원의 단점은 다음과 같습니다.
요약하면, SH 광원은 작은 동적 오브젝트에 유용한 경우가 많습니다.