UDN
Search public documentation:

VolumetricLightingGuideKR
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 홈 > 빛과 그림자 > 볼류메트릭 라이팅 안내서
UE3 홈 > 파티클과 이펙트 > 포그 이펙트 > 볼류메트릭 라이팅 안내서
UE3 홈 > 라이팅 아티스트 > 볼류메트릭 라이팅 안내서

볼류메트릭 라이팅 안내서


문서 변경내역: Ryan Brucks 작성

개요


이 문서에서는 Epic의 자체 Unreal Engine 3 타이틀에서 사용된 볼류메트릭 라이팅 효과의 용도에 대해 개괄적으로 설명합니다. 이러한 효과는 모두 단일 지오메트릭 기본요소에 적용된 언릿 반투명 머티리얼을 사용하여 볼류메트릭을 표시하며 해당하지 않는 경우에도 마찬가지입니다.

이러한 볼류메트릭 요소를 배치하기 위해 필요한 소스 컨텐츠가 이제 EngineVolumetrics.upk 컨텐츠 패키지에 포함되었습니다. 즉 라이센스 사용자는 자신의 타이틀에서 이를 직접 참조할 수 있습니다. 2007년 6월 QA 빌드를 기준으로 포함됩니다.

참고: 안개 속에서 카메라를 정확하게 처리하기 위해 진정한 볼류메트릭 안개 기능을 찾고 있다면 FogVolumesKR 페이지를 참조하십시오.

패키지 구조


현재 4가지 볼류메트릭 라이팅 기본요소가 있습니다.

  1. FalloffSpheres
  2. FogSheets
  3. Lightbeams
  4. FogEnvironments

이 머티리얼은 모두 FogEnvironments를 제외하고 많은 점이 유사합니다. 즉 각각 스태틱 메시 짝의 가장자리를 숨기기 위해 다양한 유형의 불투명도를 갖는 간단한 방사성 머티리얼입니다.

다시 말하지만 위의 모든 볼류메트릭 라이팅 효과는 EngineVolumetrics.upk 컨텐츠 패키지에 저장되어 있습니다.

EngineVolumetrics 패키지에는 각 효과마다 하나씩, 총 4개의 그룹이 있습니다.

01-enginevolumetrics-gb.gif

이 그림에서 보는 것처럼 각 유형에는 두 그룹이 있습니다. 각 그룹의 머티리얼과 메시는 함께 사용되는 것을 뜻합니다. 예를 들어 포그시트 머티리얼을 라이트빔(lightbeam) 메시에 놓지 마십시오.

아키타입

Falloffspheres, FogEnvironments, FogSheets 및 Lightbeams에는 모두 공통점이 있습니다. 스태틱 메시 짝에서 모두 스태틱 메시 등록 정보 변경이 필요한데, 반복된 설정 작업은 다소 성가실 수 있습니다. 월드에 이들을 추가하기 위한 프로세스를 간소화하기 위해 정확한 액터 등록 정보가 사전 설정된 아키타입이 생성되었습니다. 각 볼류메트릭 기본요소 유형에는 하나의 아키타입이 있습니다. 이들은 모두 '메시' 하위 그룹으로, 그 이름은 자신이 참조하는 스태틱 메시의 이름에 해당합니다.

아키타입에 대해 파악하려면 UsingArchetypesKR 페이지를 참조하십시오.

아키타입은 액터 등록 정보의 사전 설정이 가능하고 참조 대상 아키타입으로부터 변경 사항이 전파된다는 장점이 있습니다.

이해를 돕기 위해 다음과 같이 아키타입에서 설정된 플래그의 목록을 제공합니다.

CollisionType=COLLIDE_NoCollision

bAcceptsDynamicLights=False

bAcceptsLights=False

bForceDirectLightmap=False

bUsePrecomputedShadowing=False

CastShadow=False

bAcceptsDecals=False

bAcceptsDecalsDuringGameplay=False

bAcceptsFoliage=False

bUseAsOccluder=False

0-ev-properties.gif

