3D Video Production/Unreal Engine (5.6.1)

UE 5.6 Lighting: Lumen부터 하늘·안개·Post Process까지

보별 2026. 9. 8. 16:55
반응형

언리얼 엔진에서 라이팅을 조절하다 보면 빛의 세기만 바꿨는데도 예상과 다른 화면이 나올 때가 있다.
같은 조명 아래에서도 하늘과 안개, 카메라 노출, Post Process 설정에 따라 장면의 인상이 크게 달라지기 때문이다.

이번에는 Lumen의 계산 방식을 확인하고, Directional Light와 Sky Light를 시작으로 하늘·구름·안개를 조절했다.
이후 Post Process Volume에서 노출과 Bloom, 렌즈 효과를 적용하고, Color Grading과 Film의 Toe로 색감과 어두운 톤을 정리했다.

설정값을 외우기보다는 실제 빛을 바꾸는 기능과 화면의 표현을 조절하는 기능을 구분하는 데 초점을 맞췄다.
영상의 분위기를 다듬을 때 채도와 암부를 어떻게 조절하면 좋을지도 함께 정리했다.

 

Lumen & Ray Tracing

직접광 & 간접광

창문으로 들어온 햇빛이 바닥을 바로 비추는 것은 직접광이다.
그 바닥에서 반사된 빛이 벽이나 천장까지 밝히는 것은 간접광이다.

직접광만 생각하면 햇빛이 닿지 않는 곳은 전부 어두워야 할 것 같지만, 실제 공간에서는 주변 표면에서 반사된 빛이 그늘도 밝힌다.
이런 빛의 상호작용을 계산하는 것이 Global Illumination, 줄여서 GI다.

Lumen은 언리얼의 동적 GI와 반사 시스템이다.
조명이나 오브젝트가 바뀌었을 때 간접광과 반사도 장면에 맞춰 갱신한다.

Ray Tracing을 사용하는 Lumen

Ray Tracing은 광선이 무엇에 부딪히는지 추적해 빛의 영향을 계산하는 방법이다.
Lumen과 Ray Tracing을 서로 완전히 다른 선택지로 나누면 이해가 꼬이기 쉽다.

Lumen은 화면에 보이는 정보를 활용하는 Screen Traces와 함께 Software 또는 Hardware Ray Tracing을 활용한다.

구분 설명
Software Ray Tracing Mesh Distance Field라는 거리 정보를 이용해 광선과 물체의 만남을 계산
Hardware Ray Tracing 지원 GPU의 기능을 이용해 삼각형 기반 장면 추적
Lumen 이런 추적 방법과 캐시 등을 조합해 실시간 간접광·반사를 구현하는 시스템

따라서 “Ray Tracing이 너무 느려서 대신 Lumen을 사용한다”보다는 “Lumen은 실시간 작업에 맞게 여러 추적 방법과 저장된 정보를 활용한다”라고 이해하면 된다.

 

계산용 형태 확인하기: Mesh Distance Fields

Mesh Distance Field는 공간의 각 지점에서 메시 표면까지의 거리를 저장한 데이터다.
단순히 원본 모델의 폴리곤 수를 줄인 Low-Poly 모델과는 다르다.

뷰포트의 눈 모양 메뉴인 Show를 열고 Visualize - Mesh Distance Fields를 활성화한다.
재질이 입혀진 일반 화면 대신 거리장으로 표현한 메시 형태를 확인할 수 있다.

얇은 부재나 작은 구멍이 원본처럼 유지되는지, 붙어 보이거나 사라진 부분은 없는지 살펴본다.
겉으로는 멀쩡한 벽인데 Software Lumen에서 빛이 새는 경우, 계산용 표현에서 두께가 제대로 남아 있는지 확인하는 데 도움이 된다.

Mesh Distance Field는 미리 생성되는 데이터이므로 활성화된 프로젝트에서 에셋을 처음 처리할 때 빌드 시간이 추가될 수 있다.

 

Lumen Card & Surface Cache 확인하기

Card Placement 시각화

Lumen은 메시 표면의 재질과 라이팅 정보를 빠르게 참조하기 위해 Surface Cache를 사용한다.
Card는 메시를 여러 방향에서 캡처하기 위한 위치와 방향을 나타낸다.

콘솔에 다음 명령을 입력한다.

r.Lumen.Visualize.CardPlacement 1

오브젝트 주변에 색이 다른 사각형들이 표시된다.
여러 방향의 카드가 겹치면 박스처럼 보이지만, 충돌 박스나 물체의 Low-Poly 외곽선을 나타내는 것은 아니다.

가까운 화면

가까운 화면에서는 의자 주변에도 카드가 많이 보이고, 멀어진 화면에서는 의자 주변의 표시가 줄고 큰 기둥과 긴 구조물 주변에는 표시가 남아 있다.

멀어진 화면

Lumen은 거리와 장면 내 크기 등을 고려해 처리 대상을 관리한다.
다만 카드 표시가 사라졌다고 해당 물체의 그림자·직접광·반사 계산이 모두 중단됐다고 해석하면 안 된다.
화면에서 확실히 확인되는 것은 카드의 표시 상태가 달라졌다는 점이다.

확인을 마쳤으면 아래 명령으로 끌 수 있다.

r.Lumen.Visualize.CardPlacement 0

Max Lumen Mesh Cards

Static Mesh Editor의 Build Settings - Max Lumen Mesh Cards는 메시의 카드 생성 개수를 조절하는 설정이다.
기본값 12는 “최소 12개가 반드시 배치된다”는 의미가 아니다.

