UDN
Search public documentation:

ModulatedShadowsKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 빛과 그림자 > 모듈레이트 섀도우 (Modulated Shadows)
UE3 홈 > 라이팅 아티스트 > 모듈레이트 섀도우 (Modulated Shadows)

모듈레이트 섀도우 (Modulated Shadows)


문서 변경내역: Daniel Wright 작성.

개요


모듈레이트 섀도우는 노멀 섀도우와 연관된 성능 저하 문제를 해결하고 아티스트들이 좀 더 그림자를 자유롭게 연출할 수 있게 하기 위해 소개 되었습니다. 본 문서에서 "노멀 섀도우" 는 단순히 모듈레이트 섀도우가 아닌 것을 의미하고 필터링 기술에 관해서는 아무것도 내포하는 것이 없습니다.

모듈레이트 섀도우는 투영된 그림자 버퍼뿐만 아니라 섀도우 볼륨과 함께 작동합니다.

버전


ModShadowFadeoutTime 기능은 QA_APPROVED_BUILD_JUNE_2007(2007 년 6 월 승인 빌드)에서 도입 되었지만, 그림자는 QA_APPROVED_BUILD_AUGUST_2007(2007 년 8 월 승인 빌드) 시점까지 페이드 인하지 않았습니다. Modulate - Better shadow 모드가 QA_APPROVED_BUILD_JAN_2008(2008년 1월 QA 승인 빌드)에 추가되었습니다.

관련 설정


ModShadowOptions.jpg

LightShadowMode

이 조명 소스에 사용되는 섀도우 유형을 제어합니다.

  • LightShadow_Normal – 기본 설정임. 해당 조명으로부터 그림자를 받기 위해서는 그림자 투영 조명에 의한 동적으로 발광되는 메쉬가 필요합니다. 이것은 아주 중요한 의미입니다. 왜 그런가하면, 그림자 투영 조명이 lightmap에 도움을 주고 있으면 lightmap된 형상이 노멀 섀도우를 받을 수 없기 때문입니다. 노멀 섀도우는 다른 렌더 대상이 저장되어 나중에 복구되는 것을 필요로 하는 추가 렌더 대상 공간을 필요로 하기에 Xbox 360에서는 매우 부담이 됩니다.
  • LightShadow_Modulate – 불투명 또는 마스크된 객체에 투영되는 조명 소스에서부터 모듈레이트 섀도우가 활성화됩니다. 이것은 가장 저렴한 모드입니다. 모듈레이트 섀도우는 특정 조명을 마스킹하는 것이 아니라 장면 색상을 배가하는 방식으로 작동합니다.

ModShadowColor

이것은 모듈레이트 섀도우의 색상을 조정합니다.

ShadowFalloffExponent

스포트 라이트 및 포인트 조명의 거리를 기준으로 그림자 폴오프(falloff)되는 비율입니다. 값이 높으면 그 만큼 폴오프의 발생이 더 빨리 발생합니다. 1.0 값은 선형 폴오프에 해당합니다.

ModShadowFadeoutExponent

이것은 ModShadowFadeoutTime이 0 이상일 경우 페이드 아웃과 페이드 인 커브를 조정합니다.

ModShadowFadeoutTime

이것이 0 이상이면 모듈레이트 섀도우는 투영자가 마지막으로 표시된 시간을 기준으로 페이드 아웃됩니다. 또한 이것은 투영자가 처음 표시되지 시작한 시간을 기준으로 페이드 인됩니다. 이것은 다른 방에서 캐릭터의 그림자를 페이드 아웃하는데 사용되고, 그렇지 않으면 그림자가 벽을 통과해 버립니다. 편집기에서 실시간 업데이트가 설정되어 있는지 확인하고, 실시간 업데이트 설정되지 않으면 제대로 작동하지 않습니다. 페이드 인은 프레임 속도 의존 때문에 원하지 않은 아티팩트를 유발할 수 있습니다.

모듈레이트 섀도우를 사용하는 이유


객체의 동적 그림자는 Normal Shadow를 사용하는 각 조명에 의해 그려집니다. 엄밀하게 말하자면 그림자는 현재 광원에서 오고있는 빛이 부족한 부분입니다. 이것은 좀 더 물리적으로 올바른 모델이지만 몇 가지 심각한 의미를 내포하고 있습니다. 전형적인 장면에는 여러 조명이 같은 지역을 비추고 있지만 성능적인 이유로 인해 그 조명 중 하나만 동적 그림자를 투영합니다. 이 경우, 섀도우 색상은 그림자 진 표면에 영향을 주고 있는 조명에 전적으로 의존하고 있습니다. 그림자 투영 광원의 총 빛의 양에서 단지 일부만 표면에 영향을 주기 때문에 그림자는 매우 흐릿합니다. 그림자는 단지 빛이 부족한 부분입니다. 아티스트들이 그림자 색상을 조절하고, 이 경우 더 어둡게 만드는 것은 매우 어려울 것입니다. 그 이유는 그림자 투영 빛을 더 밝게 만들어야 합니다(또는, 더 가까이, 더 적은 감쇠 등등). 그럼 결국, 장면에서 조명이 손상되게 됩니다.

