언리얼(Unreal) 라이트(Light)

Six Root·2022년 9월 29일
0

언리얼 엔진 공부

목록 보기
6/15

라이트(Light) 시스템

라이트(Light)의 종류

Directional Light

위치값은 없고 똑같은 방향성만 있는 라이트
intensity 빛의 강도
light color 빛의 색깔
실시간 엔진에서의 조명의 특징 Cast Shadow
굳이 그림자 계산이 필요없는 조명같은경우는 Cast Shadow를 꺼라 (최적화를 항상 신경써)

Point Light

방향은 상관없고 위치만 중요
중심에서 처음 100%를 비추지만 중심과 멀어질수록 약해지고 범위 끝에 가면 0이 된다
1000유닛 = 10m 쯤

Spot Light

위치, 회전 다 중요
Attenuation Radius 범위 조절
Outer Cone Angle 콘의 바깥의 각도 조절 (Outer Cone: 범위까지 점점 어두워지는 조명)
Inner Cone Angle 콘의 안쪽 각도 조절 (Inner Cone: 범위까지 빛의 세기가 100%인 조명)
Inner 100% 부터 Outer 범위 0% 까지

Rect Light

포인트라이트처럼 범위까지 비추지만 노란색 판 뒤쪽으로는 빛을 비추지 않음.
주로 모니터 TV 빛 표현.
Source --- 라이트의 크기 조절
Barn Door 노란 판의 각도
Soutce Texture 주로 모니터 간판 TV 이미지

Sky Light

하늘이 없으면 효과가 없다
Sky Atmosphere 실제로 하늘을 보는 것처럼 표현 대기권의 입자가 반사되며 보이는 파란색 원리 시뮬레이션. 태양이 필요(Directional Light)

실시간 엔진에서의 빛은
빛을 나눈다 한번에 다 계산하기 어렵다
-직접광: Directional Light
-간접광: 튕겨나오는 빛 어떻게 실시간으로 계산, 표현하지? 라이트매스, 루멘 최적화
(모바일과 VR은 현재 안됨) 루멘을 키면 라이트매스는 자동으로 꺼짐.
-SkyLight: 하늘을 통해서 나오는 빛

라이트매스

전통적으로 라이트를 계산하는 방식
매쉬도 태양도 고정되있다면, 간접광을 칠해놓고 이미지 파일에다가 매쉬에 덮어놓으면 되지 않을까? 그림자도.
먼저 계산해서 이미지를 만들어 놓는다. 이미지를 라이트 맵이라 한다.
라이트맵은 UV맵을 하나 더 생성해서 UV 좌표에 그 간접광을 칠해놓는다.
해당 매쉬와 라이트를 Static으로
그림자가 그려지는 ex)평면 의 Overridden Light Map Res 체크 하고 해상도를 맞춰
Preview 가 뜨는 이유는 구워야 하는 라이트라고 알려주는 것, 빨간 경고문구도 마찬가지
라이트와 오브젝트를 모두 Static 으로 설정하고 빌드 -> 빌드 전체 선택하면 라이트매스 작동

라이트맵 해상도

Lightmap Resolution (라이트맵 해상도)는 구워진 라이팅에서 스태틱 라이트로 인해 생기는 부분의 디테일을 조절할 수 있습니다.

스태틱 메시 컴포넌트에서, 라이트맵 해상도는 스태틱 메시 애셋에 설정되거나, Override Lightmap Res (라이트맵 해상도 덮어쓰기) 체크박스를 체크한 다음 값을 설정하면 됩니다. 값이 클 수록 해상도가 높아지지만 그에 따라 빌드에 걸리는 시간과 차지하는 메모리도 늘어납니다.

브러시 표면에서, 라이트맵 해상도는 Lightmap Resolution (라이트맵 해상도) 프로퍼티를 통해 설정합니다. 실제로는 밀도 설정이라, 값이 낮으면 더욱 높은 해상도가 나옵니다.

Movable

