언리얼 라이팅 빌드 시간 - eonlieol laiting bildeu sigan

라 이팅 빌드 옵션의 Lighting Quality 탭에서 선택하는 퀄리티에 따라 자동으로 설정됩니다. Preview, Medium, High, Production 과 같이 네가지 옵션을 지원합니다. Preview에서 Production으로 올라갈수록 고품질의 결과물을 얻을 수 있지만 이에 비례하여 라이팅 빌드 시간도 함께 증가하게 됩니다. Lighting Build Info 대화창을 통하여 단일 메시별로 라이팅 빌드 시간을 확인할 수 있습니다.
라이트매스 임폴턴트 볼륨이 여러 개 있을 경우, 최종 라이팅 빌드 계산은 모든 볼륨을 포함한 가상 바운딩 박스 안에서 이루어진다. 따라서 볼륨이 많을수록, 또 레벨에서 더 퍼져 있을수록 라이트 빌드 시간에는 부정적 영향을 끼친다.

 

실내 공간을 위한 라이트매스 포털

빛이 잘 도달하지 않는 부분의 라이팅을 개선해준다.

 

라이트매스 포털 배치하는 모습

라이트매스 포털은 라이트매스 랜더러가 레벨 내 광선들의 출처를 정확히 파악하는데 도움을 준다.

노이즈와 어두운 부분의 표현이 미묘하지만 좀 더 개선이 된다.

 

라이트매스를 레벨에 무턱대고 추가하면 랜더링 시간에 제약이 발생한다.

라이트매스 포털은 라이트매스 렌더러가 항상 자신의 방향으로 광선을 향하도록 강제하므로, 카메라가 보이지 않는 곳에 라이트매스 포털을 배치했더라도 계산된다.

그렇기 때문에 라이트매스 포털을 대규모 레벨이나 '오픈 월드'형 레벨에는 당연히 사용하면 안 되는데, 라이팅 측면에서 가치가 거의 또는 전혀 없으면서 여전히 라이트 빌드 시간에는 엄청난 영향을 끼치기 때문이다.

 

퀄리티 및 스무스니스 세팅

예제 레벨 01_09 조금 더 밝게 하기

DirectinalLight > Details > Light > Intensity : 7.5 -> 9 

World Settings > Lightmass > Lightmass Settings > Environment Intensity : 5->7

World Settings > Lightmass > Lightmass Settings > Indirect Lighting Quality : 1-> 1.25

World Settings > Lightmass > Lightmass Settings > Indirect Lighting Smoothness : 1-> 0.75

 

  - Indirect Lighting Quality : 라이트매스 GI 솔버에 사용되는 샘플 수 스케일.

값을 높게 설정하면 결과물은 노이즈와 얼룩 같은 라이팅 오류가 더 적게 나타나지만 빌드 시간은 더 길어지므로 이걸 사용할 때 주의점은 값을 조금씩만 증가시켜야 한다.

 

하나 확실히 해두자면 위의 두 컨트롤 중 어느 것도 라이팅 솔루션에서 발견되는 오류를 모두 없앨 수 없다.

예를 들어 텍스처 이음새나 압축 부작용 등의 라이트맵 문제는 모두 그 소스에서 고쳐야 한다. 

 

Indirect Lighting Quality는 Indirect Lighting Smoothness와 언제나 조합해서 조정해야 하는데, 그 이유는 Indirect Lighting Quality에서 값을 올리면 라이팅의 미세한 디테일이 제거되기 때문이다.(???) 이러한 미세한 디테일에 영향을 주는 스무딩이나 블러링을 낮추지 않는다면 지금까지 시간을 들여가며 계산한 미세한 디테일을 뭉개버리는 게 된다.

좋은 Indirect Lighting Smoothness의 권장선은 0.69에서 0.75 사이이다.

위에 내용이 이해 안가는 부분이 있어, 원글을 옮겨봤는데... 아무리봐도 저 부분에서 '퀄리티'와 '스무스니스'를 헷갈린 것 아닐까? 

