Уровень детализации - показывать меши с большей или меньшей детализацией геометрии в зависимости от расстояния от камеры.
Каждый уровень связан с объектом, и визуализация может переключаться между ними на указанные расстояния. Обычно создается три меша: один для дальнего расстояния (низкая детализация), другой для среднего расстояния (средняя детализация)
и один для близкого расстояния (высокая детализация).
const lod = new v3d.LOD();
//Create spheres with 3 levels of detail and create new LOD levels for them
for(let i = 0; i < 3; i++) {
const geometry = new v3d.IcosahedronBufferGeometry(10, 3 - i)
const mesh = new v3d.Mesh(geometry, material);
lod.addLevel(mesh, i * 75);
}
app.scene.add(lod);
Создает новый LOD.
Общие свойства см. в базовом классе Object3D.
Обновляется ли объект LOD автоматически рендерером в каждом кадре или нет. Если установлено значение false, вы должны самостоятельно вызывать LOD.update() в цикле рендеринга. По умолчанию установлено значение true.
Массив объектов level
Каждый уровень представляет собой объект с двумя свойствами:
object - Object3D для отображения на этом уровне.
distance — Расстояние, на котором будет отображаться данный уровень детализации.
Общие методы см. в базовом классе Object3D.
object - Object3D для отображения на этом уровне.
distance — Расстояние, на котором отображается данный уровень детализации.
Добавляет меш, который будет отображаться на определенном расстоянии и дальше. Как правило, чем дальше расстояние,
тем меньше детализация меша.
Возвращает клон данного LOD-объекта и связанных с ним объектов, определяющих расстояние.
Получить текущий активный уровень LOD. В качестве индекса массива уровней.
Получить ссылку на первый Object3D (меш) больше, чем distance.
Получить пересечения между отбрасываемым Ray и его LODом. Raycaster.intersectObject вызовет этот метод.
Установите видимость каждого level level's object в зависимости от расстояния от camera.
О том как получить исходный код этого модуля читайте тут.