【问题标题】:THREE js imported OBJ model [.CommandBufferContext]RENDER WARNING: Render count or primcount is 0三个js导入的OBJ模型[.CommandBufferContext]RENDER WARNING: Render count or primcount is 0
【发布时间】:2016-02-09 09:28:09
【问题描述】:

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

[.CommandBufferContext]RENDER WARNING: Render count or primcount is 0.

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

有什么经验吗?

【问题讨论】:

  • 我从搅拌机导出的网格中收到此错误。我做了两件事似乎有帮助: 1. 选择您的对象,进入编辑模式,按a 选择所有面,然后按w 并从菜单中选择Remove Doubles。这将删除重复的顶点。 2. 选择您的对象,进入编辑模式,按a 选择所有面,然后按space,然后输入“选择松散几何”,按回车键,然后按x 删除任何选定的面,然后单击@ 987654327@。再次按x 并选择edges。再次按x 并选择faces。我不知道是否有必要做所有这些。
  • 删除双打不是个好主意,尤其是如果您使用 EdgeSplit 或其他依赖于分割面的函数。

标签: javascript three.js


【解决方案1】:

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

问题可能是您的模型,也可能是导出/导入过程。如果是模型,那么下面是一个关于如何找到问题区域的松散想法。我不建议将 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;
  }
}

【讨论】:

    【解决方案2】:

    如果没有看到您的代码,很难说可能出了什么问题,但我建议尝试 JSON 导出和导入。在 three.js 源中,转到 utils/exporters/blender 并安装 JSON 导出器(检查 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 加载器要快得多。

    【讨论】:

    • 我无法从 OBJ 文件切换到 JSON。
    猜你喜欢
    • 2016-08-13
    • 1970-01-01
    • 2014-07-22
    • 2019-01-28
    • 2021-03-12
    • 1970-01-01
    • 2021-06-12
    • 2016-05-06
    • 2023-03-27
    相关资源
    最近更新 更多