이와 다른 유일한 클래스는 FogEnvironment 아키타입으로, DepthPriorityGroup=SDPG_Foreground 및 bAllowCulldistanceVolume=False 설정을 갖습니다.

월드에 배치


Generic Browser에서 원하는 기본요소의 아키타입을 선택하고 월드를 마우스 오른쪽 버튼으로 누른 다음 "Add Archetype: *"을 선택합니다.

01-ev-archetypegb.gif

인스턴스 생성


이제 메시 설정이 정확하고 이미 올바른 Parent Material을 참조하는 월드에 볼류메트릭 기본요소를 배치했으므로 그에 대한 새로운 머티리얼 인스턴스를 만들기만 하면 됩니다.

새로 추가한 스태틱 메시를 마우스 오른쪽 버튼으로 클릭하고 'Materials->' 메뉴와 'M_EV_*_Master_01' 메뉴를 차례로 확장한 다음 "Create New InstanceConstant"를 선택합니다.

04-ev-newinstance.gif

이 인스턴스에 용도를 간략히 설명하는 이름을 지정하여 나중에 탐색할 때 인식할 수 있도록 합니다. 이런 식으로 인스턴스를 생성하면 배치한 레벨에 대한 레벨 패키지에 인스턴스가 배치됩니다. 또한 새로 생성된 인스턴스에 대해 머티리얼 인스턴스 편집기가 자동으로 열립니다.

머티리얼 인스턴스화에 대한 전체 설명은 InstancedMaterialsKR 페이지를 참조하십시오.

볼류메트릭 유형


이제 각 유형에 대한 다양한 머티리얼 인스턴스 설정에 대해 설명하겠습니다. 각 볼류메트릭 기본요소 유형과 관련한 다른 특정 정보는 각 특정 섹션 아래에서 제공합니다.

Falloff Spheres

Falloff Spheres은 가장 간단한 볼류메트릭 기본요소로, 라이팅에서 나오는 희미한 빛을 조작하거나 코로나 효과 등에 사용됩니다.

Parent Material

방사체에 대한 간단한 색상 벡터가 있으며 CameraVector 및 TangentVector(0,0,1)가 있는 Dot Product를 사용하여 가장자리를 숨깁니다. 또한 카메라 인근에서 사용자가 클리핑을 눈치채지 못하도록 흐리게 하기 위해 픽셀 심도를 사용합니다.

StaticSwitchParameter를 통해 토글되는 선택적인 depthbiasedblending도 있습니다. 용도는 인스턴스 설정에서 설명합니다. 어딘가에 겹친 자리가 없이는 구면을 텍스처링할 수 없으므로(최소한 겹치는 샘플을 여러 개 사용하지 않고서는) 텍스처 패닝 중첩에 대한 옵션은 없습니다.

05-ev-falloffsphere-mat.gif

인스턴스 설정

FalloffSpheres에 대한 노출 인스턴스의 전체 목록은 다음과 같습니다.

ScalarParameters:

Density: depthbiasedalpha의 DepthBias를 조절합니다. UseDepthBiasedAlpha SwitchParameter가 On으로 설정된 경우에만 효과가 있습니다.

Opacity: 지정한 값을 라이트빔의 불투명도 출력에 곱합니다.

FalloffExponent: Dot Product(cameravector,tangentvector)에서 제공한 가장자리 감소를 변경합니다.

Distance: 카메라 교차를 숨기기 위해 흐려짐을 적용하는 거리를 제어합니다.

StaticSwitchParameters

UseDepthBiasedAlpha: 기본값은 OFF입니다. ON으로 설정하면 월드 및 플레이어와의 교차를 숨기는 depthbiasedalpha를 추가합니다. Cost: 12가지 명령

VectorParameters

Color: Falloffsphere의 단순 방사 색상입니다. 알파가 밝기를 제어합니다.

05-ev-fs-instance.gif

Static Mesh Information

이 메시는 원통형으로 펴진 UV가 있는 단순 구면 기본요소입니다.

FogSheet

