UDK 언리얼 엔진 배우기(6)-Light / Lightmass & Archetype-Prefab

2011. 6. 27. 23:04Unreal

6번째입니다.
이번에는 라이팅과 라이트 매스에 대해서 쓸까 합니다.
다시한번 얘기드리지만 튜토리얼 동영상을 필히 보시기 바랍니다. :)

라이트매스

1. 라이트 매스란

라이트매스? 빛반사, 색전이, 그림자 같은 것을 계산하는 시스템을 말합니다. UDK의 일부로 언리얼 엔진3에 통합되었습니다. 이를 통해 매우 사실적인 라이트맵을 레벨용으로 생성합니다. 라이트 맵핑에 대해서도 알아야 합니다.

라이트맵이란? 각종 스태틱 라이팅이 미리 계산되어 스태틱 텍스쳐에 그대로 맵핑되는걸 말합니다.
그래서 게임중 실시간 계산이 필요하지 않아 그래서 속도가 아주 빠르게 되는겁니다.

라이트매스로 계산하는 것은 즉 라이트가 어떤 물체에 부딪일때 가려지는게 아닙니다.
가시광선을 햇빛을 가려도 손바닥이 보이는 이유가 이런 빛의 난반사로 인한 것이기 때문입니다. 라이트 매스는 이런 기능을 수행합니다.

아래를 비교해보세요. (라이트매스 적용전과 적용후의 모습니다.)
이제 차이점이 눈에 보이시겠죠? :)

 
 

2. 라이트매스 적용방법
- 아래와 같이 레벨 전지역의 크기 만큼 라이트매스임포턴스볼륨을 추가하면 됩니다.


적용이 되면 노란색 Cube로 표시됩니다. 그러나 실제로 이 볼륨을 추가하지 않고 빌드를해도 해당 라이트의 영역만큼 자동으로 라이트매스볼륨이 적용되는걸 볼수 있습니다.
이볼륨은 계산영역을 정하기 위한 기능이라 보면 될것같네요. 정하지 않으면 라이트영역만큼 계산 영역이 커질테니 말이지요 :)

기본적으로 라이트빌드시에 Use Lightmass가 체크되어있습니다. 이것을통해
Before/After를 비교해보시면 확실합니다.

 (라이트 매스 적용하지 않은경우)

(라이트매스 적용한경우)

눈에 확보이는군요. 기본적으로 라이트 영역에 이 라이트매스가 기본적으로 적용된다는것을 명심하시기 바랍니다.
(라이트 빌드시에 체크박스에 있습니다.)


3. 라이트 속성
F4를 눌러  라이트 속성을 킵니다. 대부분의 속성 이름 위에 마우스를 오버하면 툴팁으로 설명이 나오니 참고하세요. 간단한것을 설명은 이렇습니다.


1. Point Light Component
   Radius: 라이트가 적용되는 반경

2. Light Component
   Brightness: 밝기
   Cast Shadows : 그림자 적용 여부
   Light Color : 라이트 색깔 조정

3. Lightmass
   Indirect Lighting Saturation : 빛이 반사될때의 강도
   Light Source Radius: 광원 반경, 라이트의 이론적인 방출 표면반경을 바꿉니다.
                        크기가 커지면 스태틱 메시의 그림자가 어수선해집니다.


스태틱 라이트에 광원을 추가해보자.

스태틱 전구 메시는 광원이 없습니다. 여기에 광원을 추가하려면 아래와 같이 하려면 됩니다.
1. 전구 스태틱 메시를 선택하고 속성창을 연다.

2. StaticMeshActor/Static Mesh Component 안의 라이트 매스를 선택합니다.

3. Lightmass/Lightmass Settings 를 보면
   - Use Emissive For Static Lighting : 체크하면 실제 빛을 뿌립니다.
   - Diffuse Boost : 확산 정도
   - emissive Boost: 방출 증가(빛의 밝기)
   - Emissive Light Explicit Influence: 라이트 명시적 영향 범위, 빛이 미치는 범위를 말합니다.
   - Light Falloff component : 감쇠, 빛이 얼마나 빨리 최대 밝기에서 어두워 지는지
   - Specular Boost : 이 오브젝트의 메티리얼 반사성을 조절

   예를 들면 일반 백열등의 밝기를 유지하면서 빛의 영역(Emissive Light Explicit Influence)을
   줄이면 아래와 같이 되겠습니다.

4. 레벨을 빌드하면 완성



프리팹과 아키타입(원형) 기능
- 아키타입 : 특정 Object에 속성수치까지 더한 Object를 만듭니다. 이후 이것을 레벨에 등록할 수 있습니다.
             (새로운 원본이 생기는것)

이렇게 패키지에 등록된 아키타입을 볼수 있습니다.

- 프리팹 : 레퍼런스라고 보시면 됩니다. 프리팹에 연결되어 있는 오브젝트들은 원본이 바뀌면
           모두 동시에 변경됩니다. (원본-복사본)

이 2가지를 이용하여 같은 오브젝트를 레벨 여러곳에 등록할때 사용하시면 유용합니다.

라이트는 여기까지입니다.
감사합니다.