간접광이나 반사에 이상이 있다면 먼저 뷰 모드를 Lumen - Surface Cache로 바꾼다.
분홍색으로 표시된 영역은 Surface Cache가 충분히 덮지 못하는 부분이다.

해당 메시의 Max Lumen Mesh Cards를 늘리고 Apply Changes로 빌드 변경을 적용한 뒤 다시 확인한다.
복잡한 메시에서는 도움이 될 수 있지만, 무조건 높인다고 모든 라이팅 오류가 해결되지는 않는다.
건물 내부 전체를 하나로 합친 메시라면 벽·바닥·천장을 단순한 단위로 분리하는 것이 더 적절할 수 있다.

밝기부터 크게 올리기 전에 진단 화면을 확인하면, 조명이 부족한 것인지 계산용 데이터가 부족한 것인지 구분하는 데 도움이 된다.

 

DirectX 12 & Path Tracing

Project Settings에서 RHI 확인하기

RHI는 언리얼이 그래픽 API와 연결되는 계층이다.
Windows에서 이번처럼 Hardware Ray Tracing과 Path Tracing을 사용하는 작업은 DirectX 12 설정을 확인한다.

Project Settings에서 RHI를 검색하고 Default RHI - DirectX 12로 설정한다.
이어서 Support Hardware Ray Tracing과 Path Tracing 지원 설정, GPU 지원 여부를 확인하고 변경 시 에디터를 재시작한다.

DirectX 12만 선택한다고 모든 Ray Tracing 기능이 자동으로 활성화되는 것은 아니다.
또한 “UE 5.6이면 모든 프로젝트가 같은 설정으로 켜져 있다”거나 “언리얼은 모든 플랫폼에서 DirectX 12만 사용한다”는 뜻도 아니다.

Path Tracing에서 노이즈가 생기는 이유

뷰포트의 View Mode를 Path Tracing으로 바꾸면 현재 시점에서 샘플을 누적하며 이미지를 계산한다.
처음에는 샘플이 부족해 화면이 자글거리지만, 카메라를 멈추면 점차 안정된다.

카메라를 움직이거나 장면을 수정하면 이전 샘플을 그대로 사용할 수 없어 계산이 다시 시작된다.
그래서 이동 중에는 노이즈가 반복해서 보일 수 있다.

이미지의 빨간 네모 안에 보이는 작은 게이지는 Path Tracing의 샘플 누적 진행 상태를 나타낸다.
설정한 Samples Per Pixel에 도달할 때까지 계산이 진행되며, 샘플 누적이 완료되면 진행 막대가 사라진다.

카메라를 움직이면 새로운 시점에서 샘플을 다시 누적하므로 진행 표시와 노이즈가 다시 나타날 수 있다.
카메라를 멈춘 뒤에는 막대의 변화와 함께 화면의 노이즈가 줄어드는 과정을 확인하면 된다.

 

SM_SkySphere & Sky Atmosphere 구분하기

SM_SkySphere는 하늘을 표시하는 데 사용할 수 있는 메시다.
반면 Sky Atmosphere는 대기 산란을 계산해 하늘과 지평선 주변의 색을 표현하는 컴포넌트다.

SM_SkySphere를 가까이서 확대해서 본 모습

Sky Atmosphere로 하늘을 구성한 현재 방식에서는 SM_SkySphere가 없어도 하늘 표현과 라이팅 작업을 진행할 수 있다.
Outliner에서 SM_SkySphere를 숨겨 결과를 비교하고, 이어 Sky Atmosphere도 숨겨 차이를 확인한다.

Sky Atmosphere를 숨겼을 때 배경이 검게 보인다면 현재 씬에서 해당 컴포넌트가 하늘을 표시하고 있었음을 확인할 수 있다.

Sky Atmosphere 삭제 전과 후

화면에 보이는 하늘과 환경광도 구분해야 한다.
하늘 배경을 숨겼더라도 별도의 Sky Light 캡처나 큐브맵이 남아 있다면 오브젝트의 환경광까지 즉시 모두 사라진다고 단정할 수 없다.

 

태양광 조절하기: Directional Light

Mobility를 Movable로 설정하는 이유

Directional Light는 멀리 있는 광원에서 평행하게 들어오는 빛을 표현하며, 주로 태양광에 사용한다.
이번에는 Mobility를 Movable로 설정해 방향과 밝기를 동적으로 조절한다.

Movable은 위치·회전과 조명 속성을 실행 중에도 바꿀 수 있다.
태양 방향을 바꾸면서 Lumen 결과를 확인하거나 시간대 변화를 연출하는 흐름에 적합하다.
모든 Directional Light가 반드시 Movable이어야 한다는 뜻은 아니다.

Atmosphere Sun Light & 하늘 색

Directional Light의 Atmosphere Sun Light가 활성화돼 있으면 해당 조명을 Sky Atmosphere의 태양광으로 사용한다.
기본 환경에서는 활성화된 상태였지만, 새로 배치한 조명에서도 직접 확인해주는 편이 좋다.

Directional Light를 회전하면 빛의 방향과 함께 하늘의 태양 위치, 대기를 통과하는 빛의 경로가 달라진다.
태양이 지평선 가까이 낮아지면 붉거나 주황색인 노을이 나타나고, 높이 있을 때는 푸른 낮 하늘이 나타날 수 있다.

이 변화는 각도만으로 고정되는 색상표가 아니다.
대기 산란과 흡수 설정, 광원의 색도 함께 영향을 준다. 따라서 노을을 만들 때는 태양의 고도부터 맞추고 대기 설정을 조절한다.

