Quick Comparison
| 방식 | 줄이는 비용 |
|---|---|
| Mesh LOD | 정점 수, 삼각형 수 |
| Texture mipmap | texture aliasing, bandwidth |
| Shader LOD | 먼 거리의 material 계산 단순화 |
| Impostor | 복잡한 3D 물체를 2D/간단한 대체 표현 |
| HLOD | 여러 물체를 묶은 계층적 LOD |
screen coverage가 threshold 아래로 내려감 -> 낮은 LOD 후보
threshold 주변 -> hysteresis / dither cross-fade
shadow·animation·culling도 같은 LOD 정책을 확인구조
LOD는 Level of Detail의 약자입니다. 멀리 있거나 화면에서 작게 보이는 물체는 세부 형태가 잘 보이지 않으므로 더 단순한 표현으로 바꿔 렌더링 비용을 줄입니다.
near -> high detail mesh/material
mid -> simplified mesh
far -> billboard/impostor기준은 거리만이 아니라 screen-space size가 더 적절할 때가 많습니다. 같은 거리라도 FOV, 해상도, 물체 크기에 따라 화면에서 차지하는 픽셀 수가 다르기 때문입니다.
threshold는 화면 높이 대비 projected size처럼 camera와 resolution에 대응하는 값으로 관리합니다. LOD 0과 1이 같은 경계에서 즉시 왕복하면 camera 흔들림에도 popping이 생기므로, 내려갈 때와 올라갈 때 다른 threshold를 두는 hysteresis 또는 dither cross-fade를 씁니다.
LOD는 geometry만 바꾸는 기능이 아닙니다. 먼 거리에서는 material feature를 줄이고, shadow caster만 단순화하고, collision이나 animation 업데이트 빈도까지 낮추는 식으로 여러 시스템의 비용을 함께 줄일 수 있습니다.
HLOD는 여러 작은 물체를 하나의 큰 대체 표현으로 묶습니다. 도시 블록, 숲, 건물 내부처럼 객체 수가 많은 장면에서는 개별 mesh LOD보다 draw 후보와 draw call 자체를 줄이는 효과가 중요합니다.
Impostor
impostor는 복잡한 3D 물체를 미리 렌더링한 이미지나 매우 단순한 geometry로 대체하는 방식입니다. 나무, 구름, 먼 배경처럼 멀리서 silhouette과 큰 색감만 필요한 대상에 유리합니다.
선택 기준
| 상황 | 선택 |
|---|---|
| 멀리서 삼각형 수가 부담 | mesh LOD |
| 텍스처가 멀리서 반짝임 | mipmap |
| 먼 물체 shader가 비쌈 | shader LOD |
| 아주 먼 복잡한 물체 | impostor |
| 대규모 월드 | HLOD |
LOD는 렌더링 비용을 줄이는 동시에 aliasing도 줄일 수 있습니다. 너무 세밀한 geometry와 texture를 작은 화면 영역에 넣으면 성능뿐 아니라 시각적 안정성도 나빠집니다.
mesh만 줄이고 shadow caster는 항상 최고 LOD로 두면 shadow pass가 계속 병목일 수 있습니다. 반대로 너무 이른 shadow LOD는 멀리서 shadow popping을 만듭니다. main view, shadow view, reflection view가 각각 어떤 LOD를 고르는지와 fade가 depth/write 상태에 어떤 영향을 주는지 분리해 확인합니다.
주의할 점
LOD 전환이 갑자기 일어나면 popping이 보입니다. cross-fade, dithering, hysteresis, screen-size threshold 조정으로 전환을 완화해야 합니다.
Impostor는 시점 변화에 약할 수 있습니다. 카메라가 가까워지거나 옆으로 크게 움직이면 flat한 대체 표현이 쉽게 드러납니다.
impostor atlas는 view direction, normal/depth 저장 여부, parallax 보정 가능 여부에 따라 품질이 달라집니다. 단순 billboard는 회전과 silhouette 변화에 약하고, multi-view impostor는 memory와 bake 시간이 늘어납니다. 멀리서 가려지는 작은 asset에만 쓰는지, 큰 hero asset에도 써야 하는지부터 나눕니다.