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
Object ThreeJS-对象格式网格的线框_Object_Three.js_Mesh_Loader_Wireframe - Fatal编程技术网

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场景可视化的顶部。所以基本体不是三角形!应该有一种方法可以获得相同的可视化效果。导出混合器对象时,您是否知道它是三角形的?