Programming/컴퓨터그래픽스 (DX 11)

MipMapping과 LOD(Level of Detail)

양양줘 2025. 9. 17. 15:10

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)