0

我在 MaxScript 中编写了一个脚本,成功导出了我的网格的顶点位置。顶点按照 3dsMax 索引顺序进行排序。我应该如何编写索引,以便 webgl 应用程序可以读取正确的顺序并重建原始三角形?

换句话说,如果我在输出文件中键入 print ,我得到的网格索引:1,2,3,4,5,6,7 等...这不是 webgl 的正确顺序。

4

1 回答 1

1

我不精通 WebGL,但我相信顶点位置是不够的,你需要知道每个面是如何构建的,以及它的法线。

您可以收集顶点的位置,然后按照要构建的顺序获取构成每个面的顶点。在某些情况下,您需要知道闭合顶点是什么,因此您可能希望将其添加到数组中(我将其作为第四个 id 包含在内)。

例如:

normals = #(#(0.07, 0.01, 0.07), #(0.0, 1,.0, 0.0), etc...)
vertices = #(#(102.003, 200.44, 4598.93), #(405.77, 234.65, 4599.01), etc...)
faces = #(#(32, 35, 33, 32), #(512, 423, 511, 512), etc..)

我建议转储到包含所有这些信息的字典,并映射您的面部或顶点位置。例如:

{
    'normals' : {'32': [0.07, 0.01, 0.07], '33': [0.0, 1,.0, 0.0], etc.. },
    'vertices' : {'32': [102.003, 200.44, 4598.93], 33: [405.77, 234.65, 4599.01], etc...},
    'faces': {'152': [32, 35, 33, 32], '153': [512, 423, 511, 512], etc... }
}

就几何构建而言,这些是必不可少的。

希望这可以帮助您走上正确的轨道。

编辑:阅读此https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3后

您可能希望以该特定格式将其写出来。

于 2014-10-23T14:24:34.213 回答