Fogsheet는 본래 반투명 머티리얼이 적용된 지오메트리의 폴리곤 시트 2개입니다. 이들을 어떤 환경에나 배치하여 전경과 배경 요소의 거리 구분을 생성하거나, 희미하고 격리된 골짜기를 만들 수 있습니다. 전체 레벨에서 짙은 안개를 원치 않는 경우가 종종 있습니다. 짙은 안개는 어두워야 하는 영역을 씻어낼 수 있기 때문입니다. 이 때는 fogsheet를 활용하여 원하는 위치에만 짙은 안개를 적용할 수 있습니다. 잘만 활용하면 fogsheet는 핵심 영역을 강조하여 복잡한 장면의 명확도를 높일 수 있습니다. 하단 장면에 있는 아치형 통로에서 Fogsheet를 사용하면 플레이어를 해당 방향으로 끌어올 수 있습니다. "불을 따라 오시오."

기어스오브웨어서의 Fogsheet 사용 예:

07-ev-fogsheet-examples.jpg

대규모 FogSheet는 조절을 통해 사용해야 합니다. 근처에 여러 Fogsheet를 모아 두는 것은 상당한 초과 처리가 발생할 수 있으므로 지양해야 합니다.

Parent Material

Fogsheet의 머티리얼은 FalloffSphere의 머티리얼과 매우 유사합니다. 색상에 대한 매개변수 depthbiasedalpha와, 흐린 이동에 대한 패닝 텍스처 겹침이 있습니다.

06-ev-fogsheet-mat.gif

인스턴스 설정

FogSheet에 대한 노출 인스턴스의 전체 목록은 다음과 같습니다.

ScalarParameters

Density: depthbiasedalpha의 DepthBias를 조절합니다. UseDepthBiasedAlpha SwitchParameter가 On으로 설정된 경우에만 효과가 있습니다.

Opacity: 지정한 값을 라이트빔의 불투명도 출력에 곱합니다.

FalloffExponent: Dot Product(cameravector,tangentvector)에서 제공한 가장자리 감소를 변경합니다.

Distance: 카메라 간섭을 숨기기 위해 흐려짐을 적용하는 거리를 제어합니다.

TextureContrast: 선택적 패닝 텍스처 겹침의 대비를 조절합니다. 0으로 설정하면 텍스처 겹침이 1이 되어 무의미하게 됩니다. 1로 설정하면 텍스처 출력이 변경되지 않은 값으로 나타납니다. UseTextureOverlay 스위치 매개변수가 ON인 경우에만 유효합니다.

PanningSpeed: 선택적 겹침이 이동하는 패닝에서의 속도를 제어합니다.

TextureScale: 선택적 텍스처 겹침의 크기 조절을 제어합니다.

StaticSwitchParameters

UseDepthBiasedAlpha: 기본값은 OFF입니다. ON으로 설정하면 월드 및 플레이어와의 교차를 숨기는 depthbiasedalpha를 추가합니다. Cost: 12가지 명령

UseTextureOverlay: 기본값은 OFF입니다. ON으로 하면 흐린 동작에 대해 Fogsheet에 패닝 텍스처 두 가지를 추가합니다. Cost: 9가지 명령

TextureParameters

MultiplyTexture1: 선택적 텍스처 겹침에 사용된 첫 번째 텍스처

MultiplyTexture2: 선택적 텍스처 겹침에 사용된 두 번째 텍스처

FalloffTexture: 불투명도에 사용한 텍스처를 덮어쓸 수 있습니다. 기본값은 흐리고 흰 점이 있는 텍스처입니다.

VectorParameters

Color: Fogsheet의 단순 방사 색상입니다. 알파가 밝기를 제어합니다.

06-ev-fogsheet-instance.gif

Static Mesh Information

단일 평면 맵이 있는 단순 폴리곤 평면 메시 2개를 사용합니다.

LightBeams

Lightbeam은 가장 자주 사용되는 볼류메트릭 기본요소 유형일 것입니다. UT에서는 이목을 집중시키기 위해 가장 강력한 라이팅에서 도출했습니다.

Parent Material

