UDN
Search public documentation:

DevelopmentKitGemsInteriorMappingKR
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 홈 > UDK 젬 > 인테리어 매핑

인테리어 매핑


문서 변경내역: James Tan 작성. 홍성진 번역.
UDK 2011년 8월 버전으로 최종 테스팅, PC 호환

개요


IM_01_BeautyShot.jpg

인테리어(Interior) 매핑은 Joost van Dongen 이 개발한 기법입니다. 원래 문서는 여기에서 찾으실 수 있습니다. 인테리어 매핑은 가상 시점으로 평면에 올바르게 텍스처입힌 방을 만들어 내는 기법입니다. 내부 모델링에 많은 시간을 소모할 필요 없이 씬에 빌딩을 빠르게 추가할 수 있도록 빌딩을 향상시키는 기법입니다.텍스처를 사용하고 이 머티리얼을 확장하므로써 낮밤 전환에 대한 동적인 반응을 이끌어낼 수도 있고, 가상 벽이나 바닥에 애니메이션 텍스처를 사용할 수도 있습니다.

머티리얼 만들기


이 머티리얼은 van Dongen 이 작성한 Cg 프로그램을 기반으로 구성한 것이나, 일부 Cg 전용 인스트럭션은 UDK 전용 명령을 사용하도록 확장 및 변환했습니다. 그런 예로써 step 함수를 들 수 있습니다. 아래는 UDK 에서 만든 것입니다.

IM_02_StepFunction.jpg

이와 같은 Cg 함수는 머티리얼 함수 로 만들 수 있습니다.

레이 트레이싱 패스

패럴랙스 오클루디드(시차에 가려진) 매핑 기법 과 매우 유사하게, 이 기법 역시 레이 트레이싱(광선 추적)을 사용하여 머티리얼 표면을 렌더링할 때 사용할 텍스처 좌표를 찾아냅니다. 모든 Vector Transform 은 월드에서 로컬로 변환됩니다. 레이 트레이싱 패스는 이와 같이 수행됩니다:

IM_03_RayTracePass_Thumbnail.jpg

천정과 바닥 텍스처 패스

레이 트레이싱을 한 이후, 다음 단계는 천정과 바닥 텍스처 패스입니다. 천정과 바닥 둘 다 텍스처 좌표가 같기에, 어느 것이 렌더되는지는 텍셀이 카메라 수평보다 아래 있는가에 따라 결정됩니다.

IM_04_CeilingFloorPass_Thumbnail.jpg

벽 텍스처 패스

이 머티리얼에는 두 종류의 벽이 있는데, 하나는 X 축 또 하나는 Y 축에 대한 것입니다. 레이 캐스트 교차에 따라 각기 다른 텍스처 좌표가 사용된다는 점만 제외하면 둘 다 텍스처 계산은 같습니다. 레벨 디자이너가 사용할 수 있는 텍스처 계산법은 두 종류입니다. 하나는 텍스처 애틀래싱(atlas) 방법으로 벽 텍스처가 사용할 것을 임의로 정하는 것인데, 훨씬 비싸긴 하지만 눈은 즐겁습니다. 또 하나는 각각의 벽에 하나의 텍스처만 사용하는 초간단 방법입니다.

IM_12_WallPass_Thumbnail.jpg

라이팅 패스

라이팅 패스는 단순히 세 면에 대한 노멀맵을 빌드한 다음 스태틱 라이트 방향으로 도트 곱(dot product) 계산을 합니다. 멀티플라이어 파라미터와 추가 파라미터를 더해 레벨 디자이너가 라이팅을 더욱 세밀히 조정할 수 있도록 했습니다.

IM_05_LightingPass_Thumbnail.jpg

라이트 베리에이션 패스

라이트 베리에이션(변화) 패스는 각 방에 대한 노이즈 샘플을 생성합니다. 임계값을 사용하여 라이트를 끄거나 켤 수 있습니다. 추가 베리에이션을 만들어 빌딩이 더욱 재미나 보이게 만들 수 있습니다. 임계값을 각기 다르게 설정하면 다양한 강도의 다양한 라이트가 가능하기도 하고, 깜빡이는 라이트같은 이펙트를 낼 수도 있습니다.

IM_06_LightVariationPass_Thumbnail.jpg

노멀 패스

노멀 패스는 외벽에 사용되며, 다른 머티리얼과 같은 방식으로 셋업됩니다. 디테일 노멀 매핑, 유리 반사면에 대한 노멀 조정 등이 포함됩니다. 비현실적일 정도로 완벽한 반사면이 아닌, 약간 우글거리게 만들기 위함입니다.

IM_07_Normal_Thumbnail.jpg

스페큘러, 스페큘러 파워 패스

스페큘러와 스페큘러 파워 패스는 외벽에 사용되며, 다른 머티리얼과 같은 방식으로 셋업됩니다. 벽돌이 창문보다 높은 스페큘러 파워 값을 갖도록 셋업되었습니다.

