Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3d THREE.js网格未填充BoxHelper_3d_Three.js - Fatal编程技术网

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);