Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
Javascript 三个js导入的OBJ模型[.CommandBufferContext]渲染警告:渲染计数或primcount为0_Javascript_Three.js - Fatal编程技术网

Javascript 三个js导入的OBJ模型[.CommandBufferContext]渲染警告:渲染计数或primcount为0

Javascript 三个js导入的OBJ模型[.CommandBufferContext]渲染警告:渲染计数或primcount为0,javascript,three.js,Javascript,Three.js,我收到数千个错误(谷歌浏览器): 使用OBJMTLLoader.js作为加载程序从Bledner导出的OBJ和MTL文件 在移动到R73之后 有经验吗?如果不看你的代码,很难说会出什么问题,但我建议尝试JSON导出和导入。在three.js源中,转到utils/exporters/blender并安装JSON exporter(检查readme.md)。然后将模型导出到JSON,并仔细检查导出选项(几何体类型、UV、纹理)。然后,可以按如下方式导入模型: var loader = new THR

我收到数千个错误(谷歌浏览器):

使用OBJMTLLoader.js作为加载程序从Bledner导出的OBJ和MTL文件 在移动到R73之后


有经验吗?

如果不看你的代码,很难说会出什么问题,但我建议尝试JSON导出和导入。在three.js源中,转到utils/exporters/blender并安装JSON exporter(检查readme.md)。然后将模型导出到JSON,并仔细检查导出选项(几何体类型、UV、纹理)。然后,可以按如下方式导入模型:

var loader = new THREE.JSONLoader();
loader.load("model.json", function(geometry, material) {
    var m = new THREE.MultiMaterial(material);
    var o = new THREE.Mesh(geometry, m);
    scene.add(o);
});

我没有与OBJ/MTL进行比较,但与Collada相比,JSON加载程序要快得多。

当低级渲染调用被告知绘制零顶点/面时,就会发生这种情况。这是因为您有一个或多个具有零面/顶点的多边形的网格,因此每次绘制调用时,此错误会累积

问题可能是您的模型,也可能是导出/导入过程。如果是模型,那么下面是一个关于如何找到问题区域的松散想法。我不建议将OBJMTLLoader与ThreeJS和Blender一起使用,因为ThreeJS附带了一个用于导出的Blender插件,并且可以正常工作

checkMesh=函数(网格、子索引){
如果(
mesh.geometry.faces.length>0&&
mesh.geometry.vertices.length>0
) {
//在这里用好的网孔做东西
对于(var i=0;i}
无法为我从OBJ文件切换到JSON。我从blender导出的网格中得到此错误。我做了两件似乎有帮助的事情:1。选择您的对象,进入编辑模式,按
a
选择所有面,然后按
w
并从菜单中选择“删除双面”。这将删除重复的顶点。2.选择您的对象,进入编辑模式,按
a
选择所有面,然后按
空格
,键入“选择松散几何体”,点击回车键,然后按
x
删除所选内容,然后单击
顶点
。再次按
x
,然后选择
边缘
。再次按
x
,然后选择
faces
。我不知道是否有必要做所有这些。删除double不是一个好主意,尤其是如果您使用EdgeSplit或其他依赖于分割面的函数。
var loader = new THREE.JSONLoader();
loader.load("model.json", function(geometry, material) {
    var m = new THREE.MultiMaterial(material);
    var o = new THREE.Mesh(geometry, m);
    scene.add(o);
});