Подтвердить что ты не робот

ТРЕХ js импортировала модель OBJ [.CommandBufferContext] ПРЕДУПРЕЖДЕНИЕ RENDER: количество Render или primcount равно 0

Я получаю тысячи ошибок (google chrome):

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

Файлы OBJ и MTL экспортируются из Bledner, используя OBJMTLLoader.js в качестве загрузчика После перехода на R73.

Любой опыт?

4b9b3361

Ответ 1

Это происходит, когда вызов рендеринга низкого уровня сказал, чтобы нарисовать нулевые вершины/грани. Это связано с тем, что у вас есть одна или несколько сеток с полигоном с нулевыми гранями/вершинами, поэтому при каждом вызове ничьей эта ошибка накапливается.

Проблема может быть вашей моделью, или это может быть процесс экспорта/импорта. Если это модель, то ниже - это свободное представление о том, как найти проблемные области. Я не рекомендую использовать OBJMTLLoader с тремя JS и 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. В трехлетнем режиме перейдите к утилитам/экспортерам/блендерам и установите экспортер JSON (проверьте readme.md). Затем экспортируйте свою модель в JSON, тщательно проверяя параметры экспорта (тип геометрии, UVs, текстуры). Затем вы можете импортировать свою модель следующим образом:

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 работает быстрее.