3d THREE.js网格未填充BoxHelper
我不知道如何使我的3d THREE.js网格未填充BoxHelper,3d,three.js,3d,Three.js,我不知道如何使我的THREE.Mesh覆盖THREE.BoxHelper的所有六个面。由于某种原因,只有三个三角形出现在三条边上。它似乎只使用了8个顶点。如何连接所有顶点?较大的黑色框是一个单独的THREE.BoxHelper,没有添加任何THREE.Mesh。(下面的对象是一个THREE.OBJLoader,我只需要它的方框轮廓)。提前感谢您的任何见解 let box=new THREE.BoxHelper(对象,0xff0000); let material=新的三网格基本材质({ 颜色:0
THREE.Mesh
覆盖THREE.BoxHelper
的所有六个面。由于某种原因,只有三个三角形出现在三条边上。它似乎只使用了8个顶点。如何连接所有顶点?较大的黑色框是一个单独的THREE.BoxHelper
,没有添加任何THREE.Mesh
。(下面的对象
是一个THREE.OBJLoader
,我只需要它的方框轮廓)。提前感谢您的任何见解
let box=new THREE.BoxHelper(对象,0xff0000);
let material=新的三网格基本材质({
颜色:0xff0000,
侧面:三个。双面
});
设mesh=new-THREE.mesh(box.geometry,material);
场景。添加(网格);
三个.BoxHelper的几何图形适用于三个.LineSegments。您正在尝试使用此几何体渲染
THREE.Mesh
。由于两个对象使用不同的基本体进行渲染(直线
与三角形
),因此无法获得所需的输出。三个.BoxHelper的几何体用于三个.LineSegments
。您正在尝试使用此几何体渲染THREE.Mesh
。由于两个对象使用不同的基本体进行渲染(直线
与三角形
),因此无法获得所需的输出。谢谢,这很有意义。我想接下来的问题是如何从使用THREE.Box3
创建的边界框中获取THREE.BoxGeometry
(以及世界定位)?定位似乎是主要问题。看起来我可以通过调用THREE.Box3
来创建长方体几何体,但是我无法使THREE.Mesh
显示在与THREE.Box3
相同的位置。我正在使用mesh.position.copy(box.matrixWorld.getPosition())代码>。这可能不是最好的解决方案,但我想我找到了我需要的。使用THREE.Box3
min/max值,我正在使用mesh.position.set(box.min.x+((box.max.x-box.min.x)/2)、box.min.y+((box.max.y-box.min.y)/2)、box.min.z+((box.max.z-box.min.z)/2)设置位置;
谢谢,这很有意义。我想接下来的问题是如何获得THREE.BoxGeometry
(以及世界定位)从使用THREE.Box3
创建的边界框开始?定位似乎是主要问题。看起来我可以使用getSize()创建框几何体
调用THREE.Box3
,但我无法使THREE.Mesh
显示在与THREE.Box3
相同的位置。我正在使用Mesh.position.copy(box.matrixWorld.getPosition())
。这可能不是最好的解决方案,但我想我找到了我需要的。使用THREE.Box3
min/max值,我用mesh.position.set(box.min.x+((box.max.x-box.min.x)/2)、box.min.y+((box.max.y-box.min.y)/2)、box.min.z+((box.max.z-box.min.z)/2);