To you see what the Indirect Lighting Quality control can contribute. Let us increase the value to 1.25, and move onto our second option, which is the Indirect Lighting Soothness control, given that we will most likely want to always adjust the two of these in tandem, simply because as we increase the Indirect Lighting Quality control, we are essentially removing finer details in our lighting.
If we do not lower the smoothness or blurring being applied to these finer details, we will simply end up smoothing out the fine details that we have just spent time calculating. Although the specifics will depend on the level that we are using a good guideline range for Indirect Lighting Smoothness is between 0.69 to 0.75

 

GI 솔루션 강화

 

에리어 쉐도우

 

Area Shadows - 빛과 그림자가 만나는 부분이 광원에서 멀어질수록 더욱 부드럽고 퍼져 보이게 만드는 효과

 

언리얼에서 모든 라이트는 스태틱으로 세팅될 때 기본적으로 에리어 쉐도우를 가진 에리어 라이트가 된다.

 

쉐도우의 반그림자에서 블러의 양을 조정할 수 있는 방법

 

SpotLight 와 PointLight 일 경우 구체형 에리어를 사용하며 디테일 패널의 Source Radious 에서 설정한다.

Source Radious : 0 일 때의 액자 그림자
Source Radious : 10 일 때의 액자 그림자

DirectionalLight 일 경우 디테일 > Lightmass > Light Source Angle 을 변경하면 반그림자 부분을 흐리게 할 수 있다.

 

Light Source Angle : 0, Shadow Exponent : 2 로 하면 모든 그림자가 날카롭다.

Light Source Angle : 0

Light Source Angle : 1, Shadow Exponent : 2 

Light Source Angle : 1

Light Source Angle : 2, Shadow Exponent : 2 

Light Source Angle : 2

Shadow Exponent 컨트롤은 라이트에게 부드러운 그림자 효과를 언제 시작하면 될지 알려줌.

즉, 라이트를 받는 위치로부터 그림자를 드리우는 주체까지 거리를 알려준다.

 

Light Source Angle : 2, Shadow Exponent : 3 

Shadow Exponent : 3

Light Source Angle : 2, Shadow Exponent : 5 

Shadow Exponent : 5

 

앰비언트 오클루전 사용

앰비언트 오클루전(AO) : 빛의 차폐로 인한 감쇠 근사치를 구하는 이펙트입니다. 현실에서도 방의 구석 부분은 훨씬 더 어둡듯이, 구석이나 틈 같은 곳을 더 어둡게 하여 더욱 자연스럽고 사실적인 느낌을 낼 수 있도록, 표준 글로벌 일루미네이션에 더해 미묘한 이펙트로 사용하는 것이 보통 가장 좋다.

 

사물이 환경에 속해있다는 느낌을 주는 요소로, 기본적으로 간접 그림자 형태를 띤다.

 

스크린 스페이스 앰비언트 오클루전 (SSAO)

PostProcessVolumn > RenderingFeatures > Ambient Occlusion

 

SSAO 사용의 장점은 계산이 빠르고 메모리도 효율적으로 사용하며, 꽤 괜찮은 결과물을 얻을 수 있다.

단점은 스크린 스페이스만 사용해 계산된다. 즉 오브젝트가 카메라 뷰에서 벗어나면 앰비언트 오클루전의 생성을 멈춰버려서 오브젝트에 있던 앰비언트 오클루전이 뷰에서 사라지며 아주 신경 쓰이게 튀어 보이는 현상이 생길 수 있다.

 

라이트매스 GI가 생성한 앰비언트 오클루전은 이와 대조적으로 라이트맵에 구워진다. 즉, 레벨 상의 오브젝트가 언제나 AO를 추가하며 유저가 레벨 안을 돌아다니더라도 튀거나 깜빡이거나 사라지지 않는다. 

 

앰비언트 오클루전은 항상 깔끔하게 구현되지 않는다. 벽이 얇은 지오메트리(thin walled geometry)에서는 잘 작동되지 않는다. (개인적인 견해이지만) 사실 꽤 많은 이유로 벽이 얇은 지오메트리(plain을 말하는 것 같음)는 제품 시각화에 사용하지 말아야 한다.

 

라이트매스 GI가 생성한 앰비언트 오클루전 구현하기

