如何修复无效的网格结构?

时间:2015-05-31 18:24:59

标签: json 3d webgl wavefront gera

此处有一个示例:http://amegas.github.io/gera/custom.geometry

它显示旋转的剑,它表示为使用UV纹理映射的自定义加载几何体。

正如我所看到的,此示例仅使用纹理的一部分而忽略了图像的其他部分。我想使用github中的示例加载其他模型,但最后一次尝试不成功。结果如下所示:

enter image description here

我宁愿不理解如何解决我的问题。我已经了解了样本中使用的库的信息。我必须准备一些顶点/纹理坐标来渲染自定义3D模型。另外我还想尝试使用其他一些WebGL绘图模式(TRIANGLES,TRIANGLE_STRIP,TRIANGLE_FAN等等),因为样本库提供了一种为每个网格设置自定义绘制模式的可选方法:

var mesh = new Gera.Mesh({
    geometry: new Gera.Geometry({
        type: Gera.Geometry.Type.Custom,
        vertices: object3d.jsonModel.vertices,
        indices: object3d.jsonModel.indices,
        uvCoordinates: object3d.jsonModel.uvCoordinates
    }),
    material: new Gera.Material( object3d.texture ),
    drawMode: Gera.Renderer.DrawMode.TriangleStrip
});

但也没有成功。我以为我没有正确地准备猫的模型。我使用过其他github项目的obj2json mesh file converter。结果如上所示。

我该怎么做才能解决我的问题?

1 个答案:

答案 0 :(得分:0)

似乎是obj2json解析器工作不好。我尝试使用该解析器转换几个Wavefront模型,我必须说,它并没有对复杂模型进行正确的三角测量。 如果3d模型是某种类型的框或类似的东西,那么obj2json会正确地对导出模型进行三角测量。 但是如果要使用某些型号的猫,龙和其他东西 - 会有问题。

另外,我想给你一些建议,不要在使用Gera库时使用自定义绘图模式,因为3D模型通常只使用两种模式:三角形(1)< / strong>和线条(2)以及线框模式。 您应该开始使用自定义绘图模式的情况很少。