MeshLab 使用什么 3D API?

问题描述 投票:0回答:1

我希望在加载由四边形多边形组成的 OBJ 文件时在表面上显示四边形网格。

MeshLab 似乎是我发现的唯一支持四边形网格的工具。经过研究,我了解到 OpenGL、WebGL 和 Three.js 在旧版本中仅支持四边形网格。

我很好奇 MeshLab 如何实现四边形网格的可见性,以及是否有办法使用当前版本的 OpenGL、WebGL 或 Three.js 来实现此目的。有谁有MeshLab使用的技术栈的信息吗?

谢谢你。

3d polygon meshlab quad
1个回答
0
投票

Meshlab 使用名为 VCG 的库 (http://www.vcglib.net/),该库由与 Meshlab 相同的开发人员维护。渲染是使用 OpenGL 完成的。

VCG 可以存储任意边数的多边形,并使用隐藏的“Faux Edges”数组来存储将这些多边形分割成三角形的边列表,这些三角形被发送到 GPU 以使用 OpenGL 进行渲染。

Faux(来自法语,假的)边缘是人造隐藏边缘,可将多边形面分解为三角形。当读取要存储为内部三角形网格的非三角形网格时,它们会由 VCGLib 自动插入,并能够应用许多仅为三角形网格定义的算法。

例如,当众所周知的

Blender Suzanne Monkey
模型(由四边形和三角形面组成)

作为四边形网格加载到meshlab中,但每个四边形都会添加一个人造边,以将其存储为三角形网格。在下图中,“真实”“非人造” 边缘呈现为黑色,而 人造边缘 呈现为红色。

除非明确指出,否则任何在边缘上运行的算法(例如,

Select crease edges
)将仅在“真实边缘”上运行,而不是在假边缘上运行,但许多其他算法(例如,
Laplacian Smooth
)将使用人造边缘来计算平滑滤波器,就好像网格仅由三角形组成一样。

在内部,边缘有一个VCG标志来确定它们是否是faux,但通常这不会暴露给MeshLab用户。

保存带有人造边缘的网格后,这些将不会保存到文件中。因此,共享“人造边缘”的模型内部三角形将连接成多边形面。

© www.soinside.com 2019 - 2024. All rights reserved.