代码之家  ›  专栏  ›  技术社区  ›  Draemon

简单的线框格式?

  •  5
  • Draemon  · 技术社区  · 16 年前

    我正在寻找一个简单的文件格式,用于线框模型。我知道VRML、U3D等,但这些似乎对我的需求很重要。我的目标是:

    • 必须有一个明确的规格。要么是开放的,要么是非常好的建立/记录。
    • 我只需要简单的模型-顶点和边。我不想处理面或对象。如果格式支持更多,那么只要我可以忽略它们就可以了。
    • 最终用户工具不是一项要求,但非常好。如果不是,它必须是人类可读的(对于简单模型是可编辑的)。
    • 能够注释或至少标记节点是很好的(但不是必需的)。
    • 我使用的语言不重要,但可能的选择是Java/C++&OpenGL。

    或者我只是更好地将顶点/边列表写入文本文件并完成它?

    5 回复  |  直到 16 年前
        1
  •  3
  •   Toji    16 年前

    我不知道任何主动针对线框视图的格式。(仅限于边/顶点)您几乎总是必须至少处理面。幸运的是,除非你有一个非常特殊的需求,除了边缘列表,线框渲染可以用一个面列表中的任何API来完成。

    至于格式, OBJ 如果有点过时的话,是好的和简单的。它也可能是最容易找到文档的格式。微软的X文件非常适合快速和肮脏的渲染,但我一直对地震格式有点偏爱。不过,他们倾向于以游戏为导向,因此包含了很多你可能不想要的信息。

    如果这些都不能满足你的需求,也许可以调查一下 COLLADA . 它可能不会单独为您工作,但是您可以将一个快速导出器写入到您自己的格式中,该格式只包含边/顶点信息,此时您基本上支持地球上的每个建模包:)

        2
  •  7
  •   lajos    16 年前

    Wavefront obj是一种用于存储三维模型的非常简单的文本文件格式,它受到所有三维建模应用程序(如maya、3dsmax、lightwave)的支持,因此您可以非常容易地导出和导入模型。

    您可以在这里阅读更多和规格:

    http://www.fileformat.info/format/wavefrontobj/

    我建议不要制作自己的文件格式。波阵面对象是简单的,它得到了很好的指定。

    这是一个2x2平面的例子。 V 对于顶点坐标, f 对于面(连接哪些顶点)的描述:

    v -0.500000 -0.000000 0.500000
    v 0.000000 -0.000000 0.500000
    v 0.500000 -0.000000 0.500000
    v -0.500000 0.000000 0.000000
    v 0.000000 0.000000 0.000000
    v 0.500000 0.000000 0.000000
    v -0.500000 0.000000 -0.500000
    v 0.000000 0.000000 -0.500000
    v 0.500000 0.000000 -0.500000
    v -0.500000 -0.000000 0.500000
    v 0.000000 -0.000000 0.500000
    v 0.500000 -0.000000 0.500000
    v -0.500000 0.000000 0.000000
    v 0.000000 0.000000 0.000000
    v 0.500000 0.000000 0.000000
    v -0.500000 0.000000 -0.500000
    v 0.000000 0.000000 -0.500000
    v 0.500000 0.000000 -0.500000
    f 1/1 2/2 5/5 4/4
    f 2/2 3/3 6/6 5/5
    f 4/4 5/5 8/8 7/7
    f 5/5 6/6 9/9 8/8
    f 10/10 11/11 14/14 13/13
    f 11/11 12/12 15/15 14/14
    f 13/13 14/14 17/17 16/16
    f 14/14 15/15 18/18 17/17
    
        3
  •  1
  •   Chris Charabaruk    16 年前

    在文本文件中执行这些列表可能更容易。这是我想到的第一件事!

        4
  •  1
  •   freespace    16 年前

    波夫瑞 RAW triangle format 我认为是最简单的。我认为你真的不能再简单了。我在几分钟内就为这个实现了一个负载——它是一个 非常简单的格式 .

        5
  •  0
  •   joeld    16 年前

    obj是最广泛和最简单的,但如果需要的不仅仅是顶点位置、法线和单个纹理坐标,它就会崩溃。它根本不可扩展。它也是基于文本的,所以在使用大网格时会遇到问题。

    GTO已经成为一种新的交换格式。它简单、快速、可扩展,并且有一个经过生产验证的开放源码来读写它们:

    Gto File Format

    这已经在几个vfx和游戏工作室的制作中使用过,但是编写一个加载程序作为obj文件(其中一个示例是obj-to-gto转换器)的工作量大致相同。

    检查一下,有助于阻止胶原蛋白膨胀病毒的传播。