Source Angle & 그림자 경계

Source Angle은 광원이 하늘에서 차지하는 각도, 즉 겉보기 크기를 조절한다.
큰 광원은 더 넓은 방향에서 빛이 들어오므로 그림자 경계가 부드러워질 수 있다.

Source Angle을 낮춘 상태와 높인 상태를 비교하면서 의자 다리나 벽의 그림자 가장자리를 확인한다.
작은 값에서는 비교적 또렷하고, 큰 값에서는 반그림자 영역이 넓어지는 방향으로 변한다.
실제 반영 정도는 사용하는 그림자 방식에 따라 다르다.

좌측: Source Angle이 낮은 값 / 우측: Source Angle이 높은 값

물체와 바닥이 맞닿은 부분까지 모두 같은 폭으로 흐려지는 것은 아니다.
광원을 가리는 물체와 그림자를 받는 표면 사이의 거리도 영향을 준다.

Indirect Lighting Intensity

Indirect Lighting Intensity는 해당 조명이 간접광에 기여하는 정도를 조절한다.
값을 높이면 빛이 반사돼 들어가는 실내나 그늘이 더 밝아지는 결과를 얻을 수 있다.

비교할 때는 조명 방향과 노출을 고정하고, 햇빛을 직접 받는 바닥보다 그늘진 벽과 실내를 살펴보면 차이가 잘 보인다.

좌측: Indirect Lighting Intensity가 낮은 값 / 우측: Indirect Lighting Intensity가 높은 값

실제 장면에서는 직접광과 간접광의 균형이 무너지지 않도록 조절하고, 카메라를 움직였을 때 결과가 달라지는지도 확인한다. Lumen의 Screen Traces에서는 간접광 배율을 과하게 바꿨을 때 시점에 따른 차이가 나타날 수 있다.

 

환경광 반영하기: Sky Light

Sky Light는 하늘 등 주변 환경을 캡처하거나 지정한 큐브맵을 사용해 환경 조명을 제공한다.
태양광이 직접 닿지 않는 면을 볼 때 역할을 확인하기 쉽다.

Real Time Capture

Sky Light의 Real Time Capture를 활성화하면 지원되는 하늘과 구름의 변화를 환경광과 반사에 동적으로 반영한다.
태양을 움직여 하늘 색이 바뀐 뒤, 그늘과 반사면에도 변화가 따라오는지 확인한다.

실시간 캡처는 모든 장면 오브젝트를 매 프레임 그대로 촬영한다는 뜻은 아니다.
캡처 대상과 지원 범위가 정해져 있으며, Volumetric Fog는 Real Time Capture에 지원되지 않는다고 한다.

 

Sky Atmosphere로 하늘과 노을 만들기

Rayleigh Scattering Scale

Rayleigh 산란은 공기 분자와 같이 작은 입자에 의한 빛의 산란과 관련된다.
일반적인 지구 대기에서 푸른 하늘을 만드는 중요한 원리이다.

Sky Atmosphere에서 Rayleigh Scattering Scale을 조절하고 하늘 중앙과 지평선 색을 비교한다.
이 값은 산란의 강도를 바꾸는 배율이다.
높이면 반드시 녹색, 낮추면 반드시 파란색이 되는 단순한 색상 조절기는 아니다.

좌측: Rayleigh Scattering Scale이 높은 값 / 우측: Rayleigh Scattering Scale이 낮은 값

Mie Scattering Scale

Mie 산란은 먼지나 에어로졸처럼 공기 분자보다 큰 입자와 관련된다.
Mie Scattering Scale을 높이면 대기 중 빛의 산란이 강해져 뿌연 느낌이나 태양 주변의 밝은 퍼짐이 두드러질 수 있다.

낮추면 상대적으로 맑은 인상을 만들 수 있다.
값을 바꿀 때는 하늘 색만 보지 말고 멀리 있는 오브젝트의 대비와 태양 주변의 밝기를 함께 확인한다.

먼지 농도에 비유하면 이해하기 쉽지만, 실제 먼지 농도를 측정 단위 그대로 입력하는 항목은 아니다.

Absorption Scale

Absorption Scale은 대기층이 빛을 흡수하는 정도를 조절한다.
기본 흡수 설정은 오존의 영향을 근사한다.

값을 높였을 때 특정 색 성분이 더 많이 줄어 하늘이 보랏빛이나 분홍빛으로 보일 수 있다.
다만 이 역시 “보라색을 추가하는 전용 슬라이더”는 아니다. 태양 고도와 Absorption 색상 설정에 따라 결과가 달라진다.

원하는 노을 색에 가까워지는지 확인하면서 조금씩 조절하고, 하늘이 지나치게 어두워지거나 인위적인 색으로 치우치지 않는지 확인해야 한다.

Sky Luminance Factor

Sky Luminance Factor는 하늘 픽셀의 휘도에 색상별 배율을 적용한다.
색 선택기를 사용해 하늘의 밝기와 색조를 직접 조절할 수 있어 최종 분위기를 맞출 때 유용하다.

다만 대기의 물리적 구성을 바꾸는 항목과는 구분한다.
하늘이 원하는 색이 됐는지뿐 아니라, Sky Light가 반영하는 환경광과 오브젝트 색이 어울리는지도 확인해야 한다.

노을을 조절하는 순서

