我有一个场景,我使用Three.js导出器从Blender导出。经过一些试验和错误,我得到它出口罚款。当我尝试将其导入Three时,我遇到了一些像glDrawElements: range out of bounds for buffer
这样的WebGL错误,这些错误似乎与导入对象的大小或位置有关。我把一些与尺寸相关的东西弄得乱七八糟,最终得到了很好的装载。但是,没有任何带有纹理的材质正在加载,除了一个,这是一个应用了单一材质的对象。
这是我的管道
当涉及到Three时,有两个对象,一个是具有映射到其材质的单个纹理的树。另一种是大型几何体,其中有20种材质和纹理映射。此几何体没有任何纹理显示,只显示为MeshLambertMaterial。
还有其他人遇到过这样的问题吗?任何解决方案?
答案 0 :(得分:2)
看起来像SceneImporter不知道如何处理这些材料,但所有数据都在那里,所以你需要给它一些帮助。
像这样;
loader.load('sceneWithObjectOfManyFaceMaterials.json' , function(loaded)
{
for(var key in loaded.objects)
{
var mesh = loaded.objects[key];
if(mesh.material.materials)
{
mesh.material.materials.forEach(function(m , i)
{
m.map = loaded.materials[m.name].map;
});
}
scene.add(mesh);
}
render();
});