Mesh LOD
일반적인 메시(Mesh) 객체에 LOD 를 적용하는 방법을 다룹니다. Mesh 의 LOD 는 CPU 에서 카메라 와의 거리를 매 프레임 계산하여, 조건에 맞는 지오메트리(Geometry) 로 교체하는 방식으로 동작합니다.
1. 동작 원리
Mesh 내부의 LODManager 는 등록된 LOD 레벨들을 순회하며, 현재 카메라 거리보다 작거나 같은 가장 큰 거리값의 레벨을 찾습니다. 적합한 레벨을 찾으면 해당 레벨에 등록된 지오메트리 로 렌더링 대상이 교체됩니다.
2. 사용법
mesh.LODManager.addLOD(distance, geometry) 를 사용하여 거리별 지오메트리 를 등록합니다.
javascript
import * as RedGPU from "https://redcamel.github.io/RedGPU/dist/index.js";
// 1. 기본 메쉬 생성 (거리 0~10)
const mesh = new RedGPU.Display.Mesh(
redGPUContext,
new RedGPU.Primitive.Sphere(redGPUContext, 1, 32, 32),
material
);
// 2. LOD 레벨 추가
// 거리 10 이상: Sphere (16x16)
mesh.LODManager.addLOD(10, new RedGPU.Primitive.Sphere(redGPUContext, 1, 16, 16));
// 거리 20 이상: Box
mesh.LODManager.addLOD(20, new RedGPU.Primitive.Box(redGPUContext));
scene.addChild(mesh);3. 실습 예제
거리에 따라 구 형태가 단순해지다가 결국 박스로 변하는 과정을 확인해 보세요.