PostProcessVolumn 에서

> Rendering Features > Ambient Occlusion > Intensity : 0

; SSAO 끄기

 

World Setting > Lightmass > Lightmass Settings 에서

> Use Ambient Occlusion 체크

> Generate Ambient Occlusion Material Mask 

; 앰비언트 오클루전 머티리얼 마스크 생성 (AO의 알파 표현을 만들어 줌), 미리 계산된 AO 마스크와 머티리얼 노드와 함께 사용해야 함.

> Max Occlusion Distance : 60 -> 8 (60은 너무 높음, 높은 값 사용하면 렌더링 타임 오래 걸림)

> Direct Illumination Occlusion Fraction : 0.5 -> 0.3

> Indirect Illumination Occlusion Fraction : 0.5 -> 0.6

; 오브젝트에 직사광이나 간접광이 닿았을 때 얼마나 많은 오클루전을 적용할지 설정할 수 있는 옵션.

0은 AO를 전혀 적용하지 않고 1은 최대임 (두 값이 0이면 사실상 오클루전을 사용하지 않은 것과 같음)

  

> Occlusion Exponent : 0.65 -> 1.15

; 오클루전 효과의 대비 또는 그레디언트 수준을 제어하는 옵션, 수치를 높이면 명에서 암으로 넘어가는 전환이 좀 더 급격해져서 오클루전을 구석으로 밀어넣는데 좋다.  

 

언리얼 엔진 4 문서에서 앰비언트 오클루전 설명 부분 캡쳐

 

정확도를 위한 스태틱 라이팅 스케일

World Setting 에서

> Lightmass > Lightmass Settings > Static Lighting Level Scale

; default = 1.0 (1 unit = 1 cm)

- 레벨 스케일에 맞춰 라이팅 스케일을 설정하며, 언리얼에 라이팅 빌드에서 계산할 또는 하지 않을 디테일 정도를 알려준다.

- 값이 작을수록 기본적으로 더 작은 공간에 더 많은 라이팅 디테일을 패킹하여 전반적인 퀄리티가 높아질 수 있으나 빌드 시간이 굉장히 늘어난다.

- 대규모 야외 레벨에서 빠른 그림자 계산을 돕는 용도로 사용하며 이때 사용되는 값은 2.0 - 4.0 정도이다. 

- 수치를 조금씩만 변경해 보길 권장하며, 가능한 한 기본 설정대로 놔두는 것이 좋다.

 

마무리 작업

 

애니메이션 및 GI 처리

표시 > 시각화 > 볼류매트릭 라이트맵 켜줌

현재 장면에는 볼류메트릭 샘플이 너무 적어서 샘플수를 늘려줘야 함.

 

World Setting 에서

> Lightmass > Lightmass Settings > Volume Lighting Method > Volumetric Lightmap 설정

> Lightmass > Lightmass Settings > Volumetric Lightmap Detail Cell Size : 200 -> 100 

; 200 -> 100 으로 수치를 낮추는 것은 최대 8배 이상의 빌드 시간이 더 걸릴 수 있음.

 > Lightmass > Lightmass Settings > Volumetric Lightmap Maximum Brick Memory Mb : 30 -> 50

; Cell Size 를 줄일수록 Maximum Brick Memory 를 늘려줘야 함

 

볼륨 라이팅 샘플은 멋진 볼류메트릭 포그를 만드는 데도 쓰임

 

노출, 그리고 노출이 라이팅에 주는 영향

PostProcessVolumn에서 

> Lens > Exposure > Exposure Compensation (기본값 : 0.0)

> Lens > Exposure > Min Brightness (기본값 : 0.03)

> Lens > Exposure > Max Brightness (기본값 : 2.0)

> Lens > Exposure > Speed Up (기본값 : 3.0)

> Lens > Exposure > Speed Down (기본값 : 1.0)

 

자동 노출(시간 순응) 설정하는 팁

우선 Min, Max Brightness 를 둘 다 동일한 숫자로 설정해서 고정 노출로 만든 후 (설명에서는 1.0),

- 레벨에서 어두운 영역을 찾은 후, 두 값을 물체가 잘 보이는 값으로 설정(0.1) 

