如何在计算机图形中实现3D变形?

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

我想从像杯子这样的几个网格生成一个中间网格,但我没有找到任何可用的纸张,开源代码或其他资源。那么,我该如何生成这样的网格呢?

graphics 3d
1个回答
2
投票

我不知道有任何开源库。但研究文献非常广泛而深刻。

基本上成分是:

  1. 网格参数化
  2. 重新网格化

基本上,您需要将所有曲面参数化(嵌入)到规范域,例如平面,球体或某些合适的(属兼容的)域。您可以单独或使用“兼容参数化”对它们进行参数化,这可以为您提供一些优势。然后,您需要重新网格化所有网格,以便所有网格具有相同的组合(相同数量的顶点和相同的连接)。该过程称为“兼容重新网格化”。在重新划分过程中,使用cannonical域将点从一个表面映射到另一个表面,并且在兼容的重新划分结束时,所有网格共享公共参数化。网格A中的点具有与网格B中的点不同的3d坐标,但是因为它们在规范域中具有相同的UV坐标,所以它们是彼此的图像并且存在可以从网格A发送点的一些映射函数F.网格B.

现在,这是基本方法。其实你需要更多。通常,您需要在所有输入网格上定义特征点,以便映射函数F可以将猫网格的鼻子上的点发送到狗网格的鼻子上的点。如果您不强制执行要素点对应,那么您想要的曲面的“平均”可能是不合需要的。

您可以在互联网上搜索关键词“兼容参数化”,“交叉参数化”,“表面间映射”和“3d变形”。

以下博士论文正在审查与您的任务相关的一些文献:

https://tel.archives-ouvertes.fr/tel-00836048/file/ThA_se_MocanuBogdan.pdf

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