Object ThreeJS-对象格式网格的线框
我试图显示加载了Object ThreeJS-对象格式网格的线框,object,three.js,mesh,loader,wireframe,Object,Three.js,Mesh,Loader,Wireframe,我试图显示加载了OBJLoader()的对象文件的线框。这是我正在使用的代码的一部分: var loader = new THREE.OBJLoader(); loader.load( filePath, function ( object ) { object.traverse( function ( child ) { if ( child instanceof THREE.Mesh ){ var geometry = child.g
OBJLoader()
的对象文件的线框。这是我正在使用的代码的一部分:
var loader = new THREE.OBJLoader();
loader.load( filePath, function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ){
var geometry = child.geometry;
materialMesh = child.material;
mesh = new THREE.Mesh(geometry, materialMesh);
var useWireFrame = true;
if (useWireFrame) {
mesh.traverse(function (child) {
if (child instanceof THREE.Mesh)
{
child.material.wireframe = true;
hild.material.color = new THREE.Color( 0xff0000 );
}
});
}
}// end if
scene.add( object );
});
});
在下图中,这是我希望得到的结果:
但是,我的代码就是这样:
每个单元格上都有对角线!谁能告诉我应该修改什么以获得与第一张图片相同的结果
谢谢大家! 线框辅助对象通常可视化由其原语定义的对象的实际线框模型。在WebGL中,Quads不是原语。仅三角形、直线和点(请参见)。因此,在
three.js
中也没有线框辅助对象可以生成预期的视觉效果。如果要渲染给定几何体的线框,现在可以使用以下模式:
var geo = new THREE.EdgesGeometry( geometry ); // or WireframeGeometry( geometry )
var mat = new THREE.LineBasicMaterial( { color: 0xffffff, linewidth: 2 } );
var wireframe = new THREE.LineSegments( geo, mat );
scene.add( wireframe );
WireframeGeometry
将渲染所有边<代码>边几何图形将仅渲染硬边
另请参见如何渲染模型及其线框。您必须绘制四边形,而不是三角形作为网格的基本体,才能将其作为线框,我认为这在ThreeJS中不受支持。所以我认为使用线框是不可能得到你想要的结果的。相反,您可以尝试在网格上使用
GridHelper
,以获得类似效果。您好,谢谢您的回答,请参阅下面的评论。谢谢您的回答,但您在图片中看到的是相同的文件对象。一个是由blender可视化的顶部,另一个是由ThreeJS场景可视化的顶部。所以基本体不是三角形!应该有一种方法可以获得相同的可视化效果。导出混合器对象时,您是否知道它是三角形的?