Version: 2019.2
디퍼드 셰이딩 렌더링 경로
레거시 디퍼드 라이팅 렌더링 경로

포워드 렌더링 경로 세부 정보

이 페이지에서는 Forward 렌더링 경로에 대해 자세하게 설명합니다.

포워드 렌더링 경로에서는 오브젝트에 영향을 미치는 광원에 따라 각 오브젝트를 한 번 이상의 패스에 렌더링합니다. 광원 자체도 설정 및 강도에 따라 포워드 렌더링에서 다르게 처리됩니다.

구현 세부 정보

포워드 렌더링에서 각 오브젝트에 영향을 미치는 가장 밝은 광원이 픽셀당 릿 모드에서 완전히 렌더링됩니다. 그런 다음 점 광원이 버텍스당 4개까지 계산됩니다. 나머지 광원은 훨씬 빠르지만 근사치만 계산하는 스피리컬 하모닉스(SH)로 계산됩니다. 광원이 픽셀당 광원이 될지 여부를 결정하는 요인은 다음과 같습니다.

  • 렌더 모드가 Not Important 로 설정된 광원은 항상 버텍스당 또는 SH입니다.
  • 가장 밝은 방향 광원은 항상 픽셀당입니다.
  • 렌더 모드가 Important 로 설정된 광원은 항상 픽셀당입니다.
  • 위로 인해 광원 수가 현재 Pixel Light Count Quality Setting보다 적어지면 밝기를 줄이기 위해 더 많은 광원이 밝기 내림차순에 픽셀당으로 렌더링됩니다.

각 오브젝트는 다음과 같이 렌더링됩니다.

  • 베이스 패스는 픽셀당 방향 광원 하나와 모든 버텍스당/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 조명은 프리퀀시가 매우 낮습니다. SH 광원으로는 선명한 조명 전환이 불가능합니다. 또한 산란광에만 영향을 미칩니다(스페큘러 하이라이트에는 프리퀀시가 너무 낮음).
  • SH 조명은 로컬이 아니고 일부 표면에 가까이 있는 점 또는 스폿 SH 광원은 잘못 표시됩니다.

요약하면, SH 광원은 작은 동적 오브젝트에 유용한 경우가 많습니다.

디퍼드 셰이딩 렌더링 경로
레거시 디퍼드 라이팅 렌더링 경로