완벽히 동적인 빛과 그림자를 드리우며, 위치나 방향, 색, 밝기, 감쇠, 반경 등 그 모든 프로퍼티를 변경할 수 있습니다. 여기서 나오는 라이트는 라이트 맵에 구워넣지 않으며
그림자를 드리우도록 설정된 무버블 라이트는 전체 씬 다이내믹 섀도를 사용하기에 퍼포먼스 비용이 엄청납니다. 퍼포먼스에 가장 큰 영향을 끼치는 부분은 라이트에 영향받는 메시의 갯수와, 해당 메시의 트라이앵글 수 입니다.

Stationary

한 위치에 머물되, 밝기나 색과 같은 것은 바꿀 수 있는 라이트
그러나 밝기를 실행시간에 바꿔도 직사광에만 영향을 끼친다는 데 유의해 주십시오. 간접(반사)광은 라이트매스에서 미리 계산되므로 변하지 않습니다.
라이트맵을 사용 가능하고 움직이는 개체의 그림자가 영향을 줌
Directional Light 만 Stationary로 해놓는 편.
구워진 라이트맵 데이터를 지우고 관리하고 싶으면
월드세팅 라이트매스 라이트매스 세팅 Advenced 라이트맵 에서 확인 가능
스테이셔너리는 조명을 한 매쉬당 4개 이상 겹칠 수 없게 해놓음.
가급적 조명이 겹치지 않게 하는 테크닉이 필요
퀄리티 최고, 변화가능성 중간, 퍼포먼스 비용 중간입니다.

Static

변화하지 않는, 정적인 이라는 뜻을 가지고 있다.
특징
1. 라이트매스를 사용해 조명과 그림자 정보를 포함하는 텍스쳐인 라이트 맵을 렌더링.
2. 동적 오브젝트에 빛을 적용하거나 그림자 투영 불가능.
3. 라이트 액터의 광원 반경 Radius 속성을 변경해 정적 그림자 가장자리의 부드러운 정도를 조절 가능.
(단, 라이트매스를 활용해 라이팅을 빌드해야 해당 효과를 확인할 수 있음.)
4. 라이트 수에 제한이 없이 사용 가능.
5. 스페큘러 specular 하이라이트에 영향을 주지 않음.
퀄리티 중간, 변화가능성 최저, 퍼포먼스 비용 최저입니다.

라이팅 실습

스튜디오 라이팅 실습

카메라 조종 방법
cinematic -> cine camera actor -> pilot 'camera name'
너무 밝으면 '하얗게 탄다'고 현업에서 표현
너무 어두우면 '시커멓게 탄다'고 표현
내용이 잘 보이게끔 조절하는게 좋음.

조명 색깔 작업할땐 game setting 항목을 꺼줘야 함. 뷰포트만 꺼짐.
카메라 프리뷰에서 끄려면 프로젝트세팅 랜더링 디폴트세팅 오토익스포져 끔.

3점 조명 (Three-point lighting)
3점 조명은 비디오, 영화, 사진, 컴퓨터 그래픽과 같은 시각 매체에서 쓰이는 기본적인 조명 방법이다. 3점 조명을 통해서, 직광이 만든 그늘과 그림자를 조절하여 원하는 대로 사물이나 사람에게 빛을 비출 수 있다. 주광은 물체를 앞쪽에서 직접 비추어, 주된 역할을 한다.

Key Light

Fill Light

Back Light

Three-point Light

피사체 초점 맞추고 뒤에 다 날려서 원근감을 살리고 싶다면
카메라 디테일 렌즈세팅 min fstop=0 current aperture 0.1 포커스세팅 메뉴얼포커스디스턴스 스포이드 하고 Draw Debug Focus Plane 체크하면 보라색 박스 피사체에 맞게 조절

외부 라이팅 실습

SktAtmosphere 디테일
Rayleigh 대기중 수증기 포화도? 투명한 대기 산란, 빛의 확산
Mie 빛의 흡수.
Absorption 극지방 표현. 해당 색을 흡수

Exponential Height Fog 공기원근법을 표현할 수 있음
Volumetric Fog 공기중의 수증기가 태양빛을 확산시킴 뿌옇게 됨 가로등 불빛

