언어:
페이지 정보
태그:
엔진 버전:
언리얼 엔진

캡슐 섀도 개요

언리얼 엔진

언리얼 엔진 4 (UE4) 에는 피직스 애셋으로 만든 캐릭터의 캡슐 표현인 Capsule Shadows (캡슐 섀도)로 라이팅 영역의 캐릭터에 소프트 섀도를 드리우는 기능을 지원합니다. 이 섀도잉 메서드는 간접광 영역에 있는 캐릭터에는 땅에 서있는 듯한 느낌을, 직사광 영역에는 소프트 섀도를 낼 수 있도록 해 주는데, 전통적인 섀도 매핑 기법으로는 가능하지 않은 일이었습니다.

캐릭터 캡슐 표현

피직스 애셋 을 사용하여 캐릭터의 추정한 표현을 만들어 매우 연한 그림자를 지원합니다. 캡슐은 캐릭터의 본에 붙으므로, 이를 통해 씬에서 그림자를 정확히 이동하며 드리울 수 있습니다.

캡슐 표현과 캐릭터

캡슐 표현만

땅의 그림자는 캡슐 섀도 표현이 아닙니다.

사용법

ShadowPhysicsAsset.png

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

캡슐 섀도 세팅

CapsuleShadowSettings.png

프로퍼티

설명

Capsule Direct Shadow

직접 캡슐 섀도 - 스켈레탈 메시의 섀도 피직스 애셋 슬롯에 캡슐 표현을 할당했을 때 (무버블) 직사광에서 소프트 섀도를 드리울 수 있도록 합니다.

Capsule Indirect Shadow

간접 캡슐 섀도 - 스켈레탈 메시의 섀도 피직스 애셋 슬롯에 캡슐 표현을 할당했을 때 프리컴퓨티드 라이팅(라이트맵 및 스카이라이트)에서 소프트 섀도를 드리울 수 있도록 합니다.

Capsule Indirect Shadow Min Visibility

간접 캡슐 섀도 최소 비저빌리티 - 간접광 영역에서 캡슐 섀도가 얼마나 진해질 수 있는지 아티스트가 제어할 수 있습니다.

간접 캡슐 섀도

CapsuleShadowsSetting2.png

Capsule Indirect Shadow (간접 캡슐 섀도) 옵션을 켜면, 배치된 볼륨 라이팅 샘플 에 따라 라이팅 빌드 도중 라이트매스가 계산한 디렉셔널 소프트 섀도를 드리우는 데 캐릭터의 캡슐 표현을 사용합니다. 간접 캡슐 섀도는 전통적인 섀도 매핑 방식이 잘 통하지 않는 이런 곳에 캐릭터가 땅 위에 있는 느낌을 낼 수 있습니다.

간접 캡슐 섀도 켬

간접 캡슐 섀도 끔

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

간접 캡슐 섀도 켬

간접 캡슐 섀도 끔

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

틈새를 통해 빛이 들어오는 닫힌 공간에서는, 간접 라이팅 캐시 를 사용하여 캐릭터가 공간을 움직일 때 배치된 볼륨 라이팅 샘플끼리 보간하여 캡슐 섀도에 방향성을 주고 연하게 만듭니다. 통로에서 캐릭터의 그림자는 방향성이 적으므로 농도도 연하지만, 캐릭터가 통로에서 멀어질 수록 그림자의 농도와 방향성이 높아집니다.

간접 캡슐 섀도 최소 비저빌리티

아티스트는 Capsule Indirect Shadow Min Visibility (간접 캡슐 섀도 최소 비저빌리티) 옵션을 조절하여 추가적인 제어가 가능합니다. 이를 통해 프리컴퓨티드 라이팅을 사용하여 간접광 영역에서 캡슐 섀도의 농도를 조절할 수 있습니다. 이는 해당 영역에서 캡슐의 셀프 섀도를 줄이거나, 그림자의 농도를 연하게 하여, 주변 그림자와 멋지게 섞이도록 할 수 있습니다.

캡슐 섀도 간접 최소 비저빌리티: 0.1 (기본값)

캡슐 섀도 간접 최소 비저빌리티: 0.45

직접 캡슐 섀도

CapsuleShadowsSetting1.png

Direct Capsule Shadow (직접 캡슐 섀도) 옵션이 켜지면, 디렉셔널 라이트의 Light Source Angle (라이트 소스 각도)와 스포트 또는 포인트 라이트의 Source Radius (소스 반경)을 사용하여 그림자를 받는 표현에서의 연한 정도를 정의합니다. 이를 통해 캡슐 섀도가 직접 라이팅되었을 때의 연한 정도를 직접 제어할 수 있습니다.

라이트 소스 각도

디렉셔널 라이트의 Light Source Angle 프로퍼티는 다이내믹 섀도잉 메서드에서 소프트 에리어 섀도를 만드는 데 사용됩니다. 이 프로퍼티를 조정하면, 그림자를 드리우는 표면에서 멀어질 수록 그림자는 연해집니다.

CS_LSA1.png

CS_LSA2.png

라이트 소스 각도 : 1.0 (기본값)

라이트 소스 각도: 2.0

소스 반경

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

CS_SR1.png

CS_SR2.png

소스 반경: 5.0

소스 반경: 15.0

씬에 대한 라이팅을 빌드한 이후에는, 라이팅을 리빌드할 필요 없이 Source Radius 프로퍼티를 조절할 수 있습니다. 이 프로퍼티는 캡슐 섀도 또는 메시 디스턴스 필드가 켜진 무버블 액터에만 영향을 줍니다.

퍼포먼스

캡슐 섀도의 GPU 퍼포먼스 비용은 사용된 캡슐 수, 캐릭터 수, 그림자가 영향을 주는 화면 크기에 비례합니다.

7870 의 1080p 해상도에서 예를 들면:

캡슐이 10 개인 GPU 비용

밀리초 단위 시간 (ms)

화면에 캐릭터 하나

0.29 ms

화면에 캐릭터를 하나 추가할 때마다

0.05 ms

이 구현은 매우 효율적인데, 절반 해상도롤 섀도잉 계산 후 깊이를 인식하는 업샘플을 하면서, 화면 타일 컬링 기법으로 섀도잉이 필요한 곳에만 일어나도록 하여 작업 양을 줄이기 때문입니다.

한계

  • DirectX 11 가 필요한데, 컴퓨트 셰이더를 사용하는 타일드 디퍼드 구현 때문입니다.

  • 임의의 메시 셰이프에는 셀프 섀도 부작용이 있을 수 있습니다.

  • 캡슐 표현에는 스필 및 구체만 사용할 수 있습니다.

  • 캡슐 섀도가 너무 부드러워 져 앰비언트 오클루전이 되어버리는 경우, 진한 선이 나오는 섀도잉 부작용이 있습니다.

태그