IM_08_SpecularAndSpecularPower_Thumbnail.jpg

이미스브와 인테리어 패스

이미시브 패스는 천정과 바닥, 벽, 라이팅, 라이팅 베리에이션 패스를 통해 만들어진 인테리어 패스를 렌더링하는 데 사용됩니다. 텍스처 샘플러를 비우려거든(free up) 외벽에 이미시브 텍스처를 사용해도 됩니다.

IM_09_EmissiveAndInterior_Thumbnail.jpg

디퓨즈 패스

디퓨즈 패스는 외벽에 사용되며, 다른 머티리얼과 마찬가지로 셋업됩니다.

IM_10_Diffuse_Thumbnail.jpg

디퓨즈, 스페큘러, 노멀 텍스처 스케일러

디퓨트, 스페큘러, 노멀 텍스처 스케일러는 RoomDimensions 로 설정된 방 숫자에 일치되도록, 레벨 디자이너가 텍스처 스케일을 조절할 수 있도록 하기 위함입니다.

IM_11_OutsideWallTextureScale.jpg

완성된 머티리얼

전부 합치면 이런 머티리얼이 됩니다.

IM_12_CompleteMaterial_Thumbnail.jpg

머티리얼 파라미터


머티리얼 목록과 그 역할은 이렇습니다.

  • BackWallTextureScale 뒷벽 텍스처 스케일 - 벽 텍스처 좌표 중 하나의 스케일을 조절할 수 있습니다.
  • CeilingTextureScale 천정 텍스처 스케일 - 천정 텍스처 좌표 스케일을 조절할 수 있습니다.
  • FloorTextureScale 바닥 텍스처 스케일 - 바닥 텍스처 좌표 스케일을 조절할 수 있습니다.
  • LeftAndRightWallTextureScale 좌우벽 텍스처 스케일 - 벽 텍스처 좌표 중 하나의 스케일을 조절할 수 있습니다.
  • LightColorAddition 라이트 컬러 더하기 - 전체적인 라이트 결과에 더할 수 있습니다. 라이트 값이 1.f 이상으로 가면, 나머지는 블룸 팩터로 넘겨줍니다.
  • LightColorMultiplier 라이트 컬러 곱수 - 전체적인 라이트 결과에 곱할 수 있습니다. 라이트 값이 1.f 이상으로 가면, 나머지는 블룸 팩터로 넘겨줍니다.
  • LightParameterA 라이트 파라미터 A - 인테리어 라이트 방향을 정의합니다.
  • MaxLightColor 최대 라이트 컬러 - 라이트 결과가 낼 수 있는 최대 컬러입니다.
  • MinLightColor 최소 라이트 컬러 - 라이트 결과가 낼 수 있는 최소 컬러입니다.
  • OutsideWallTextureScale 외벽 텍스처 스케일 - 외벽 텍스처 스케일을 조절할 수 있습니다.
  • RoomDimensions 방 크기 - 방 크기를 얼마나 크게 할 지 조절할 수 있습니다. 방 크기가 작을 수록 방 갯수가 많아집니다.
  • BackTextureAtlasMagicConstantA 뒷 텍스처 애틀래스 마법 상수 A - 텍스처 좌표를 맞추고자 텍스처 애틀래스를 사용할 때 이 마법 상수를 조정합니다.
  • BackTextureAtlasMagicConstantB 뒷 텍스처 애틀래스 마법 상수 B - 텍스처 좌표를 맞추고자 텍스처 애틀래스를 사용할 때 이 마법 상수를 조정합니다.
  • DetailNormalDepth 디테일 노멀 깊이 - 디테일 노멀의 깊이를 조절할 수 있습니다. 값이 커지면 디테일 노멀을 더욱 두드러지게 만듭니다.
  • DetailNormalScale 디테일 노멀 스케일 - 디테일 노멀의 스케일을 조절할 수 있습니다.
  • DiffuseSpecularPower 디퓨즈 스페큘러 파워 - 디퓨즈 스페큘러 파워 값을 조절할 수 있습니다.
  • GlassDepth 유리 깊이 - 유리 노멀을 얼마나 세게 줄 것인가, 즉 반사면 굴곡을 세게 또는 약하게 조절할 수 있습니다.
  • GlassDiffuseStrength 유리 디퓨즈 세기 - 유리 디퓨즈를 얼마나 세게 줄 것인가 조절할 수 있습니다.
  • GlassNormalScale 유리 노멀 스케일 - 유리 노멀 스케일을 조절할 수 있습니다.
  • InteriorLightingVariationTextureScale 인테리어 라이팅 베리에이션 텍스처 스케일 - 내부 빛 변화 텍스처 스케일을 조절할 수 있습니다.
  • LeftAndRightWallTextureAtlasMagicConstantA 좌우벽 텍스처 애틀래스 마법 상수 A - 텍스처 좌표를 맞추기 위해 텍스처 애틀래스를 사용할 때 이 마법 상수를 조정합니다.
  • LeftAndRightWallTextureAtlasMagicConstantB 좌우벽 텍스처 애틀래스 마법 상수 B - 텍스처 좌표를 맞추기 위해 텍스처 애틀래스를 사용할 때 이 마법 상수를 조정합니다.
  • LightVariationThreshold 라이트 베리에이션 임계값 - 노이즈 베리에이션 패스에 따라 라이트를 끄고 켤 지 조절할 수 있는 임계값입니다.
  • ReflectionStrength 반사 세기 - 반사의 세기를 조절할 수 있습니다.
  • SpecularMultiplier 스페큘러 곱수 - 스페큘러를 얼마나 세게 할 지 조절할 수 있습니다.
  • WindowSpecularPower 창문 스페큘러 파워 - 창문에 대한 스페큘러 파워를 조절할 수 있습니다.
  • DetailNormal 디테일 노멀 - 디테일 노멀에 사용되는 텍스처입니다.
  • DiffuseWithWindowAlpha 창문 알파 포함 디퓨즈 - 외벽에 사용되는 텍스처입니다. 알파 채널은 창문과 외벽 부분을 걸러내는 마스크로 사용됩니다.
  • GlassNormal 유리 노멀 - 유리 노멀에 사용되는 텍스처입니다.
  • InteriorBackWall 인테리어 뒷벽 - 한 쪽 벽에 사용되는 텍스처입니다.
  • InteriorBackWallAtlas 인테리어 뒷벽 애틀래스 - 텍스처 애틀래싱 패스를 사용할 때 한 쪽 벽에 사용되는 텍스처입니다.
  • InteriorBackWallVariation 인테리어 뒷벽 베리에이션 - 텍스처 애틀래스 베리에이션에 사용되는 텍스처입니다.
  • InteriorCeiling 인테리어 천정 - 천정에 사용되는 텍스처입니다.
  • InteriorFloor 인테리어 바닥 - 바닥에 사용되는 텍스처입니다.
  • InteriorLeftAndRightWall 인테리어 좌우벽 - 한 쪽 벽에 사용되는 텍스처입니다.
  • InteriorLeftAndRightWallAtlas - 인테리어 좌우벽 애틀래스 - 텍스처 애틀래싱 패스를 사용할 때 벽 한 쪽에 사용되는 텍스처입니다.
  • InteriorLeftAndRightWallVariation 인테리어 좌우벽 베리에이션 - 텍스처 애틀래싱 베리에이션에 사용되는 텍스처입니다.
  • InteriorLightingVariation 인테리어 라이트 베리에이션 - 라이팅 베리에이션에 사용되는 텍스처입니다.
  • Normal 노멀 - 노멀에 사용되는 텍스처입니다.
  • Reflection 반사 - 반사에 사용되는 큐브 맵 텍스처입니다.
  • Specular 스페큘러 - 스페큘러에 사용되는 텍스처입니다.
  • Has Light Variations 라이트 변수 있음 - 머티리얼이 라이트 베리에이션 패스를 사용할지 말지 제어하는 데 사용되는 스위치입니다.
  • Has Interior 인테리어 있음 - 머티리얼이 인테리어 패스를 사용할지 말지 제어하는 데 사용되는 스위치입니다.
  • Has Outside Wall 외벽 있음 - 머티리얼이 디퓨즈, 스페큘러, 스페큘러 파워, 노멀 패스를 사용할지 말지 제어하는 데 사용되는 스위치입니다.
  • Has Specular Texture 스페큘러 텍스처 있음 - 머티리얼이 스페큘러에 텍스처를 사용할지 말지 제어하는 데 사용되는 스위치입니다.
  • Use Texture Atlas For Back Wall 뒷벽에 텍스처 애틀래스 사용 - 머티리얼이 텍스처 애틀래스 패스를 사용할지 말지 제어하는 데 사용되는 스위치입니다.
  • Use Texture Atlas for Left And Right Wall 좌우벽에 텍스처 애틀래스 사용 - 머티리얼이 텍스처 애틀래스 패스를 사용할지 말지 제어하는 데 사용되는 스위치입니다.

비교 스크린샷


인테리어 매핑을 켜고 찍은 스크린샷입니다. 내부 방이 만들어져 아주 약간의 작업만으로도 씬에 디테일을 추가해 줍니다.

IM_13_InteriorMappingOn.jpg

인테리어 매핑을 끄고 찍은 스크린샷입니다. 라이트 베리에이션 패스를 사용하여 불을 약간만 켤 수도 있지만, 인테리어 매핑만큼 입체감이 살지는 않습니다.

IM_13_InteriorMappingOff.jpg

내려받기