라이트빔의 머티리얼은 가장 복잡한 볼류메트릭 유형 중 하나입니다. 여러 각도에서 볼 때의 감소를 처리하는 동시에 볼류메트릭 모양으로 보여야 합니다. 이를 위해서는 메시 UV의 Y 좌표를 사용하고 X 좌표는 반사 벡터로부터 생성됩니다. 이렇게 하면 머티리얼이 감소 텍스처를 원뿔에 매핑하고 이런 식으로 카메라가 원뿔 축과 마주하게 됩니다. 이후 구형 감소의 다른 양식을 결합하여 아래에서 볼 때 깨지지 않도록 합니다.

이러한 라이트빔 머티리얼과 스태틱 메시 생성을 설명하는 전체 튜토리얼은 VolumetricLightbeamTutorialKR 을 참조하십시오. 이 머티리얼을 다시 생성해 보는 것이 볼류메트릭의 작동 방식을 파악하는 가장 좋은 방법입니다.

08-ev-lightbeam-mat.gif

인스턴스 설정

Lightbeam에 대한 노출 인스턴스의 전체 목록은 다음과 같습니다.

ScalarParameters:

Density: depthbiasedalpha의 DepthBias를 조절합니다. UseDepthBiasedAlpha SwitchParameter가 On으로 설정된 경우에만 효과가 있습니다.

Opacity: 지정한 값을 라이트빔의 불투명도 출력에 곱합니다.

FalloffExponent: Dot Product(cameravector,tangentvector)에서 제공한 가장자리 감소를 변경합니다.

Distance: 카메라 간섭을 숨기기 위해 흐려짐을 적용하는 거리를 제어합니다.

TextureContrast: 선택적 패닝 텍스처 겹침의 대비를 조절합니다. 0으로 설정하면 텍스처 겹침이 1이 되어 무의미하게 됩니다. 1로 설정하면 텍스처 출력이 변경되지 않은 값으로 나타납니다. UseTextureOverlay 스위치 매개변수가 ON인 경우에만 유효합니다.

PanningSpeed: 선택적 겹침이 이동하는 패닝에서의 속도를 제어합니다.

TextureScaleX: 선택적 텍스처 겹침의 X 크기 조절을 제어합니다.

TextureScaleY: 선택적 텍스처 겹침의 Y 크기 조절을 제어합니다.

StaticSwitchParameters

TextureParameters

MultiplyTexture1: 선택적 텍스처 겹침에 사용된 첫 번째 텍스처

FalloffTexture: 불투명도에 사용한 감소 텍스처를 덮어쓸 수 있습니다. 라이팅 효과 필터를 사용하여 Photoshop에서 렌더링된 원뿔 모양 텍스처입니다.

VectorParameters

Color: lightbeam의 단순 방사 색상입니다. 알파가 밝기를 제어합니다.

08-ev-lightbeam-instance.gif

Static Mesh Information

EngineVolumetrics 패키지에는 이미 각도가 다양한 3개의 원뿔 변형이 있습니다. 추가적인 변형을 만들려면 가장자리가 차츰 가늘어지는 원통을 생성하고 이를 풀어 UV에 단 하나의 겹친 자리만 있게 합니다. 머티리얼 계산은 탄젠트 공간에서 수행되고 UV가 조잡하면 나중에 시각적 왜곡이 발생할 수 있으므로 UV를 명확히 하는 것이 중요합니다. 메시의 모자이크 정도가 클수록 최종 결과에서의 감소가 더 부드럽습니다(수직 슬라이스가 4개인 16면 원통이 적합). 이러한 라이트빔 머티리얼과 스태틱 메시 생성을 설명하는 전체 튜토리얼은 VolumetricLightbeamTutorialKR을 참조하십시오.

FogEnvironments

안개 환경은 모든 다른 볼류메트릭 유형과 다릅니다. 언릿 반투명 머티리얼로, 전경 DPG에서 렌더링되어 결과적으로는 하이트포그를 대체합니다.

항상 전체 화면에서 반투명 경로를 렌더링하므로 절대적으로 필요한 경우에만 유의하여 사용합니다.