먼저 Directional Light의 고도를 낮춰 태양 위치와 그림자 방향을 정한다.
그다음 Rayleigh로 기본 산란, Mie로 뿌연 정도, Absorption으로 흡수에 따른 색 변화를 확인한다.
마지막에 Sky Luminance Factor로 원하는 화면 분위기를 다듬는다.

모든 수치를 반드시 기본값에서 바꿔야 하는 것은 아니다. 이미 자연스러운 결과라면 필요한 항목만 조절한다.

좌측: Directional Light의 각도만 조절 / 우측: 그외 위에서 설명한 값 수정

노을은 하늘을 붉게 만드는 것만으로 완성되지 않는다.
태양을 받는 면과 그늘의 색 차이가 남아 있어야 공간의 방향감이 살아난다.

 

Volumetric Cloud로 구름 조절하기

Cloud Material 열기

Volumetric Cloud를 선택하고 Material 항목에서 사용 중인 구름 Material Instance를 연다.
구름의 배치와 세부 형태를 조절하는 파라미터를 확인할 수 있다.

Cloud Layout이나 Storm 같은 이름은 구름 시스템 전체의 고정 메뉴라기보다 현재 머티리얼이 제공하는 파라미터 그룹이다.
다른 에셋을 사용하면 이름과 구성도 달라질 수 있다.

엔진 콘텐츠에 있는 원본을 직접 수정하기보다는 프로젝트의 Content 폴더에 복제해 사용하는 것이 좋다.
수정본과 초기 상태를 나눠두면 되돌리거나 비교하기 쉽다.

Cloud Layout으로 큰 형태 정하기

Cloud Layout은 구름 덩어리의 큰 배치를 다루는 그룹이다.
현재 머티리얼에서 제공하는 항목을 확인하며 구름이 차지하는 범위, 덩어리 크기, 분포와 간격 같은 큰 인상을 조절한다.

파라미터 이름과 툴팁을 먼저 읽고 하나씩 변경한다.
색상처럼 보이는 입력 창도 실제로는 여러 수치를 묶어 놓은 벡터 파라미터일 수 있다. RGB가 아니라 다른 의미의 이름이 붙어 있다면 구름 색을 고르는 용도로 해석하지 않는다.

Layout_WindControls

Layout_WindControls는 현재 구름 머티리얼에서 바람에 따른 이동을 조절하는 항목이다.
이동 방향과 속도를 바꾼 뒤 뷰포트의 실시간 갱신이 켜진 상태에서 잠시 관찰한다.

Cloud Shape와 세부 형태

큰 분포가 정해졌다면 현재 머티리얼의 Cloud Shape 그룹에서 가장자리의 잘게 갈라지는 모양과 덩어리 내부의 디테일을 확인한다.
큰 배치와 작은 디테일을 한꺼번에 바꾸면 어떤 설정 때문에 결과가 달라졌는지 구분하기 어렵다.

Storm

Storm 그룹에서는 폭풍우가 다가오는 듯한 먹구름 표현을 조절한다.

값을 바꾼 뒤 구름이 더 짙어지는지, 하늘을 덮는 범위가 넓어지는지 현재 머티리얼의 반응을 확인한다.

구름이 많아 보이는 변화와 어두워 보이는 변화는 서로 다른 결과일 수 있다.
구름 색만 보는 것보다 하늘의 빈 공간, 구름 내부의 명암, 태양광과의 관계를 함께 확인한다.

 

Exponential Height Fog로 안개 만들기

Volumetrics Plugin

Volumetrics 플러그인은 볼륨 표현 관련 예제와 실험적 콘텐츠를 제공한다.

Exponential Height Fog의 기본 Volumetric Fog를 사용하기 위해 별도 Volumetrics 플러그인이 반드시 필요한 것은 아니다.
Volumetric Fog는 Exponential Height Fog 컴포넌트의 옵션이다.

Volumetric Fog 활성화

Exponential Height Fog 액터를 배치하거나 기존 액터를 선택한 뒤 Details에서 Volumetric Fog를 활성화한다.

안개에 조명이 어떻게 산란되는지 확인할 수 있게 된다.
창문이나 구조물 사이로 빛이 들어오는 구도를 잡고, 공기 중에서 밝은 부분과 어두운 부분이 나뉘는지 확인한다.

일반적인 뿌연 배경과 공간 안에 드러나는 빛줄기는 같은 결과가 아니다.
빛줄기는 안개뿐 아니라 빛의 방향과 이를 가리는 구조도 함께 맞아야 보인다.

Extinction Scale

Extinction Scale은 볼류메트릭 안개가 빛을 얼마나 소멸시키는지 조절한다.
흡수와 산란으로 빛이 진행 방향에서 줄어드는 효과를 배율로 조절하는 값이다.

값을 높이면 안개가 빛을 더 강하게 가려 뒤쪽이 덜 보이고, 낮추면 비교적 투명하게 보일 수 있다.
배경이 하얗게 뜨는지만 보지 말고, 가까운 물체와 먼 물체가 얼마나 구분되는지 확인한다.

Fog Density

Fog Density는 안개의 전반적인 밀도 배율이다.
값을 높이면 안개층의 영향이 강해져 원거리 물체의 대비가 줄고, 낮추면 장면이 더 또렷해진다.

좌측: Fog Density가 높은 값 / 우측: Fog Density가 낮은 값

Fog Density로 기본 농도를 잡은 뒤 Volumetric Fog의 Extinction Scale을 조절한다.
두 값을 동시에 크게 바꾸면 원인을 구분하기 어려우므로 하나씩 변경한다.

Fog Height Falloff

