본문 바로가기
Computer Graphic/Unreal Engine

UE4: GI(Global Illumination) 글로벌 일루미네이션 활용하기

by Deongeun 2021. 6. 25.

 

 

 

- 'G'키를 눌러 게임모드로 보면 베이크된 라이팅을 확인할 수 있는데 이는 뷰포트상의 상태와 다를 수 있다

(bake되지 않았다면)

- Build > Lighting quality 완성 전까지는 preview로 봐도 괜찮고, 마무리 단계 근처에서 production으로 전환

 

 

 

 

 

 

[오브젝트에 라이트용 uv맵이 필요한 이유]

: 레벨에서 찾을 수 있는 모든 부위의 메쉬는 주변환경의 미묘한 라이팅을 캡쳐하고 저장해야하기 때문에 라이팅이 비트맵으로 구워짐.

광자가 환경에 적용되는 방식은

lightmass가 결정 한 오브젝트 표면의 여러 부분에 보이는 라이팅 정보가 씬의 다른 부분과 같을 확률은 거의 없다.

 

 

 

 

 

 

[메쉬 Details 창에서 LOD > Build Settings]

> Source Lightmap Index : 라이트맵 uv가 없을때 언리얼이 생성하기 위해 살펴보는 채널 = 머티리얼 작업에 주로 할당되는 기본 uv채널

> Destination Lightmap Index : 새로만든 uv 채널을 어디에 배치해야 할지 언리얼에 알려주고 대부분 모델에는 이미 할당된 uv 채널 하나만 있는 상태임

 

 

 

 

 

 

[라이트맵 해상도 올리기]

Lighting > Overridden Light Map Res

- 씬의 오브젝트 밀도에 따라 작은 오브젝트의 경우, 라이트맵 해상도를 8*8 , 16*16이하로 낮춰야 할 수도 있다.

- uv 아릴랜드 사이 패딩을 늘려야 아일랜드 사이에 빛샘현상을 방지할 수 있다. 

- DCC 어플리케이션에서 라이트맵 uv를 만들때는 uv 아일랜드가 많아질수록 라이팅 오류가 발생할 확률도 높아질 수 있다.

- 가급적 보이는 매쉬에 연결된 가장자리는 라이트맵 uv에서도 연결되도록 할것. -> 일관성과 퀄리티

 

 

 

 

 

 

[World Settings > Lightmass]

> Static Lighting Level Scale : 값을 낮출수록 라이팅 디테일이 올라간다. 1이 디폴트, 너무 낮추면 GI, 노이즈가 생기기 때문에 다른 것들이랑 조절해서 균형값을 찾아야 함

> Indirect Lighting Smoothness : 값을 올리면 라이팅의 미세한 디테일이 떨어지게 된다. (블러처리되기 때문에)

* bake된 씬 안에 움직이는 obj를 넣을때 : World Settings > Lightmass > Volumetric Lightmap Detail Cell Size

값을 낮추면(그리드를 쪼갬) 오브젝트에 GI가 묻는게 더 잘 보이는걸 확인할 수 있다.

 

 

 

 

 

[그림자]

- Directional Light > Details > Lightmass> Light Source Angle : 값을 낮추면 그림자가 칼지게 떨어진다.

 

 

 

 

 

 

[AO]

- PostProcessVolume에서 Ambient Occlusion을 사용하고 싶다면 World Settings > Lightmass에서 먼저 Use Ambient Occlusion을 체크해줘야 한다.

 

- World Settings > Lightmass

> Generate Ambient Occlusion Material Mask : ao의 알파표현을 도와준다. 미리 계산된 ao맵과 머터리얼 노드를 사용해야 함.

> Occlusion Exponent : 오클루전 효과 대비 또는 전환부분 설정 / 명에서 암으로 넘어가는 전환이 좀 더 급격해짐 

(대비 높이기)

 

 

 

 

 

 

[PostProcessVolume에서 GI조절]

 

Details > Rendering Features > Global Illumination

> Indirect Lighting Color 체크하고 색의 gain값 조절해줄 수 있음                                                              

> Indirect Lighting Intensity : 간접광 세기 조절로 GI 빛 밝기 조절

         

 

Details > Lense > Exposure 

: '시각 순응' (어두운데서 밝은데로 넘어갈때 우리 눈에서 일어나는 작용) 효과내기 위함

 

* 보통 Min Brightness랑 Max Brightness를 똑같은 수치를 둬서 어두운데 <-> 밝은데 왔다갔다해도 차이 없게 고정 노출로 작업시작

  Speed Up / Speed Down : 밝은부분 <-> 어두운 부분 시각순응 전환속도

  Exposure Compensation : 값이 -1이면 밝기 절반, -2면 1/4.

 

 

 

 

 

[컬러 블리드 제어]

 

↓다른건 기본 material로 두고 바닥만 푸른색을 넣어서 bake한 상태↓

-> 바닥에서 올라온 간접광으로 컬러블리드가 나타남

 

 

 

머티리얼 GIReplace 노드

- Default: 오브젝트에서 보게 될 색

- StaticIndirect : GI 계산에 쓰일 색_ 머티리얼 단위로 빛 반사를 제어할 수 있음 (현재 Default 색상에서 채도를 0.35로 낮췄음)

 

 

 

 

↑ 컬러블리드가 감소한 모습 ↑

 

 

 

 

 

* 또 다른 컬러블리드 줄이는 방법

- 머티리얼 노드에서 왼쪽에 diffuse를 검색하면 나오는데 머티리얼이 라이팅 솔루션에 기여하는 정도를 줄일 수 있다.

/ 하지만 씬의 조명이 줄어들면서 라이팅 결과물의 사실성이 떨어질 수 있다.