Light Shaft Occlusion, Bloom 둘다 키면 갓레이 표현 가능. 무거움

3선 Stats Engine FPS Unit 확인하면서 작업해야 무거운지 확인 가능

SkyAtmosphere가 있으면
Volumetric Cloud 구름이 생성, 무거워서 모바일 VR에서 사용은 어려움
구름도 머티리얼로 표현됨.

플러그인을 사용하는 방법
컨텐츠 브라우저 -> 세팅
show engine
show plugin
Plugin 폴더 -> Volumetric Contents -> Sky -> Materials -> 머티리얼 드래그 해서 적용
tools -> blueprint -> BP_CloudMaskGenerator 레벨 설치 -> BP_CloudMask_Object 레벨 설치
Object 디테일 패널에서 크기 위치 조절 해서 배치
구름을 가볍게 인위적으로 원하는 위치에 배치할 수 있다는 장점

BP_Sky_Sphere 구 메쉬 안쪽에 그려냄. 가벼움. 싸다. 전통적인 방법. 모바일에서도 가능.
SkyAtmosphere를 안써도 된다.
단점
태양과 실시간 동기화 안됨. 안에서 따로 태양을 만들어 내야 함. 하늘에 태양을 그린것 뿐
Sun Height로 태양 높낮이 조절
임의로 하늘을 색칠해서 그려놓는다라고 이해하면 좋음

UE4 Atmospheric Fog -> UE5 Sky Atmosphere로 바뀜. =UE5 Atmospheric Fog
UE4 Atmospheric Fog 에서는 디테일 메뉴가 다름.

마켓플레이스 Dynamic Volumetric Sky 인스턴스만 조절해서 다양하게 조절 가능하게 해놓음. 날씨별로도 프리셋으로 설정해놔서 자동으로 조절됨.

밤씬
밤도 조명이 있음. 태양이 없는게 아니다.
영상에서도 밤인데 밝게 표현함. 완전 깜깜하지 않음.
게임에서도 유저들은 밤씬을 원하지 아무것도 안보이는 새까만걸 원하지 않는다.

Directional Light, Sky Light intensity 값 낮추면 어두워짐
밤은 보통 푸른 느낌
빨간색은 진출색 앞으로 튀어나오는 느낌
푸른색은 후퇴색 차분하지만 가라않은 느낌 뒤에 있는 느낌. 호러는 완전 검푸름
라라랜드같은 밤은 보라색 느낌.
Directional Light 의 빛의 색을 파란색 계열로
새까만 부분이 없게 intensity를 조절

어떤 레벨이든 directional Light, Sky Light 는 반드시 있어줘야함. 안그러면 시커매
생까망 생하양은 왠만하면 안쓰는게 좋다. 눈에 너무 잘 뗘
모자란 빛을 보충해서 그리는 것
다른사람에게 꼭 확인을 받아보는게 좋다. 내 눈이 적응되서 제대로 보지 못할 수 있음.

유저가 집중하지 않는 부분, 가지 않는 부분은 굳이 퀄리티를 높일 필요가 없음.
라이트 매스를 활용하는데 있어서 이 부분은 굉장히 중요한 부분이다 라고 지정해주는 것
LightmassImportanceVol
빌드 시 오래걸리는 시간을 효율적으로 낮춰주는 역할을 함.

world setting
Lightmass setting - indirect Lighting Bounces 몇번 튕긴 빛까지 계산할건지
영역 바깥은 무조건 한번만 튕기는걸로 계산

실시간처럼 똑같이 나오진 않는다. 최적화를 위해서
원하는 분위기를 얻기 위해 계속 수정해야 한다.
그래서 제일 마지막에 작업하곤 한다.

빌드 라이팅퀄리티 퀄리티를 Preview부터 조금씩 올려가며 테스트

Sphere Reflection Capture 영역안에 있는 구체에 반사된 엑터가 다 보임.
반사도 최적화를 할 수 있다.
반사가 없으면 굳이 안넣어도 된다. 실사감을 극대화 하기 위해서 사용

profile
언리얼 전문가가 될 때까지 (중요한 건 꺾이지 않는 마음)

0개의 댓글