Fog Height Falloff는 안개의 높이를 직접 입력하는 값이 아니라 높이에 따라 밀도가 얼마나 빠르게 줄어드는지를 조절한다.

값이 크면 위로 올라가면서 밀도가 더 빠르게 줄어 낮은 곳에 모인 인상을 만들기 쉽다.
값이 작으면 밀도 변화가 완만해져 더 넓은 높이 범위에 안개가 퍼진다.

안개층의 기준 높이를 옮기려면 Exponential Height Fog 액터의 Z 위치도 함께 조절한다.
지면부터 건물 윗부분까지 어떤 높이에서 안개가 옅어지는지 살펴본다.

Directional Light의 Volumetric Scattering Intensity

Directional Light에서 Volumetric Scattering Intensity를 높이면 해당 조명이 Volumetric Fog에 기여하는 정도가 커진다.
전체 안개를 지나치게 짙게 하지 않으면서 빛의 존재감을 강조할 때 활용할 수 있다.

  1. Exponential Height Fog에서 Volumetric Fog를 켬
  2. Fog Density를 낮은 수준에서 먼저 맞춤
  3. 창문이나 구조물 사이로 빛이 지나가도록 Directional Light 회전
  4. Volumetric Scattering Intensity 조절
  5. 카메라에서 빛이 드러나는 방향과 배경 대비 확인

값만 높인다고 창문 모양의 빛줄기가 자동으로 생기는 것은 아니다.
빛을 가리는 형상과 그림자 설정, 시점이 함께 영향을 준다.

안개를 더 많이 넣는 것보다 빛이 지나가는 위치를 정하는 것이 먼저다.
주 피사체의 윤곽이 사라지지 않을 정도로 남겨두면 깊이감을 조절하기 쉽다.

 

Post Process Volume

Post Process Volume, 줄여서 PPV는 화면의 노출과 렌즈 효과, 색 보정 등을 조절하는 액터다.
조명을 배치하는 것과 달리 카메라에 보이는 영상의 처리 방식을 다룬다.

Post Process Volume 적용 범위 설정하기

PPV에는 공간 범위가 있다.
기본적으로 카메라 위치와 볼륨의 블렌딩 범위에 따라 영향이 적용된다.
특정 실내에만 다른 보정을 적용할 때 이런 범위를 사용할 수 있다.

레벨 전체에서 적용하려면 Infinite Extent (Unbound)를 활성화한다.
이후 카메라를 볼륨 밖으로 옮겨도 설정이 유지되는지 확인한다.

Exposure와 EV100으로 밝기 기준 정하기

EV100은 ISO 100을 기준으로 한 노출값을 표현하는 개념이다.
언리얼의 Auto Exposure는 화면 밝기에 따라 노출을 바꿔 눈의 명순응·암순응과 비슷한 변화를 만든다.

Min EV100 & Max EV100을 같게 설정하기

자동 노출이 켜져 있으면 조명을 바꿔도 카메라가 다시 밝기를 보정해 차이를 판단하기 어려울 수 있다.
이번처럼 조명의 영향을 비교하는 실습에서는 노출을 고정해두는 편이 편하다.

PPV의 Exposure에서 Min EV100과 Max EV100의 Override를 켜고 두 값을 동일하게 설정한다.
밝은 곳과 어두운 곳으로 시점을 옮겨도 자동으로 밝기가 따라 변하지 않는지 확인한다.

이는 Auto Exposure 방식에서 자동 적응을 끄는 방법이다.
시네마틱에서 무조건 자동 노출을 금지해야 하는 것은 아니며, 의도적인 적응 연출도 가능하다.

위 두 설정이 반영된 화면

Exposure Compensation

Exposure Compensation은 노출 보정값이다.
현재 노출 방식에서 적용되는 조건을 확인한 뒤 값을 올리면 더 밝게, 내리면 더 어둡게 보정한다.
한 스톱 차이는 선형 노출 배율로 약 두 배 차이에 해당하지만 최종 화면의 픽셀값이 그대로 두 배가 된다는 뜻은 아니다.

이번 작업에서는 Directional Light의 Intensity를 6~10 정도로 조절하고, Exposure Compensation은 낮 장면에서 1, 밤 장면에서 3~4 정도로 작업했다.

다만 이는 당시 장면과 노출 설정에서 사용한 예시이며, 시간대별 권장값은 아니다.
같은 조명 세기라도 고정한 EV100, Sky Light와 다른 광원의 밝기에 따라 결과가 달라지므로 현재 장면을 보면서 조절해야 한다.

밝은 하늘이 전부 하얗게 날아가거나 그늘이 바닥과 구분되지 않을 때는 보정값뿐 아니라 조명의 균형도 함께 확인하면 좋다.

어두운 장면에서 노출만 올리면 노이즈가 생길까?

“광량이 적으면 노출을 올리는 순간 센서 노이즈가 생긴다”는 실제 카메라의 설명을 언리얼에 그대로 적용하면 정확하지 않다.

어두운 영역의 Lumen 간접광, 반사, 볼류메트릭 효과 등에 이미 남아 있던 샘플링 흔들림이나 노이즈가 노출을 높이면서 더 잘 보일 수 있다.
따라서
노출 보정이 기존 렌더링 노이즈를 두드러지게 할 수 있다고 표현하는 편이 적절하다.

문제가 보이면 카메라를 멈췄을 때 안정되는지 확인하고, 간접광·반사·안개 중 어디에서 나타나는지 나눠 살펴본다.
화면이 어둡다는 이유만으로 노출을 계속 올리기보다는 필요한 곳에 실제 빛이 들어오는지도 확인한다.

