【问题标题】:Which Mesh Data Formats provide Indices for Positions, Normals and UV Coords separately?哪些网格数据格式分别提供位置、法线和 UV 坐标的索引?
【发布时间】:2017-04-27 08:56:09
【问题描述】:

我的游戏将使用大量带有硬边的低多边形网格。这意味着很多时候,一个顶点位置将使用多个法线和 UV 坐标。 因此,将顶点位置、法线和 UV 拆分为 3 个单独的数组,然后每个顶点使用 3 个索引来构造网格对我来说是很有意义的。 是否有任何网格数据格式支持骨骼动画、灯光、纹理、材质和所有垃圾以及单独索引位置、法线和 UV?还是我在 3D 编辑器 (Blender) 中保存数据的方式的问题?

【问题讨论】:

    标签: opengl 3d blender mesh dataformat


    【解决方案1】:

    遗憾的是,没有有效的方法可以为位置、法线、UV 等使用不同的索引。每个组合都必须是一个单独的顶点。

    This 线程讨论了这个问题,但使用单个顶点通常效率更高。

    如果您决定从 3D 编辑器导出为 .obj 格式,文件中将提供每个顶点及其数据。

    This video 显示了加载 .obj 文件的完整示例,从 Blender 一直到 OpenGL。

    【讨论】:

    • 我还注意到 .obj 文件使用这种存储顶点的方式。有所有的位置、法线和 uvs,面由 3*3 整数构成。不幸的是,obj 没有我需要的所有功能。我现在决定暂时只使用 .dae,然后我将自己加载 3 个单独的数组并在加载网格时对它们进行索引。这样我就不必向我的着色器发送尽可能多的数据,并且我可以将更多的计算转移到显卡上,这似乎是一件好事,因为我的程序一开始就不会使用显卡。谢谢!
    • @stimulate 没问题,别忘了标记为答案 :)
    • 嘿嘿,你这个贪婪的老家伙;)
    • @stimulate 这是我的燃料 ;)
    • @SporreKing:“遗憾的是,没有有效的方法来为位置、法线、UV 等使用不同的索引。That is untrue.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多