c++ - 通过原始蒙皮生成 3D 模型

标签 c++ algorithm model 3d skinning

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

例如,一颗小行星最初可能是两个相交的简单球体。尘土飞扬的岩石 Material ,它会告诉蒙皮算法提供平滑的沙质曲线和偶尔出现的锯齿状巨石。可能最终会变成一种 block 状的花生形状。

然后添加较小的球体,其 Material 为空洞或陨石坑,散布在物体周围。这些会在花生表面产生类似火山口的区域,并且皮肤会适应。最后,您将得到一个半可信的小行星表示。

现在考虑到这一点,我的问题是,是否有任何不错的蒙皮算法的开源或公共(public)领域示例可以找到模型的表面并生成平滑、均匀分布的四边形网格,然后可以对其进行纹理化?

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

最佳答案

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

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

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

关于c++ - 通过原始蒙皮生成 3D 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18131424/

相关文章:

c++ - 二进制集合计算器函数

algorithm - 查找数组中第 n 个最小的元素

algorithm - 如何切线连接N个相同直径的圆?

java - 求一组二次方程的解

c++ - 在 createddialog 创建的窗口中捕获 OnMouseMove 消息以进行编辑控件?

c++ - std::sort 与 lambda 函数不匹配调用

c++ - "++l *= m"是未定义的行为吗?

JavaFX(带有 FXML)MVC : Model use Controller

mysql - 根据子模型/关系对父模型进行排序

php - 如何覆盖magento核心模型(模型类文件直接在app/code/core/Mage/Core/Model目录下)