我有一个用 ActionScript 编写的解析器,用于导入 .obj 文件。然后我在 Molehill 中渲染它们,这太棒了。到目前为止,我可以导入我认为具有 x、y、z 顺序或 z、x、y 顺序顶点的标准 .obj 文件。但是,从 Cinema 4D 导出的任何 .obj 文件都会失败。
例如,四面体甚至不渲染 z 分量(.obj 文件的索引具有适当的 z 深度!)。一个简单的立方体缺少一半的三角形面。我听说 Cinema 4D 以 x、z、y 的顺序导出,所以我也试图解释这一点,但没有运气。实际上,顶点顺序不应该导致丢失多边形。
有没有人从 .obj 文件导入 Cinema 4D 网格?有什么特别的技巧吗?Cinema 4D 是否忽略了 Wavefront .obj 标准?提前感谢您的帮助。
更新:我认为罪魁祸首是多边形的索引数据是一组 4 而不是 3。例如,我想要这个:1/1 2/2 3/3 但不是这个:1/1 2/2 3/3 4/4。Cinema 4D 将 .obj 文件导出为后者。无论如何要在解析端或 Cinema 4D 导出端解决这个问题?
Update2:现在索引数据是我想要的方式,但我仍然无法正确渲染。以下是正四面体。当我尝试渲染它时,四个面中只有两个出现:
# WaveFront *.obj file (generated by CINEMA 4D)
g __
v -70.571068 -100 122.232675
v 141.142136 -100 0
v 0 100 0
v -70.571068 -100 -122.232675
vt 0.666667 0 0
vt 0.5 0.5 0
vt 0 0 0
vt 1 0 0
vt 0 0.5 0
vt 0.333333 1 0
vt 1 1 0
vt 0.666667 1 0
vt 0.333333 0 0
vt 0.75 0.933013 0
f 4/10 2/5 1/2
f 1/1 3/8 4/9
f 2/4 3/7 1/1
f 4/9 3/6 2/3
上面的内容有什么奇怪的吗?(如果我有一个从同一个四面体的另一个标准 3D 软件导出的 .obj 文件会有所帮助)