如何以波前.obj 格式对脸部进行建模?

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

我正在尝试编写一个玩具对象加载器。看来面可以不仅仅是三角形,我想知道对象加载器如何以最小数量的三角形来简化它。虽然正方形和五边形看起来很简单,但它如何发挥更多作用?

在思考的过程中,我想出了一个在各种引擎中尝试过的例子,它给了我 3 种不同的结果。这是文件:

v 0.0 0.0 0.0
v 0.75 0.0 0.0
v -0.15 0.8 0
v 0.4 0.1 0
v 0 0.45 0
v 0.1 1.1 0
f 1 2 3 4 5 6

这是它应该是什么样子的图片:

在第一个网站上,我得到:

第二次,我得到两张不同的面孔:

这个文件格式有限制吗?这个问题有真正的答案吗?应该如何处理?

感谢您的宝贵时间!

.obj wavefront
1个回答
0
投票

您提供的图片是正确的。然而,正确显示它需要一些工作量,并且许多软件采用一些快捷方式,这可能会导致伪影。

GPU 不提供显示一般多边形的方法,因此软件需要对多边形进行三角测量。对多边形进行三角测量的最简单算法是制作三角形扇形(这似乎是第一个示例中使用的算法),但它仅适用于凸多边形,但此处的情况并非如此。如果多边形是凹的,您会看到一些伪影。

另一种三角测量算法称为“耳朵裁剪”,但实现起来可能有点乏味,所以如果它不是 3D 建模软件,如果其中许多人不实现它,我不会感到惊讶。

您提供的第二个示例有点难以解释它如何产生两个不同的多边形。但无论如何,结果都是不正确的。

所以总而言之,这不是文件格式的限制,而是处理凹多边形和 GPU 的固有复杂性。

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