Bloom으로 밝은 부분의 번짐 조절하기

Bloom은 밝은 부분 주변으로 빛이 번져 보이는 효과다.
태양이나 강한 반사광의 밝기를 화면에서 느끼게 할 때 활용한다.

Bloom Intensity

PPV에서 Bloom Intensity를 조금씩 높이면서 태양 주변과 밝은 바닥을 확인한다.
값이 높아지면 번짐이 강해지지만, 화면 전체가 뿌옇게 보이면 피사체의 윤곽과 대비가 줄어들 수 있다.

좌측: Bloom Intensity가 높은 값 / 우측: Bloom Intensity가 낮은 값

왼쪽 이미지는 밝은 벽과 의자 주변의 빛 번짐이 더 두드러져 화면이 전체적으로 부드럽게 보인다.
오른쪽 이미지는 상대적으로 번짐이 적고, 밝은 부분과 그늘의 대비가 더 강하게 느껴진다.

Threshold

Standard Bloom의 Threshold는 어느 밝기부터 Bloom에 기여할지 정하는 문턱값이다.
높이면 더 밝은 부분 위주로 번지고, 낮추면 상대적으로 어두운 부분까지 참여한다.

Bloom 강도는 마음에 들지만 벽이나 그늘까지 뿌옇게 보인다면 Threshold를 올려 밝은 부분 중심으로 제한해본다.
반대로 넓은 영역에 부드러운 번짐을 주려면 낮춰 비교한다.

Convolution Bloom

Method를 Convolution으로 변경하기

Bloom의 Method를 Convolution으로 바꾸면 커널 텍스처의 모양을 이용한 번짐을 표현한다.
커널에 따라 별처럼 뻗는 빛이나 복잡한 광학적 퍼짐이 나타날 수 있다.

이것은 카메라 영상에서 생기는 광학적 번짐이며, Fog 안에서 공간을 가로지르는 빛줄기와는 다르다.

Convolution은 Standard보다 비용이 높아 시네마틱이나 고사양 환경에 어울린다.
게임에서 절대로 사용할 수 없는 기능은 아니지만, 사용할 때는 화면 효과에 비해 성능 부담이 적절한지 판단해야 한다.

Convolution Scatter Dispersion

Convolution에서는 Standard Bloom의 Threshold가 같은 방식으로 제공되지 않는다.
현재 화면에서 비활성화됐다면 Convolution에 해당하는 설정을 사용한다.

Convolution Scatter Dispersion은 커널의 산란·분산 에너지에 적용되는 강도 배율이다.
높이면 주변으로 퍼지는 효과가 강해질 수 있고, 낮추면 줄어든다.
“어느 밝기부터 효과를 줄 것인가”를 정하는 Threshold와 같은 기능은 아니다.

값을 변경할 때는 태양 중심의 밝기와 주변으로 뻗는 효과를 따로 확인한다.
번짐의 크기와 형태는 커널 및 다른 Convolution 설정에도 영향을 받으므로 이 값 하나가 빛줄기의 길이만 조절한다고 설명하지 않는다.

빛 번짐은 강할수록 좋은 효과가 아니다.
잠시 끈 화면과 비교해 주 피사체가 더 잘 읽히는지 확인하면 강도를 정하기 쉽다.

Chromatic Aberration으로 색수차 표현하기

Chromatic Aberration은 렌즈에서 색이 분리되는 것처럼 오브젝트 경계에 색 번짐을 만드는 효과다.

Intensity를 낮은 값부터 올리면서 화면 가장자리의 창틀이나 기둥처럼 대비가 큰 경계를 살펴본다.
약하게 사용하면 렌즈의 특성을 연출할 수 있지만, 강하면 빨강·파랑 테두리가 눈에 띄어 선명도가 떨어진다.

Dirt Mask로 렌즈 얼룩 표현하기

Dirt Mask는 화면의 특정 위치에서 Bloom이 더 드러나도록 텍스처를 사용하는 효과다.
렌즈의 먼지나 얼룩을 통과한 빛처럼 보이게 할 수 있다.

PPV의 Dirt Mask Texture에 Noise나 얼룩 형태의 텍스처를 넣고 Intensity를 조절한다.
밝은 태양이나 반사광을 향한 시점에서 확인하면 패턴이 잘 드러난다.

화면 전체에 큰 얼룩·노이즈 패턴이 강하게 보이고, 밝은 부분이 넓게 번져 있는 것을 확인할 수 있다.

실제 공간에 먼지 입자나 Fog를 생성하는 기능은 아니다.

Local Exposure로 밝은 곳과 어두운 곳 조절하기

Local Exposure는 화면의 밝기 구조를 고려해 영역별 노출을 조절하는 기능이다.
창밖은 밝고 실내는 어두운 장면처럼 한 화면 안의 밝기 차이가 큰 경우 활용할 수 있다.

Highlight Contrast와 Shadow Contrast를 하나씩 바꾸며 창밖 하늘의 디테일과 실내 그늘이 얼마나 유지되는지 확인한다.
두 값을 모두 올리면 좋아지는 방식으로 접근하지 않고, 기본 상태와 비교해 필요한 밝기 차이를 남긴다.

밝은 하늘을 살리려고 전체 노출을 낮췄더니 실내가 보이지 않는 상황이라면 이런 국소 조절을 검토할 수 있다.
반대로 너무 과하게 보정하면 밝고 어두운 영역의 관계가 부자연스러워질 수 있으므로 경계와 전체 대비를 함께 확인한다.

