Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过基本体蒙皮生成三维模型_C++_Algorithm_Model_3d_Skinning - Fatal编程技术网

C++ 通过基本体蒙皮生成三维模型

C++ 通过基本体蒙皮生成三维模型,c++,algorithm,model,3d,skinning,C++,Algorithm,Model,3d,Skinning,我正在寻找一种方法,通过它来生成用于视频游戏的三维模型。其思想是虚拟原语,这些原语只是带有尺寸、形状、材质和旋转相关数据的点 例如,一颗小行星可能从两个简单的球体相交开始。含尘岩石的材料,这将告诉蒙皮算法提供平滑的沙质曲线和偶尔出现的锯齿状巨石。最后可能会变成一种粗糙的花生形状 之后,在物体周围添加一些带有空洞或陨石坑的小球体。这些会在花生表面产生类似陨石坑的区域,花生皮也会随之调整。最后,你会得到一个小行星的半可信的表示 考虑到这一点,我的问题是,有没有合适的开源或公共领域的蒙皮算法示例,可以

我正在寻找一种方法,通过它来生成用于视频游戏的三维模型。其思想是虚拟原语,这些原语只是带有尺寸、形状、材质和旋转相关数据的点

例如,一颗小行星可能从两个简单的球体相交开始。含尘岩石的材料,这将告诉蒙皮算法提供平滑的沙质曲线和偶尔出现的锯齿状巨石。最后可能会变成一种粗糙的花生形状

之后,在物体周围添加一些带有空洞或陨石坑的小球体。这些会在花生表面产生类似陨石坑的区域,花生皮也会随之调整。最后,你会得到一个小行星的半可信的表示

考虑到这一点,我的问题是,有没有合适的开源或公共领域的蒙皮算法示例,可以找到模型的曲面并生成平滑、均匀分布的四边形网格,然后对其进行纹理处理


更多信息;我正在研究用于底层模型的CSG方法(添加和减去体积),然后再研究用于重新划分整个模型的其他方法。

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

这里有一个例子。这是一个开源项目,根据提供的网格是人形网格这一事实自动进行蒙皮。


等等,你是说另一种方式?这和行进中的立方体不一样吗

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

事实上,更接近搅拌机中的“肉丸”或孢子生物创造者。我试图避免使用体素,因为它们固有的数据量很大。在大尺度上,一个真实的行星将纯粹是疯狂的数据,万亿字节的体素信息。但是一些相交的虚拟原语要简单得多。你看过了吗。他们有多个用于和的开源几何算法。这看起来和你说的非常接近。这很有趣,我得做更多的研究。现在看看稀疏体素八叉树。如果你想用CSG技术生成3D模型,没有比这更好的软件了。它在后端使用前面提到的CGAL,但为参数化模型生成提供了基于脚本的接口。多年来我一直在使用它进行3D打印,我很喜欢它。它还有一个命令行界面,因此您可以从unix shell或command.exe编写脚本。然而,它将无法实时集成到您的游戏中。它需要您提前创建模型,我不确定您要的是什么。谢谢Jestin,这几乎正是我要找的,尽管我担心由于它的GPLv2,我将无法在专有软件中使用它\@Evilispork:CSG本身不会生成有机形状(也绝对不会生成像样的岩石)——你需要能够修改/扭曲初始几何体的修改器。调查。kkreiger(100kb第一人称射击手),以及。这应该让你开始。此外,要创建体素树。您需要一个定义树的递归公式。