如何根据三角坐标列表渲染 3D 对象?

如何根据三角坐标列表渲染 3D 对象?

我尝试在 StackOverflow 上用稍微不同的措辞提出这个问题。没有人回答,我们确定这是题外话。它没有被移动,所以我在这里问。

我有一个文件(由未知程序创建),其中似乎包含 3D 空间中三角形网格的坐标。前几行如下所示:

-0.000000,2.758621,12.413793 0.798542,2.443666,15.312572 2.584137,2.443666,12.413793
-0.000000,-18.758621,12.413793 2.090611,-18.443666,10.622249 2.090610,-18.443666,14.205337
-0.000000,2.758621,12.413793 2.584137,2.443666,12.413793 0.798542,2.443666,9.515014
-0.000000,2.758621,12.413793 0.798542,2.443666,9.515014 -2.090611,2.443666,10.622249 

文件的其余部分(超过 47 kB)遵循此模式。

我希望能够看到这些数据所代表的模型。有没有一种简单的方法可以让像 Meshlab 这样的程序将其识别为 3D 对象并进行渲染?换句话说,我想将这些原始数据转换为有效格式。

答案1

使用文本编辑器或一些脚本,你可以将文本文件转换为POV-射线使用对象的场景描述mesh

mesh {
  triangle {
    <x1,y1,z1>, <x2,y2,z2>, <x3,y3,z3>
    <x1,y1,z1>, <x2,y2,z2>, <x3,y3,z3>
    <x1,y1,z1>, <x2,y2,z2>, <x3,y3,z3>
    ...
    texture { ... }
  }
}

答案2

您在那里拥有一个“点云”,大多数 3D CAD 或建模系统都可以导入它们。

接下来要做什么取决于你... 你想把那片云变成线框网格吗?然后你需要告诉软件哪些点需要连接到哪些其他点。

许多实体建模系统(Pro/e 等)还提供将“表面覆盖”在点云上的能力(假设点近似于表面)。

将点云升级为线框、曲面或实体后,您就能够以任意数量的 3D 格式 (iges、3ds、stl、vrml 等) 导出

例如:这里有一个 google sketchup 插件,它能做这样的事情:http://rhin.crai.archi.fr/rld/plugin_details.php?id=777

相关内容