Lens Flare로 광학적 반사 연출하기

Lens Flare는 강한 광원을 향할 때 렌즈 내부 반사처럼 보이는 광학적 효과를 만든다.
Bloom이 밝은 곳 주변으로 번지는 느낌이라면, Lens Flare는 별도의 빛 얼룩과 보케 형태가 나타나는 것이 특징이다.

Intensity로 강도를, Bokeh Size로 보케의 크기를 조절한다.

태양과 별개로 노란색 다각형 빛 얼룩들이 화면 왼쪽에 이어져 있다.
의자나 기둥 표면에 붙은 빛이 아니라 화면에 겹쳐 보이는 렌즈 효과라는 점을 확인할 수 있다.

Vignette로 시선 정리하기

Image Effects의 Vignette Intensity를 높이면 화면 가장자리가 어두워진다.
중앙과 주변의 밝기 차이가 생겨 시선을 중심부로 모으는 데 사용할 수 있다.

값을 조금씩 바꾸며 주 피사체에 시선이 모이는지 확인한다.
구도상 중요한 물체가 모서리에 있다면 비네트 때문에 오히려 덜 보일 수 있다.

 

Color Grading으로 색감 마무리하기

Temp & Tint

Temp는 화이트밸런스의 색온도 축을, Tint는 녹색과 마젠타 방향의 치우침을 조절한다.
화면이 지나치게 차갑거나 특정 색으로 기울어졌을 때 사용한다.

PPV에서 해당 항목의 Override를 켠 뒤 흰 벽이나 회색 바닥처럼 기준이 되는 면을 보면서 조절한다.
태양광의 색을 바꾸는 것과 화면 전체의 화이트밸런스를 바꾸는 것은 구분한다.

Global & Shadows

Global은 전체 색조 범위에 적용하고, Shadows는 어두운 톤 영역을 중심으로 적용한다.
여기서 Shadows는 그림자 판정을 받은 오브젝트만 선택하는 기능이 아니다.
화면에서 어두운 재질이나 밝기 영역도 영향을 받을 수 있다.

먼저 Global에서 전체 분위기를 맞추고, 어두운 부분만 너무 붉거나 차가운 경우 Shadows를 조금 조절한다.
이때 밝은 영역까지 함께 달라지는지 살펴보고 전체 균형을 다시 확인한다.

Saturation

Saturation은 색의 선명한 정도, 즉 채도를 조절한다.
높이면 색이 더 강해지고 낮추면 무채색에 가까워진다.

노을이 이미 강한 주황색과 분홍색으로 표현된 경우에는 채도를 올리는 것보다 조금 낮추는 편이 재질 구분에 도움이 될 수 있다.
벽과 바닥이 모두 같은 색 덩어리처럼 보이지 않는지 확인한다.

Contrast

Contrast는 밝고 어두운 부분의 차이를 조절한다.
값을 바꾼 뒤 햇빛을 받는 벽과 그늘진 의자가 얼마나 분리되는지 확인한다.

대비를 높이면 형태가 또렷해질 수 있지만, 밝은 곳과 어두운 곳의 디테일이 줄어들 수 있다.
밝은 부분만 보고 결정하지 말고 그늘의 재질도 함께 살펴본다.

Gamma

Gamma는 중간 밝기 영역의 표현을 조절하는 데 사용한다.
중간톤이 너무 눌리거나 떠 보일 때 조금씩 변경하고, 노출 변화와 어떤 차이가 있는지 비교한다.

조명 부족을 해결하기 위해 Gamma만 크게 바꾸기보다는 먼저 광량과 노출 기준을 확인한다.
영상 편집 프로그램의 감마 설정이나 출력 색공간을 바꾸는 작업과도 구분한다.

 

영상의 분위기를 정리하는 Color Grading

영상 제작에서 Color Grading은 컷 사이의 색과 밝기를 맞추고, 작품의 분위기를 정리하는 중요한 마무리 과정이다.
개별 화면이 좋아 보여도 이어지는 컷마다 색온도와 채도가 다르면 영상 전체의 통일감이 떨어질 수 있다.

색 보정은 반드시 언리얼의 PPV에서 전부 끝내야 하는 것은 아니다.
언리얼에서 기본적인 분위기를 맞추고, 영상 편집이나 색 보정 프로그램에서 최종적으로 조절할 수도 있다.

중요한 것은 효과를 강하게 적용하는 것보다, 장면마다 주 피사체가 잘 보이고 색의 흐름이 자연스럽게 이어지는지 확인하는 것이다.

채도를 낮춰 장면의 색 정리하기

씬 전체의 채도가 지나치게 높으면 서로 다른 에셋의 색이 경쟁하거나, 재질 사이의 색 차이가 과장돼 보일 수 있다.
이때 Global의 Saturation을 조금 낮추면 튀는 색이 줄어들면서 화면이 차분하게 정리될 수 있다.

다만 채도를 낮춘다고 모든 부족한 부분이 해결되는 것은 아니다.
색의 부조화는 덜 눈에 띌 수 있지만, 모델링의 실루엣이나 반복되는 텍스처, 어색한 조명 방향은 그대로 남는다.

먼저 전체 채도를 조금 낮춰 비교하고, 문제가 특정 재질에만 있다면 해당 Material의 색도 함께 확인한다.
주 피사체의 색까지 약해져 배경과 구분되지 않는다면 전체 채도를 너무 많이 낮춘 것은 아닌지 살펴본다.