노멀 섀도우는 일단 lightmap을 빌드하고 나면 정적 기하 도형에 투영하지 않습니다. 모듈레이트 섀도우는 장면 전체에 투영되어 이 문제를 해결합니다.

캐릭터에 영향을 미치는 3 개의 조명을 가진 장면이 있고, 3 개 중 1 개만이 노멀 섀도우를 투영합니다. 이 경우 그림자가 아주 흐린것에 주의하십시오.
ThreeNormal.jpg

모듈레이트 섀도우의 작동 원리


이상은 모듈레이트 섀도우가 그림에 등장하는 것입니다. 간단히 말하자면, 아티스트들이 모듈레이트 섀도우를 사용하여 동적 객체당 하나의 그림자를 가질 수 있게 되고, 그 그림자를 투영하는 빛의 속성을 수정할 필요 없이 그림자 색상을 조절할 수 있게 됩니다.

모쥴레이트 섀도우는 노멀 섀도우에 비교해 물리적인 정확성이 떨어지지만 대부분의 경우 성능과 사용자 제어 혜택으로 인해 노멀 섀도우와 견주어 떨어지지 않습니다. 그림자 ModShadowColo가 적용되는 조명은 각 경로 처리 때마다 현재의 빛을 마스크 아웃하는 대신 감쇠 버퍼로 렌더링됩니다. 모든 조명이 렌더되어지면 감쇠 버퍼는 장면 색상으로 배가되어집니다. 따라서 표면을 비추는 빛의 수에 관계없이 그림자는 더 짙어집니다. 이것은 특정 광원에서 발생하는 그림자가 그 광원뿐만 아니라 모든 광원으로부터의 조명에 영향을 미치기 때문입니다.

캐릭터에 영향을 미치는 3 개의 조명을 가진 동일한 장면에, 3 개 중 1 개만이 모듈레이트 섀도우를 투영합니다. 이 경우 그림자가 여전히 선명한 것에 주의하십시오.
ThreeMod.jpg

포인트 라이트의 모듈레이트 섀도우는 빛의 반경에 기초한 반경 감쇠를 갖습니다. 이것은 스포트 라이트에도 동일하게 적용되지만, 차이점은 폴오프가 원뿔 내부 및 외부에 의해 영향을 받습니다. 지향성 조명에는 거리 감쇠가 없습니다.

제한 사항


더블 섀도잉

모듈레이트 섀도우는 단순히 장면 색상에 대해 조정하기 때문에 그림자가 겹치는 영역에는 2개의 그림자가 투영되게 됩니다. 이것의 해결 방법은 primitive에 근접한 shadow parent를 투영하는 것입니다. 예를 들면, Gears of war 1에서는 모든 무기에 2번 그림자가 투영되는 것을 피하기 위해 섀도우를 해당 폰에 종속되어지게 하였습니다. 콘텐츠에서 shadow parent하는 방법에 관해서는 액터 연결 를 참조해 주십시오. 코드에서 shadow parent를 실행하려면 PrimitiveComponent의 SetShadowParent 메소드를 사용하십시오.

Emissive(방사) 아티팩트

모듈레이트 섀도우는 emissive light을 포함해서 음영 처리해서는 안되는 장면 색생에 대해 배가되어 버립니다. 해결 방법은 Modulate - Better 섀도우 모드를 사용하는 것입니다. 이것은 모듈레이트 섀도우가 모든 채널에 대해 emissive 구성 요소가 1 이상의 픽셀로부터 영향을 받는 것을 방지합니다.

형상을 거쳐 투영하기

현재 구현에서 Mod 섀도우는 형상을 투과하여 투영해 버립니다. 이러한 경우에는 빛의 배치를 신중하게 하여 이런 결과가 발생하지 않게 하여 주십시오. 수동으로 빛을 조절하는 경우에는 이러한 상황을 해결하기 어렵지만, 조명 환경 를 사용하여 훨씬 쉽게 작업하기 수월하게 작업할 수 있습니다. 대부분의 경우 이것은 ModShadowFadeoutTime 를 사용하면 완화됩니다. 뒷면에 그림자가 지는 것은 Modulate - Better 섀도우 모드를 사용하여 해결할 수 있습니다.

투영에서의 이러한 흠들을 실제로 없애는 유일한 방법은 정상적인 그림자를 사용하는 것입니다. 그렇지만 정상적인 그림자는 대개 변조된 그림자보다 비용이 상당히 더 많이 듭니다. 여기에는 한 가지 예외가 있는데, 그것은 DominantLightsKR입니다. 우세 광원은 하나의 광원으로 보다 저렴한 비용으로 정상적인 그림자를 드리울 수 있도록 해줍니다.

섀도우 버퍼 필터링

모듈레이트 섀도우를 이용한 결과의 한 가지는 동일한 광원에서 투영되는 그림자와 뒷면 색이 더 이상 동일하게 되지 않는다는 것입니다. 이는 즉, 그림자가 뒷면을 정확하게 채우지 않으면 그 차이는 너무 분명하게 들어납니다. 이 문제는 VSM와 같이 심도 오프셋을 도입한 일부 섀도우 버퍼 필터링 기술에 관한 것입니다. 좀 더 자세한 내용은 섀도우 버퍼 필터링 옵션섀도우 버퍼 필터링 기술 을 참조해 주십시오.