2013-05-06 2 views
2

Я работаю над игрой voxel с three.js. Для этого мне нужно создать столько блоков, сколько необходимо для заполнения экрана. В настоящее время я загружаю круг радиуса 20 вокруг игрока.Ручная усечка усечения с помощью three.js

Каков самый простой способ вычислить точный диапазон кусков, необходимых для заполнения фрустрации камеры и избежать вычисления невидимых кусков?

Каждый кусок имеет одинаковый размер (допустим, у нас есть вектор size с правильным значением), и они равны Y = 0 (переменные X и Z).

ответ

0
var frustum = new THREE.Frustum(); 
frustum.setFromMatrix(new THREE.Matrix4().multiply(camera.projectionMatrix, camera.matrixWorldInverse)); 

for (var i=0; i<objects.length; i++) { 
    objects[i].visible = frustum.intersectsObject(objects[i]); 
} 

только объекты, которые находятся в пределах усеченного камеры будет оказана

here документально

надеюсь, что это помогает вам?

Смежные вопросы