6.0 프로젝트를 6.1로 마이그레이션 하면서 6.1 에서 추가 된 여러가지 중에서
LIGHTMAP_BICUBIC_SAMPLING
ReflectionProbeAtlas
이 두 가지에 대해서 간단히 기록 해 보자면....
LIGHTMAP BICUBIC SAMPLING
정말 이녀석은... 2018년 베이커리 플러그인에서 구현되었던 것인데... 2025년인 지금에야 유니티 공식버전에 추가 되었다. 너무한다.
LIGHTMAP_BICUBIC_SAMPLING은 3D 컴퓨터 그래픽스와 게임 엔진에서 라이트맵의 시각적 품질을 향상시키는 고급 샘플링 기법으로 소개되었는데 특히 저해상도 라이트맵 텍스처에서 눈에 띄는 계간 현상을 이 셈플링을 통해 완화시킬 수 있다.
https://gist.github.com/AlpyneDreams/17e5e8b8b686eca659917a61d4a0b0d3
Source Bicubic Lightmap Sampling
Source Bicubic Lightmap Sampling. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
대표적인 장점을 보면...
- 계단 현상 감소: 저해상도 라이트맵에서 나타나는 픽셀화된 그림자 경계를 부드럽게 처리
- 그림자 품질 향상: 날카롭거나 들쭉날쭉한 그림자 경계를 자연스럽게 처리
- 전반적인 조명 품질 개선: 라이트맵의 전반적인 시각적 충실도 향상
등을 노려볼 수 있다.
하지만 바이큐빅 샘플링은 더 많은 텍스처 샘플링을 수행하므로 저사양 플랫폼에서는 추가적인 성능 오버헤드 부담이 있다.
Unity - Manual: Improve the visual fidelity of lightmaps 2025년 기준으로 보면 하이레벨 모바일 디바이스와 그 외의 모바일 플랫폼이 아닌 환경에서는 라이트맵에 바이큐빅 보간을 사용하지 않을 이유가 없다.
ReflectionProbeAtlas
이 녀석은 6.1에서 추가 된 것인데...
복잡한 3D 씬에서는 수십 개에서 수백 개의 리플렉션 프로브가 필요할 수 있다. 각 프로브마다 개별 텍스처를 사용할 경우 다음과 같은 문제점들이 발생한다.
- 메모리 사용량 증가: 각 프로브마다 별도의 텍스처 메모리 할당
- 렌더링 성능 저하: 텍스처 바인딩 횟수 증가로 인한 GPU 오버헤드
- 캐시 효율성 감소: 분산된 텍스처 데이터로 인한 메모리 캐시 미스 증가 ( 개인적으로 이 부분 매우 중요 )
- 관리 복잡성: 수많은 개별 텍스처 리소스 관리의 어려움
아무튼 그래서 해결책으로 아틀라스 방식이 추가 됨.
리플렉션 프로브 아틀라스는 여러 개의 프로브 텍스처를 하나의 큰 텍스처로 결합하여 단점 극복.
각 프로브는 아틀라스 내에서 고유한 UV 좌표 영역을 할당받으며, 셰이더에서는 적절한 프로브의 영역을 샘플링하여 반사 효과를 계산!
그래서~
메모리 효율성
- 개별 텍스처들의 메모리 오버헤드 제거
- 텍스처 압축 효율성 향상
- 전체 메모리 사용량 최적화
렌더링 성능 향상
- 텍스처 바인딩 횟수 대폭 감소
- GPU 상태 변경 최소화
- 드로우 콜 최적화 가능
캐시 효율성
- 관련 데이터의 지역성 향상
- 메모리 접근 패턴 최적화
- CPU-GPU 간 데이터 전송 효율성 증대
관리 편의성
- 단일 텍스처 리소스로 관리 단순화
- 동적 프로브 업데이트 최적화
- 스트리밍 및 로딩 효율성 향상
이런 장점들로 변신했다.
실제 측정 결과들을 보면~
프레임레이트 향상
- 개별 텍스처: 30-40 FPS
- 아틀라스 적용: 55-60 FPS
- 약 40-50% 성능 향상
메모리 사용량 감소
- 텍스처 헤더 오버헤드 제거: 각 텍스처마다 발생하는 메타데이터 비용
- 압축 효율성: 큰 텍스처가 일반적으로 더 좋은 압축률
- 메모리 단편화 감소: 연속된 메모리 블록 사용
지연 렌더링(Deferred Rendering)
- G-Buffer 단계에서 텍스처 바인딩 최소화 필요
- Light Pass에서 여러 프로브를 효율적으로 샘플링
리플렉션 프로브 아틀라스
Reflection Probe Atlas - 통합 텍스처 최적화 기법
❌ 개별 텍스처 방식
• 각 512×512×6 면
• 총 ~13.5MB
• 텍스처 헤더 오버헤드
• 빈번한 상태 변경
• 배치 렌더링 불가
• 캐시 미스 증가
✅ 아틀라스 통합 방식
• 1536×1536 해상도
• 총 ~9MB
• 압축 효율성 향상
• 상태 변경 최소화
• 배치 렌더링 가능
• 캐시 효율성 극대화
🚀 아틀라스 기법의 핵심 장점
이렇게 시각화 해 볼 수 있겠다.
'UNITY3D' 카테고리의 다른 글
유니티 6.1 인스턴싱 로컬 키워드 추가 리스트. (0) | 2025.06.04 |
---|---|
GetDefaultDepthBufferBits() 메서드 (1) | 2025.06.04 |
Sony agx 추가 (0) | 2025.06.02 |
MazeLine ToneMapper Preview (2) | 2025.06.02 |
Khronos pbr neutral test and comparing with default unity tonemapper. (0) | 2025.05.31 |