UDN
Search public documentation:

LightingOnSurfacesKR
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

표면의 조명

문서 요약: LightActor들이 어떻게 다양한 종류의 도형에 영향을 미치는지 보여주는 안내.

문서 변경 내역: 최종 업데이트 Jason Lentz (DemiurgeStudios?)- 좀 더 다루기 쉬운 문서들로 분리함. 원저자- Lode Vandevenne (UdnStaff)

서론

조명은 여러가지 다른 종류의 도형에 다양한 방식으로 영향을 미칩니다. 이 문서에서는 각각의 케이스가 어떻게 원치 않는 결함을 피하는 한편 이용할 수 있는 다른 기능들을 십분 활용하는데 도움이 되는지에 대해 개괄적으로 설명합니다.

BSP의 조명

에디터는 Rebuild Lighting(조명 재빌드) 과정 중에 BSP의 표면에 라이트맵을 만듭니다. 이것은 표면에, 특히 High Shadow Detail을 가진 표면에 매우 현실감 있는 그림자를 만듭니다. 이러한 라이트맵들의 이점은 보기가 좋다는 점입니다. 단점은 실시간으로 계산할 수 없다는 점입니다. BSP 표면은 다른 BSP 표면으로부터 그림자를 받으며, 정적 메쉬의 Display 속성에서 bShadowCast가 True일 경우에는 이 정적 메쉬로부터 그림자를 받습니다.

lightingbsp.jpg

빛은solid, semisolid 및 nonsolid 브러쉬에 의해 중단됩니다. 빛은 단면 시트 브러쉬의 보이지 않는 면을 통해 비치며, 브러쉬의 다른 면을 통해서는 비치지 않습니다. 또, 시트가 아닌 nonsolid 브러쉬 내에 빛을 배치하면, 그 빛은 이를 통해 비칩니다.

빛은 투명 표면을 통해 비치지만, 변조된 표면을 통해서는 비치지 않습니다. 빛이 투명 표면을 통과할 때는, 마치 표면이 전혀 없는 것처럼 통과합니다. 투명 표면에 의해 착색되지도 않습니다. 광선은 마스크된 텍스처의 보이지 않는 부분을 통과하므로, 그림자는 마스크된 텍스처의 모양을 나타내게 됩니다:

maskedfence.jpg

가끔 조명을 재빌드할 때 마스크된 텍스처 자체가 까맣게 될 때가 있습니다. 이럴 때는 마스크된 텍스처를 Unlit으로 설정하면 원래대로 됩니다.

조명은 또한 투명 표면의 투명도를 결정합니다: 빛을 더 많이 받을수록 표면이 더 불투명해집니다; 빛이 적을수록 더 보이지 않게 됩니다. 맵에 투명한 표면이 있는데, 주변의 조명과는 별도로 투명도를 다소 조정하고 싶다면 이를 Special Lit으로 설정하고 그 옆에 bSpecialLit빛을 추가하면, 표면의 투명도를 그 빛으로 콘트롤할 수 있습니다. 예를 들면, 아래 그림의 방 한가운데는 사실 투명한 표면이 있지만 빛을 전혀 받지 않고 있습니다. 투명하지 않은 표면은 검정색이 되지만, 여기서는 보이지 않게 됩니다:

trans1.jpg

이제 빛의 LightBrightness를 점점 높게 설정할수록 표면이 점점 더 잘 보이게 됩니다:

trans2.jpg trans3.jpg trans4.jpg

채색 빛을 사용하면 더 많은 효과를 얻을 수 있습니다:

transred.jpg

정적 메쉬의 조명

최상의 결과를 얻으려면 정적 메쉬에 대해서도 조명을 재빌드할 필요가 있습니다. 조명은 정적 메쉬의 모든 표면에 대해 계산되므로 빛을 향하고 있는 표면만이 lit됩니다. 한 예로 아래의 작은 정적 메쉬 큐브를 보십시오:

redlighthw.jpg

이것은 정적 메쉬에 라이트맵이 없다는 것을 의미하며, 따라서 이는 BSP 표면이 받은 것 같은 훌륭한 그림자를 받지 않습니다. 한 예로, 아래의 스크린샷에서 왼쪽 맨 아래의 브러쉬는 정적 메쉬이고 위쪽에 있는 브러쉬는 BSP입니다 (엔진의 기본 텍스처를 가지고 있는 두 개의 브러쉬를 말합니다). 조명의 정면에는 그림자를 만들기 위한 막대가 놓여져 있지만, 정적 메쉬에서는 이 그림자가 보이지 않습니다:

hwvsbsp.jpg

정적 메쉬에 이동할 수 있는 기능이 있다면 (그 액터의 Default Properties에서 bStatic = False 인 경우), 조명이 정적 메쉬에서 실시간으로 계산되므로 이것이, 예를 들어, 빛을 향해 움직이면 점점 밝아집니다.

정적 메쉬 자체는 BSP 상에 그림자를 만들지만, 다른 정적 메쉬나 그 자체 위에는 그림자를 만들지 않습니다.

정적 메쉬상의 조명은 더 이상 피벗 포인트에 의존적이지 않으며, 대신 경계 박스에 의존적입니다. 따라서 피벗 포인트를 뜻하는대로 사용할 수 있습니다.

