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

Mar*_*tin 12 javascript three.js

我收到了数以千计的错误(谷歌浏览器):

[.CommandBufferContext]RENDER WARNING: Render count or primcount is 0.
Run Code Online (Sandbox Code Playgroud)

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

有经验吗?

DAG*_*DAG 11

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

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

checkMesh = function(mesh, child_index) {
  if (
    mesh.geometry.faces.length > 0 &&
    mesh.geometry.vertices.length > 0
  ) {
    // do stuff here with the good mesh

    for (var i = 0; i < mesh.children.length; i++)
      if (!checkMesh(mesh.children[i], i))
        i--; // child was removed, so step back

    return true;
  } else // empty mesh! this causes WebGL errors
  {
    if (mesh.parent != null)
      mesh.parent.children.splice(child_index, 1);

    console.log(mesh.name + " has zero faces and/or vertices so it is removed.");
    mesh = null;

    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)