라이트 매핑(Light Mapping)
2023. 8. 30.

랜더링 파이프라인

https://rito15.github.io/posts/rendering-pipeline/

공간 변환 => 행렬 연산을 이루어짐

전역조명(Global Illumination)

-3D Geometry에서 직접 광원과 다른 물체에 반사된 간접 광원 및 그림자를 랜더링해 좀 더 사실적인 조명을 구현하는 것

Local vs Global

조명 모드

-유니티에서 제공하는 조명은 Realtime, Mixed, Baked 세 가지가 있다.

 

Realtime

-실시간 조명 설정 : 씬에 직접 광을 적용해 매 프레임 조명연산 후 화면을 업데이트

 

Mixed

-Lighting Mode 옵션에 따라 달라진다.

 

Baked

-런타임 시 조명 연산 처리를 하지 않는 조명. 

-정적인 물체에 전역조명과 그림자 생성/ 동적인 물체에는 Light Probe로 조명효과 적용

 

라이트 매핑(Lightmapping)

-씬에 배치된 모든 3D 모델에 영향을 미치는 조명을 텍스처로 미리 만드는 과정

+) 라이트맵(Lightmap) : 라이트 매핑을 통해 결과로 만들어진 텍스트 파일

 

UV mapping

- 프로젝트의 3d 모델링 프로세스에서 3D 모델의 표면을 텍스처 매핑을 위한 2d 이미지로 만드는 과정

 

uv maping

Generate Lightmap UVs 옵션

-라이트 매핑을 적용하려면 외부에서 임포트한 3d 모델의 UV를 설정해야한다.

Import Settings> Generate Lightmap UVs 옵션

Contribute GI 플래그

Static> Contribuet GI

-라이트매핑을 하려면 라이트 매퍼에 그 대상을 알려줘야한다.

=> Contribute GI 플래그를 체크하지 않으면 라이트 매핑 대상에서 제외된다.

 

라이팅 뷰

-Windows> Rendering > Lighting

-auto generate 옵션을 체크하고 베이크된 라이트맵은 캐시에 저장된다. 이 캐시를 GI Cache라 한다. 

=> 체크하면 계속 바뀔때마다 새로 베이크해 느려지므로 주의하자.

-실행 파일에 라이트맵을 함께 배포하려면 auto generate 옵션을 끄고 수동으로 Bake해야한다. 캐시에 저장된 라이트맵은 실행파일에 저장되지 않고 유니티 에디터에서만 확인할 수 있기 때문이다.

 

Progressive 라이트매퍼

-Path tracing 기반의 라이트 매퍼로 라이트맵과 라이트 프로브를 점진적으로 베이크하는 기능을 제공

 

area Light는 실시간 조명이아니다.

간접조명 효과를 내는데 효과적이다.

 

라이트 프로브 - 라이트맵을 베이킹할때 해당 라이트 프로브에 주변부의 광원데이터를 미리 저장함

=>근처를 지나는 동적 객체에 광원 데이터를 전달해 해당 객체의 색상을 보간시켜 실시간 조명과 같은 효과를 내는 방식

라이트 프로브 적용 후

 

myoskin