通过原始皮肤生成3D模型

时间:2013-08-08 16:38:17

标签: c++ algorithm model 3d skinning

我正在寻找一种方法来生成用于视频游戏的3D模型。这个想法是虚拟基元,它只是具有大小,形状,材料和旋转的相关数据的点。

例如,小行星可能从两个相交的简单球体开始。多尘岩石的材料,它会告诉剥皮算法提供平滑的沙质曲线和偶尔的锯齿状巨石。可能最终会出现一种块状的花生形状。

之后添加带有空隙或火山口材料的较小球体,在物体周围涂上胡椒。这些会在花生表面产生类似火山口的区域,皮肤会适应。最后,你将有一个半合理的小行星表示。

现在考虑到这一点,我的问题是,是否有任何体面的开源或公共领域的皮肤算法示例可以找到模型的表面并生成一个平滑,均匀分布的四条带网格,然后可以进行纹理化?

更多信息;我正在研究底层模型的CSG方法(添加和减去体积),然后查看其他方法来重新整理整个事物。

2 个答案:

答案 0 :(得分:2)

剥皮是一门艺术而不是一门科学过程(因此几乎不可能实现自动化)因为蒙皮是运动的视觉近似。为了获得完全自动化的东西,你要么必须假设骨骼放置,要么假设根本没有。

这是一个例子。这是一个开源项目,它根据提供的网格是人形的事实自动进行外观。 http://igl.ethz.ch/projects/fast/

编辑:等等,你的意思是反过来?行军立方体不是很相似吗? http://en.wikipedia.org/wiki/Marching_cubes

答案 1 :(得分:1)

这是一个令人兴奋的问题,毫无疑问,有很多方法可以做到。我个人可能首先在.obj格式上获取基本形状,这很容易解析和编程创建,然后在我的代码中完成:调整或随机化从建模程序导出的顶点以创建无限各种类似但略有不同的物体,如小行星。当然,如果您需要的不仅仅是小行星,那么您将返回另一个.obj文件。对于你的案子来说很难说最好的技术,因为我认为无论你尝试什么,都需要进行一些实验。