브러쉬를 정적 메쉬로 전환하는 경우에는 "Special Lit" 설정을 잃게 되므로 정적 메쉬에서 Special Lit을 사용할 수 없습니다. Unlit은 여전히 사용할 수 있으므로, BSP 브러쉬에서 Unlit인 표면은 모두 정적 메쉬에서도 Unlit이 됩니다.

정적 메쉬를 통해 빛의 코로나를 비추게 하고 싶다면 (예를 들어 램프 내에 코로나를 배치하는 경우), 정적 메쉬의 bBlockZeroExtentTraces를 False로 설정하십시오. 그래야 코로나를 볼 수 있게 됩니다. 물론 Display의 bShadowCast도 false로 설정해야 빛이 정적 메쉬를 통해 비추이게 됩니다.

blockzero.jpg dontblockzero.jpg

메쉬의 조명

메쉬 상의 조명은 정적 메쉬 상의 조명과 매우 비슷합니다.단, 메쉬 상의 조명은 실시간입니다.

meshlighting.jpg

메쉬의 속성에서 Display를 확장하십시오. 여기서 AmbientGlow를 사용하면 메쉬를 더 밝게 할 수 있습니다. 예를 들어 AmbientGlow를 128로 설정하면, 메쉬는 이 값이 0일 때보다 훨씬 밝아집니다. AmbientGlow가 255일 때, 메쉬는 완전한 밝기가 됩니다. 아래의 스크린샷은 AmbientGlow가 0, 128 그리고 255인 메쉬를 차례로 보여줍니다.

ambientglow.jpg

Display 에는 bUnlit이라는 속성도 있습니다. 이것을 true로 설정하면 메쉬는 모든 조명을 무시하며, 오직 AmbientGlow 에 의해서만 그 밝기가 결정됩니다. 다음 스크린샷도 AmbientGlow가 0, 128 그리고 255인 메쉬를 차례로 보여주고 있습니다:

ambientglowunlit.jpg

지형의 조명

지형의 조명에서 가장 중요한 방법은 SunLight?(태양광)을 비추는 것입니다. 사실 지형에는 태양광을 사용해야 합니다. 그렇지 않으면 밋밋하고 따분해 보입니다. 예를 들어 아래의 첫 스크린샷은 SunLight이 사용되지 않고 Ambient Lighting(주변 조명)만 사용된 것입니다. 두 번째 스크린샷에는 태양광이 있고 주변 조명은 없습니다:

terrainlight1.jpg terrainlight2.jpg

주변 조명(ZoneLight)은 지형의 그림자 부분을 좀 더 밝게 하는데 사용될 수 있습니다. 보통의 빛으로도 지형을 밝게 할 수 있지만, 지형을 완전히 조명하기 위해서는 수백개의 조명 액터가 있어야 할 것입니다.

스프라이트의 조명

스프라이트는 조명을 완전히 무시하며, 항상 완전한 밝기입니다. 에디터에서 스프라이트는 그 LightType이 적어도 LT_None이 아니라면, LightColor의 설정과 같은 색을 가집니다. 이는 에디터에서만이며, 게임에서는 적용되지 않습니다.

이전에는 Display 에서 ScaleGlow를 설정함으로써 스프라이트의 밝기를 변경할 수 있었지만, 이 기능은 777에서 깨졌습니다.

스프라이트는 주로 에디터에서만, 예를 들면 조명 액터의 전구 심볼 등으로, 사용되고 게임에서는 사용되지 않기 때문에, 조명은 그다지 중요하지 않습니다.

입자의 조명

입자는 모든 조명을 무시하지만, 특정한 방의 조명에 맞도록 그 밝기및 색상을 설정할 수 있습니다. 이에 대해서는 UDN에서 Emitters 튜토리얼을 참고할 것을 권합니다.

Mover의 조명

Mover는 근본적으로 bStatic이 False인 정적 메쉬입니다. 따라서 mover의 조명은 정적 메쉬에서와 같습니다.

Mover는 이미 자동적으로 DynamicLightMover가 되어 있습니다. 여러분이 이에 대해 bDynamicLightMover 속성을 설정하지 않아도 됩니다. 또 BrushRayTraceKey와 WorldRayTraceKey 속성들은 더 이상 아무 작용도 하지 않으므로 이들에 대한 설정을 무시해도 됩니다.

Mover의 BSP 상의 그림자는 움직이지 않습니다. 그러므로 그림자가 완전히 없어지도록 하려면 Mover의 Display 속성에서 bShadowCast를 False로 하십시오.

관련 문서

LightActors 및 Unreal Ed의 일반적인 조명에 대해 더 알기 원하시면 다음 문서들을 참고하십시오:

조명의 기본 – 모든 조명 관련 문서들의 자세한 목차.

조명의 사용 – 조명의 사용 뿐만 아니라 조명과 연계된 기능들의 사용법에 대한 일반적인 안내.

조명의 종류 - 여러가지 종류의 LightActor 및 조명 소스에 대한 안내.

조명의 참조 - LightColor와 Lighting 속성에 대한 포괄적인 참조.

특별 조명 기능 – 특별 조명 기능 설정 방법을 보여주는 튜토리얼.