- 씬에서 제일 밝은 곳으로 시야를 돌려서 노출이 적당한 값으로 설정(0.9) 

- Min Brightness : 0.1, Max Brightness : 0.9로 설정함

 

Speed Up은 어두운 곳에서 밝은 곳으로의 명순응, Speed Down은 밝은 곳에서 어두운 곳으로의 암순응을 속도를 나타내며, 숫자가 높을수록 순응 속도가 빨라짐

 

Exposure Compensation 는 전체적인 노출에 지수 범위를 크게 조정할 때 사용. 

- 값이 -1.0 이면 씬 밝기는 절반으로 어두워짐,

- 값이 -2.0 이면 씬 밝기는 1/4로 어두워짐,

- 값이 1.0 이면 씬 밝기는 두배 밝아짐, 

- 값이 2.0 이면 씬 밝기는 4배 밝아짐,

 

 

컬러 블리드 제어

; 광자가 채도가 높은 배경에 부딪혔을 때, 그 색을 받아서 다른 표면에 그 색을 남기게 되는 것, 컬러 바운스라고도 함

 

컬러 블리드를 줄이는 방법

 

- 컬러 블리드를 줄일 재질을 선택 후, GIReplace 노드를 추가해 줌

GIReplace 노드 사용 전GIReplace 노드 사용 후

 

- 다른 방법은 Diffuse Boost 수치를 조정해 줌

Diffuse Boost 를 조정하면 이 재질이 스태틱 라이팅에 기여하는 정도를 조정할 수 있음. 이걸 줄이면 씬의 조명을 덜 받게 되므로 결과물의 사실성이 떨어질 수 있음.

 

 

라이팅 시나리오 활용

고객에게 하나의 공간이 다양한 라이팅 조건 아래서 어떻게 보일지 빠르게 선보이려면 프리컴퓨터드 라이팅 시나리오를 사용한다. 

 

서브 레벨을 만들고 그 안에 시나리오로 변환하려는 다양한 라이팅 구성을 저장한다.

1. Menu > 창 > 레벨 (레벨 창을 연다)

2. 라이팅으로 구성해 놓은 레벨을 서브 레벨로 저장한다. (여기서는 Day_Light, Night_Time 레벨)

콘텐츠 브라우저에 있던 서브 레벨들을 레벨 창으로 클릭 드래그 해줌

3. 서브 레벨을 라이팅 시나리오로 변경해 준다. 

; 라이팅 시나리오를 활성화할 때마다 해당 레벨에 포함되는 라이트맵이 되어서, 보고 있는 퍼시스턴트 레벨에 적용된다. 즉 쉽게 라이팅 구성을 전환하는 것과 동시에 퍼포먼스도 매우 좋게 유지된다. 또한 레벨이 스트리밍 되는 정확한 시점도 블루프린트로 통해 제어할 수 있다.  

 

레벨이 스트리밍 되는 방법 설정

4. 퍼시스턴트 레벨 블루프린트에 다음과 같이 블루프린트를 만든다.

L key를 눌렀을 때 라이트 레벨이 바뀌는 블루프린트

 

고해상도 스틸 이미지 저장

- 고해상도 스크린샷 제어판 사용

원하는 스크린샷 배수 설정한 후 카메라 아이콘 클릭

스크린샷의 크기 배수 옵션으로 스틸이미지 사이즈 조정

- 콘솔 명령어 HighResShot 사용

` 로 콘솔 창을 열고, HighResShot 4096x2160 (원하는 사이즈) 입력 

 

 

강좌 수강 후기

 

- 따라 해 보기 식의 튜토리얼이 아닌, 중요한 이론별로 하나하나 짚어준 느낌.

- 이론과 예제를 함께 보여줘서 이해를 도와줌

- 옵션들을 설정한다고 드라마틱한 결과를 보여주는 게 아닌, 미묘한 차이를 잡아내는 느낌이라 고퀄리티를 요구하는 인테리어 장면을 구성할 때 필요한 것 같음. (익스테리어에서는... 글쎄...)

Toplist

최신 우편물

태그