Unity/최적화

[Unity/최적화] Unity Korea Youtube - Baked Lighting

sorry0101 2023. 4. 10. 17:26

https://youtu.be/J4iVXAYaJfQ

  • 실시간 라이팅과 shadow는 비싼 연산
    • hard 는 한번만 샘플링, soft는 경계를 부드럽게 하기 위해 여러번 샘플링
    • gi는 매우 비싸기 때문에 미리 구워놓는다
    • lightmap: 빛을 텍스쳐로 만든것
    • (19:00)ambiant occultion : on 하면 입체감 있게 표현가능
    • (34:00) 다른 것보다 shadowmask가 더 자연스럽게 이어진다, 미리만든 텍스쳐 + 실시간 연산, 맵이 커지면 퀄이 낮아지기 때문에 밸런스가 중요
    • DistanceShadowMask: 성능 조절을 위한 기능, 가까이 있는건 제일 자연스러워보이고 멀리 있는건 어색해보이나 성능을 높일 수 있음

  • 좁은 씬에 2048일때 6장이면 모바일에서 큰 편, 회사마다 다르므로 내부 회의 필수
  • Format도 잘 따져봐야함, 요즘에는 ASTC로 많이 사용함
  • LigthMap 이 좋은 솔루션이고 퀄리티를 높이는데 필수적으로 볼 수 있으나 꽁짜는 아니라는것을 명심
  • light Probe
    • 동적인 오브젝트 타겟
    • lightmap : 표면에 대한 정보
    • lightProbe : 공간에 대한 정보
    • 이동할때 probe 끼리 보간을 해줌
    • 작은 오브젝트들을 map으로 하게 되면 비싸지기 때문에 제외하고 probe를 사용할 수도 있음, 이런것들을 고려해야함
    • 정답은 없으므로 보고 고려를 해야함
    • 오브젝트의 mesh Renderer을 light map으로 할건지 light probe로 할건지 잘 정해야 성능 향상
    • 프로젝트마다 다르기 때문에 고민이 필요
    • 하이어라키 정리를 잘해두면 일괄로 수정이 쉬워짐!
    • light map은 텍스쳐라는 명확한 데이터가 있으나 light probe는 구면조화함수를 사용함(어려운 내용;).

 

- Reflection Probe : 반사의 정보를 텍스쳐로 저장하는 것

light Probe를 몇개 해도 숫자라 괜찮지만 relection probe는 Cubemap Texture 이므로 6장의 이미지가 사용되고 메모리 이슈가 발생하기 쉽다.

저장 용량, 메모리가 많이 발생.

텍스쳐(UV)를 샘플링해오는 것

mip map 이 높으면 선명, 낮으면 흐릿

결론 : Cubemap Texture이고 해상도가 높을수록 메모리 이슈가 발생함.

계산 방식 : ex) 128 -> 128 * 6 * 2