MipMap
MipMap은 원본 텍스처의 해상도를 절반씩 줄여 여러 해상도의 텍스처 이미지들을 미리 준비해둔 데이터 구조이다. 게임이나 3D 그래픽에서 어떤 물체에 텍스처를 넣으면 가까이에 있을때는 세밀한 부분까지 모두 보이지만 멀리 있을때는 그 물체가 모니터 화면에서는 겨우 몇 픽셀 영역밖에 되지 않기 때문에 텍스처의 모든 텍셀들이 모두 표현되지 못한다. 그런데도 원본 텍스처를 가져와서 샘플링 연산을 한다면 엄청난 성능 낭비와 앨리어싱(aliasing)문제가 생기는 것이다. 그래서 해결책으로 나온것이 바로 MipMap이다.
“MIP”은 라틴어 multum in parvo (“작은 것 안에 많은 것”)에서 온 말로, 원본 텍스처를 절반 크기로 줄여서 여러 단계의 축소본을 미리 만들어 두는 것을 뜻한다.
레벨 0 = 원본 (1024×1024)
레벨 1 = 절반 크기 (512×512)
레벨 2 = (256×256)
… 마지막은 1×1까지
MipMapping
필요할 때 적당한 레벨의 텍스처를 불러 쓰는 시스템이 바로 MipMapping이다. MipMapping을 사용하면 멀리 있는 물체는 낮은 해상도의 텍스처를 사용하므로 계산량이 줄고, 가까운 물체는 원본 텍스처를 사용하여 선명함을 유지할 수 있다.
LOD (Level of Detail)
LOD(Level of Detail)은 MipMapping에서 GPU가 어떤 레벨의 텍스처를 선택 할 지에 대한 기준으로 적절한 MipMap Level을 선택하는 것을 의미한다. LOD는 현재 모니터 화면에서 해당 텍스처가 얼마나 크게 보이느냐를 기준으로 MipMap에 저장되어있는 여러 level의 텍스처들을 선택한다.
- 물체가 화면에서 크게 보일 경우 → 높은 디테일 필요 → 낮은 LOD (level 0, 높은 해상도의 mip level)
- 물체가 화면에서 작게 보일 경우 → 디테일 필요 없음 → 높은 LOD (level 3, 4~, 낮은 해상도의 mip level)
'Programming > 컴퓨터그래픽스 (DX 11)' 카테고리의 다른 글
| [DirectX 11] 텍스처 맵핑 (Texture Mapping)과 DDS 포맷 (0) | 2025.09.18 |
|---|---|
| Texel, UV, Pixel (1) | 2025.09.17 |
| [DirectX 11] 상수버퍼(Constant Buffer) CPU 구조체와 HLSL 구조체 정렬 맞추기 (0) | 2025.09.16 |
| [DirectX 11] DirectXMath vs SimpleMath 어떤 자료형을 사용해야할까? (0) | 2025.09.15 |
| [Lighting] 난반사(Diffuse Reflection)와 램버튼 법칙(Lambert's cosine law) (0) | 2025.09.15 |