[Unity] LightMap

윤주원·2025년 6월 25일

유니티

목록 보기
5/5
post-thumbnail

라이트 맵 Light Map

  • 오브젝트가 빛을 받을때 어떻게 보일지를 미리 그려둔 텍스처
    • 동작은 물체의 표면 위에 데칼을 입히는 것으로 이해
    • 데칼: 스티커처럼, 이미지를 오브젝트 표면에 붙여서 외관을 변경하는 기법
  • 빛 계산은 비용이 크게 듬
  • LightMap을 활용하여 실시간 연산량을 줄임
  • Window - Render - Light
    1. new로 새로 만들기
    2. Environment - Source - Color 후 색 조절
    • GI는 매우 높은 처리량을 요구함 따라서 LightMap과 여러 대안을 함께 사용
    • 실시간베이크된 GI의 두 종류가 있음
    • 둘 다 움직임이 고정된 오브젝트에만 적용됨!
    1. Scene - Realtime Lighting,Mixed Lighting

실시간 GI(RealTime Global Illumination)

  • 빛의 세기와 방향의 변화를 간접광에 실시간으로 반영
  • 라이트맵을 여러 방향에 대해 생성
  • 여러 움직임 정보를 미리 계산해서 저장
  • 오브젝트 표면에 들어오는 빛의 방향 등이 달라져도 어떻게 반사되는지를 적은 비용으로 추측 가능
  • 이를 사용해도 미리 계산해야되기에 베이크를 해야됨, 즉 Precomputed realtime GI라고 함

베이크된 GI (Baked Global Illumination)

  • 고정된 빛에 의한 간접광들을 라이트맵으로 구워 오브젝트에 미리 입힘
  • Bake는 realtime보다 표현과 런타임 성능이 좋음
  • but 빛의 방향이 달라지면 간접광에 반영이 안됨
  1. Bake Indirect
    • 간접광만 구워서 미리 계산
    • 직사광과 그림자는 실시간으로 처리
  2. Shadowmask
    • 간접광을 위한 Lightmap외에 그림자맵을 추가로 구워서 사용
    • 실시간 그림자와 미리 구워진 그림자가 자연스럽게 합성
  3. Subtractive
    • 간접광, 직사광, 그림자까지의 하나의 라이트맵에 모두 구움
    • 실시간과 구워진 그림자가 자연스럽게 합성 불가
    • 가장 성능이 좋음

Light 컴포넌트의 설정

  • Baked mode : 미리 라이트 맵에 굽는다

    • 아래 해당사항은 그림자를 굽지 못함
      • Bake 전에 없던 오브젝트
      • 움직일 수 있는 오브젝트
    • 런타임 도중 밝기나 컬러를 변경 못하고 강제로 해도 안됨
  • RealTime mode:

    • Bake와 달리 움직이거나 생성된 오브젝트의 그림자도 그림
    • but 질감이 떨어질 수 있음
  • Mixed mode: 실시간과 베이크 사이의 동작

    • 가볍거나 동적 게임은 RealTime, 무겁거나 정적은 Bake로 적용
    • 설정을 런타임에서 변경할 수 있음
  • GI는 static 오브젝트에서 Contirbute GI가 활성화된 오브젝트에 적용

profile
안녕하세요

0개의 댓글