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 load obj/mtl呈现黑色_3d_Three.js - Fatal编程技术网

3d three.js load obj/mtl呈现黑色

3d three.js load obj/mtl呈现黑色,3d,three.js,3d,Three.js,我正在尝试将一个相当复杂的.obj文件加载到three.js中。代码如下: // Load obj file var loader = new THREE.OBJMTLLoader(); loader.load('MQ-9.obj', 'MQ-9.mtl', function(object) { scene.add(object); }); MQ-9.mtl文件引用了三个用于对象(MQ-9捕食者无人机)不同位置的图像。我可以很好地加载对象

我正在尝试将一个相当复杂的.obj文件加载到three.js中。代码如下:

    // Load obj file
    var loader = new THREE.OBJMTLLoader();
    loader.load('MQ-9.obj', 'MQ-9.mtl', function(object) {
            scene.add(object);
    });

MQ-9.mtl文件引用了三个用于对象(MQ-9捕食者无人机)不同位置的图像。我可以很好地加载对象,但它全是黑色的。图像似乎没有加载。我做错了什么?

如果加载模型并将其呈现为黑色,可能有几种原因,其中一些原因包括模型出现问题。确保没有控制台错误

除此之外,两个最常见的原因是:

  • 场景中缺少灯光

  • 在加载所有资源之前渲染场景


  • three.js r.67

    您有控制台错误吗?场景中有灯光吗?确实要在加载所有资源后进行渲染吗?你能提供一个链接到一个活生生的例子吗?谢谢你的回复。没有控制台错误。我想我有灯。其他元素是可见的。只是对象没有得到纹理。我肯定是在渲染,其他的东西也出现了。所有其他元素都是使用基本形状创建的,而不是加载的。我会尝试将代码上传到一个实时服务器上……我希望有一种方法可以添加一个屏幕快照,你关于灯光的建议有效。我插入了一个环境光,出现了表面图像。谢谢!谢谢韦斯特的建议。我会说,我现在有一些加载错误。其中两个图像似乎正在加载,但一个未加载。我收到了一大堆错误:“THREE.objmtloader:Unhandled line 1374/1867/2272”这似乎指向加载程序代码objmtloader.js:347中的if语句。这似乎是一个if语句,用于切换它在其中一个文件中遇到的行的类型。加载程序可能不理解此特定obj文件(或mtl i spose)中的某一行类型。似乎有一些行(在.obj文件中)在下一行继续。下面是一些例子。第一行是这样的:f 1370/1863/2268 1366/1864/2269 1412/1865/2270 1411/1866/2271,第二行是这样的:1374/1867/2272。也许加载器代码的续行有问题?好的,所以每一个长行都以反斜杠结束,然后最后一组数字在下一行。对我来说,这似乎是加载程序代码中的错误?这些是.obj文件中的“f”行。如果你自己找不到,请用你的新问题写一篇新文章。three.js不支持四边形——只支持三角形。这看起来更像是文件的问题,而不是加载程序的问题。你不应该让这样的一行没有定义的出现。你们出口什么?如果我没看错的话,它看起来像一个有5个不同属性的网格?你能链接你的obj的一部分吗?