언리얼 엔진은 피직스 에셋으로 만든 스켈레탈 메시의 캡슐 표현인 Capsule Shadows (캡슐 섀도)로 라이팅 영역의 캐릭터에 소프트 섀도를 드리우는 기능을 지원합니다. 이 섀도잉 메서드는 간접광 영역에 있는 캐릭터에는 땅에 서있는 듯한 느낌을, 직사광 영역에는 소프트 섀도를 낼 수 있도록 해 주는데, 전통적인 섀도 매핑 기법으로는 가능하지 않은 일이었습니다.
캐릭터 캡슐 표현
피직스 에셋 을 사용하여 캐릭터의 추정한 표현을 만들어 매우 연한 그림자를 지원합니다. 캡슐은 캐릭터의 본에 붙으므로, 이를 통해 씬에서 그림자를 정확히 이동하며 드리울 수 있습니다.


피직스 에셋 뷰포트에 있는 땅의 그림자는 캡슐 섀도 표현이 아닙니다.
사용법

스켈레탈 메시를 열고 에셋 디테일 패널에서 섀도 피직스 에셋 선택을 사용하여 캡슐 섀도에 사용할 피직스 에셋을 할당합니다.
캡슐 섀도 세팅

프로퍼티 | 설명 |
---|---|
Capsule Direct Shadow | 직접 캡슐 섀도 - 스켈레탈 메시의 섀도 피직스 에셋 슬롯에 캡슐 표현을 할당했을 때 (무버블) 직사광에서 소프트 섀도를 드리울 수 있도록 합니다. |
Capsule Indirect Shadow | 간접 캡슐 섀도 - 스켈레탈 메시의 섀도 피직스 에셋 슬롯에 캡슐 표현을 할당했을 때 프리컴퓨티드 라이팅(라이트맵 및 스카이라이트)에서 소프트 섀도를 드리울 수 있도록 합니다. |
Capsule Indirect Shadow Min Visibility | 간접 캡슐 섀도 최소 비저빌리티 - 간접광 영역에서 캡슐 섀도가 얼마나 진해질 수 있는지 아티스트가 제어할 수 있습니다. |
간접 캡슐 섀도
Capsule Indirect Shadow (간접 캡슐 섀도) 옵션을 켜면, 배치된 볼륨 라이팅 샘플 에 따라 라이팅 빌드 도중 라이트매스가 계산한 디렉셔널 소프트 섀도를 드리우는 데 캐릭터의 캡슐 표현을 사용합니다.

간접 캡슐 섀도가 켜지면, 반사광만 있는 지역에서도 캐릭터가 땅에 서있는 느낌을 낼 수 있도록 소프트 섀도를 드리웁니다.


광원이 스카이 라이트만 있는 열린 공간에서는, 빛이 사방에서 오므로 방향성이 거의 없습니다. 이 때 프리컴퓨티드 라이팅을 사용하면 캐릭터 아래 미묘한 "blob" (방울) 소프트 섀도를 냅니다.


틈새를 통해 빛이 들어오는 닫힌 공간에서는, 간접 라이팅 캐시 를 사용하여 캐릭터가 공간을 움직일 때 배치된 볼륨 라이팅 샘플끼리 보간하여 캡슐 섀도에 방향성을 주고 연하게 만듭니다. 통로에서 캐릭터의 그림자는 방향성이 적으므로 농도도 연하지만, 캐릭터가 통로에서 멀어질 수록 그림자의 농도와 방향성이 높아집니다.
간접 캡슐 섀도 최소 비저빌리티
아티스트는 Capsule Indirect Shadow Min Visibility (간접 캡슐 섀도 최소 비저빌리티) 옵션을 조절하여 추가적인 제어가 가능합니다. 이를 통해 프리컴퓨티드 라이팅을 사용하여 간접광 영역에서 캡슐 섀도의 농도를 조절할 수 있습니다. 이는 해당 영역에서 캡슐의 셀프 섀도를 줄이거나, 그림자의 농도를 연하게 하여, 주변 그림자와 멋지게 섞이도록 할 수 있습니다.