여기에는 다양한 측면에서의 안개 색상과 불투명도를 변경하기 위한 두 가지 반구체가 있습니다. Unreal Tournament 3에서는 Epic이 이를 활용하여 CTF 맵에서 레벨에 팀 색상 안개를 적용했습니다.

이것이 작동하려면 FogEnvironment 메시가 SDPG_Foreground DepthPriorityGroup에 있어야 합니다. FogEnvironment 아키타입은 이미 이렇게 설정되어 있지만 아키타입을 사용하지 않는다면 직접 설정해야 합니다.

그러면 메시가 Drawscale을 통해 크기 조절되고 가장자리가 플레이어 카메라가 갈 수 있는 곳 밖으로 확장되는 방식으로 배치됩니다.

09-ev-fe-settings.gif

안개 환경에서는 장면 깊이를 사용하여 안개 블렌딩을 수행하므로 반투명 오브젝트와 하이트포그를 처리하지 않으므로 반투명 개체가 많이 포함된 레벨에서는 안개 환경을 사용하지 않는 것이 좋습니다.

Parent Material

안개 환경의 머티리얼은 메시의 텍스처 좌표를 사용하여 반구체와 높이 블렌딩을 생성합니다. 메시에는 여러 UV 좌표가 있습니다. 한 가지는 하향식 평면 맵이고 다른 하나는 측면 평면 맵입니다. 이러한 좌표 값만 사용하면 쉐이더가 블렌딩 수행에 필요한 항목을 구성합니다. 또한 블렌딩을 제어할 수도 있습니다. 정확한 제어는 인스턴스 섹션에서 설명합니다.

09-ev-fogenvironment-mat.gif

인스턴스 설정

Lightbeam에 대한 노출 인스턴스의 전체 목록은 다음과 같습니다.

ScalarParameters:

Falloff: 장면 깊이의 감소 지수입니다. 안개가 누적되는 속도를 변경합니다.

Density: 안개 환경의 밀도를 설정합니다. 이 값은 하이트포그 밀도와 유사합니다.

StartDistance: 안개 계산이 시작되는 거리를 밀거나 끕니다. BlendPower: 반구체 블렌딩의 지수를 제어합니다. BlendOffset으로 Tandem에서 조절합니다.

BlendOffset: 반구체 블렌딩 교차 위치를 제어하는 단순 오프셋입니다.

Opacity1: 최초 반구체의 불투명도를 곱합니다.

Opacity2: 두 번째 반구체의 불투명도를 곱합니다.

HeightDensity: 안개의 수직 감소에서 날카로운 정도를 제어합니다.

HeightOffset: 안개의 높이 감소를 오프셋합니다.

SideDesaturation: 두 반구체 간의 교차 지점에서 발생하는 채도 저하 크기입니다. 빨강과 파랑 사이의 중앙 전환 지점에서 발생하는 지저분한 분홍색을 제거하는 데 사용합니다. 주로 빨강과 파랑 팀 채색에서 사용합니다.

SideDesaturationPower: 반구체 교차 중심부터 채도 저하가 도달하는 거리를 제어합니다.

StaticSwitchParameters

UseSideDesaturation: 기본값은 OFF입니다. ON으로 하면 빨강과 파랑 사이의 중앙 전환 지점에서 발생하는 지저분한 분홍색을 제거하는 데 사용합니다. 주로 CTF 맵에서 사용합니다. Cost: 11가지 명령 https://udn.epicgames.com/bin/edit/Three/VolumetricLightingGuide?t=20110708080724

VectorParameters

Color1: 첫 번째 반구체의 단순 방사 색상입니다. 알파가 밝기를 제어합니다.

Color2: 두 번째 반구체의 단순 방사 색상입니다. 알파가 밝기를 제어합니다.

09-ev-fe-instance.gif

Static Mesh Information

스태틱 메시는 단순 구체(falloffsphere가 사용하는 것처럼)이나 특정 UV 좌표가 설정되어 있습니다. 한 가지는 하향식 평면 맵이고 다른 하나는 측면 평면 맵입니다.