색을 조금 덜어냈을 때 오브젝트끼리 경쟁하던 느낌이 줄어들 수 있지만, 장면에서 강조할 색까지 사라지지 않도록 균형을 맞추는 것이 좋다.

영화적인 색감과 합성의 관계

차분하거나 절제된 분위기를 만들기 위해 채도를 낮추는 연출을 사용할 수 있다.
하지만 영화라고 해서 항상 현실보다 채도를 낮추는 것은 아니다.
작품의 장르와 미술 방향에 따라 강한 색을 적극적으로 사용하기도 한다.

따라서 영화적인 화면을 만들고 싶다면 채도만 줄이기보다, 전체 색의 조합과 밝고 어두운 영역의 대비를 함께 확인한다.

실사 영상과 CG를 합성할 때도 채도를 낮추는 것 자체가 목적은 아니다.
배경과 CG의 밝기·색온도·채도·대비가 어울리도록 맞추는 것이 중요하며, 그 과정에서 필요한 경우 채도를 낮추거나 높인다.

Shadows에서 어두운 영역의 색조 조절하기

Global에서 전체 색을 맞춘 뒤, 어두운 영역의 색이 어색하다면 Color Grading의 Shadows를 조절한다.
Shadows는 실제 그림자만 선택하는 기능이 아니라 화면의 어두운 톤 범위를 대상으로 한다.

예를 들어 Shadows의 Gain 색상 휠을 중심에서 아주 조금 움직여 원하는 색조를 더할 수 있다.
HSV 입력을 사용할 때는 Hue가 색의 방향을, Saturation이 색의 강도를 정한다.
무채색 상태에서는 Hue만 바꿔도 차이가 보이지 않을 수 있다.

따뜻한 빛을 받는 면과 구분하고 싶다면 어두운 영역에 푸른 기운을 약하게 더하는 식으로 비교한다.
이것도 정해진 공식은 아니므로, 회색 벽이나 검은 재질이 불필요하게 물들지 않는지 확인한다.

Film의 Toe로 어두운 톤 조절하기

Toe는 톤매퍼 곡선의 어두운 영역을 조절하는 항목이다.
조명의 세기를 바꾸는 대신, 어두운 밝기들이 화면에서 검정으로 이어지는 방식과 대비를 바꾼다.

PPV에서 Film - Toe의 Override를 활성화하고 값을 조절한다.

Toe 값 변화
0.3 기본값보다 어두운 톤이 덜 눌리고, 암부가 상대적으로 밝고 부드럽게 보일 수 있다.
0.55 공식 기본값으로, 변화의 기준으로 삼기 좋다.
0.8 어두운 톤이 더 강하게 눌려 대비가 강조되고, 암부 디테일이 덜 보일 수 있다.

0.3과 0.8은 차이를 확인하기 위한 비교값이며 권장값은 아니다.
노출과 다른 Film 설정에 따라 결과가 달라지므로, 같은 카메라에서 그늘진 벽과 어두운 재질을 비교한다.

Toe를 높여 묵직한 인상을 얻더라도 의자나 창틀이 검은 덩어리처럼 뭉개진다면 값을 낮춰 다시 확인해야 한다.

Film 설정은 프로젝트 전체의 기본 톤을 정하는 용도로 사용하고, 컷마다 필요한 미세한 보정은 Color Grading에서 처리하는 편이 좋다.

 

이번 포스트 작성 범위에서 확인할 라이팅 작업 순서

설정창의 배치 순서대로 모든 효과를 켤 필요는 없다.
이번에 다룬 기능만으로 작업한다면 다음 순서가 비교하기 편하다.

  1. 최종 카메라를 정하고 PPV의 적용 범위 확인
  2. 노출을 고정해 비교 기준을 만듦
  3. 필요한 경우 Film의 기본 톤을 정하고 컷마다 일관되게 유지
  4. Directional Light의 방향과 밝기로 명암을 정함
  5. Sky Light 캡처와 환경광을 확인
  6. Sky Atmosphere에서 시간대와 대기감을 맞춤
  7. 구름의 큰 배치·디테일·이동을 조절
  8. Fog 농도와 빛의 산란 조절
  9. 이상한 간접광은 Lumen 진단 화면으로 확인
  10. Bloom과 필요한 렌즈 효과 적용
  11. Local Exposure와 Color Grading으로 마무리; 채도와 Shadows 색조 정리

영상에서는 정지 화면뿐 아니라 카메라 이동 중의 노출 변화, 간접광 갱신, 안개와 구름의 시간 변화도 확인하는 게 좋다.

 

이번 라이팅 작업에서는 Lumen의 계산용 표현을 확인한 뒤 태양광·환경광·하늘·구름·안개를 차례로 조절했다.
PPV에서는 노출과 렌즈 효과를 설정하고, Color Grading의 채도·암부 색조와 Film의 Toe를 비교하며 화면의 분위기를 다듬었다.

같은 밝기 변화처럼 보여도 조명을 조절하는 것과 노출이나 톤을 보정하는 것은 역할이 다르다.
채도를 낮추거나 어두운 부분을 강하게 눌러 분위기를 만들 때도, 주 피사체의 색과 재질 디테일이 남아 있는지 확인해야 한다.

한 번에 여러 항목을 바꾸기보다 같은 카메라와 노출에서 하나씩 비교하면 원하는 결과에 가까워지기 쉽다.
정지 화면의 인상뿐 아니라 카메라 이동과 컷 전환에서도 색과 밝기가 자연스럽게 이어지는지 확인하며 마무리하면 된다.