직접 캡슐 섀도
라이트 소스에서 Direct Capsule Shadow (직접 캡슐 섀도) 옵션이 켜지면 섀도 캐스터가 섀도 수신 대상에 대해 어떤 각도의 빛이나 라이트 소스의 크기에 따라 얼마나 부드럽게 영역이 드리우는지 정의할 수 있습니다.

직접광을 위한 캡슐 섀도는 디테일이 높은 폴리곤 스켈레탈 메시 섀도맵에 렌더링하는 것보다 저렴한 섀도를 위한 엔진 퀄리티 옵션으로 사용됩니다. 라이트 소스에 필요한 특정 모빌리티에 대해서는 바로 아래 섹션을 참조하세요. 또한 "제한 사항" 섹션을 아래에서 확인하세요.
Direct Capsule Shadow (직접 캡슐 섀도) 옵션이 켜지면, 디렉셔널 라이트의 Light Source Angle (라이트 소스 각도)와 스포트 또는 포인트 라이트의 Source Radius (소스 반경)을 사용하여 그림자를 받는 표현에서의 연한 정도를 정의합니다. 이를 통해 캡슐 섀도가 직접 라이팅되었을 때의 연한 정도를 직접 제어할 수 있습니다.
라이트 소스 각도
디렉셔널 라이트의 경우 Source Angle 프로퍼티를 사용하여 섀도를 부드럽게 하는 데 사용되는 태양의 각도를 지정할 수 있습니다(단위: 도).
이 프로퍼티는 Capsule Direct Shadow(캡슐 직접 섀도) 가 활성화된 경우에 라이트 모빌리티(스태틱, 스테이셔너리, 무버블)에서 작동합니다. )** is enabled.


소스 반경
디렉셔널 라이트의 라이트 소스 각도 작동 방식과 비슷하게, 스테이셔너리 스포트 / 포인트 라이트의 Source Radius (소스 반경)은 캐릭터에 소프트 섀도를 내는 데 사용됩니다. 소스 반경을 크게 할 수록, 라이트는 그림자를 드리우는 것이 표면에서 멀 수록 그림자를 연하게 만듭니다.


씬에 대한 라이팅을 빌드한 이후에는, 라이팅을 리빌드할 필요 없이 Source Radius 프로퍼티를 조절할 수 있습니다. 이 프로퍼티는 캡슐 섀도 또는 메시 디스턴스 필드가 켜진 무버블 액터에만 영향을 줍니다.
퍼포먼스
캡슐 섀도의 GPU 퍼포먼스 비용은 사용된 캡슐 수, 캐릭터 수, 그림자가 영향을 주는 화면 크기에 비례합니다.
7870 의 1080p 해상도에서 예를 들면:
캡슐이 10 개인 GPU 비용 | 밀리초 단위 시간 (ms) |
---|---|
화면에 캐릭터 하나 | 0.29 ms |
화면에 캐릭터를 하나 추가할 때마다 | 0.05 ms |
이 구현은 매우 효율적인데, 절반 해상도롤 섀도잉 계산 후 깊이를 인식하는 업샘플을 하면서, 화면 타일 컬링 기법으로 섀도잉이 필요한 곳에만 일어나도록 하여 작업 양을 줄이기 때문입니다.
한계
- DirectX 11 가 필요한데, 컴퓨트 셰이더를 사용하는 타일드 디퍼드 구현 때문입니다.
- 무버블 포인트 및 스퐅 라이트는 현재 지원되지 않습니다.
- 임의의 메시 셰이프에는 셀프 섀도 부작용이 있을 수 있습니다.
- 캡슐 표현에는 스필 및 구체만 사용할 수 있습니다.
- 캡슐 섀도가 너무 부드러워 져 앰비언트 오클루전이 되어버리는 경우, 진한 선이 나오는 섀도잉 부작용이 있습니다.
- 무버블 포인트와 스포트 라이트는 지원되지 않습니다. 전체 씬 섀도에서 하나의 오브젝트를 제거하고 해당 오브젝트의 개별 섀도를 수행하는 데 더 비용이 발생하기 때문입니다. 스테이셔너리 라이트는 항상 오브젝트별 섀도 방식이 될 것이므로 더 빠른 섀도 렌더링을 위해 캡슐 직접 섀도가 의미가 있습니다.