【问题标题】:Generating 3D models via primitive skinning通过原始蒙皮生成 3D 模型
【发布时间】:2013-10-07 19:36:52
【问题描述】:

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

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

然后添加带有空隙或陨石坑材料的较小球体,散布在物体周围。这些会在花生表面产生类似火山口的区域,并且皮肤会调整以适应。最后你会得到一个小行星的半可信的表示。

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

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

【问题讨论】:

  • 你看过CGAL。他们为mesh generationprocessingpolyhedra 提供了多种开源几何算法。 NEF Polyhedra section 看起来特别接近您所说的。
  • 这很有趣,我得做更多的研究。现在正在查看稀疏体素八叉树。
  • 如果您想拥有使用 CSG 技术生成 3D 模型的脚本,没有比 OpenSCAD 更好的软件了。它在后端使用前面提到的 CGAL,但为参数模型生成提供了一个基于脚本的接口。我多年来一直使用它进行 3D 打印,并且喜欢它。它还具有命令行界面,因此您可以从 unix shell 或 command.exe 编写脚本。但是,它不能实时集成到您的游戏中。这将要求您提前创建模型,我不确定您正在寻找什么。
  • 谢谢 Jestin,这几乎正是我正在寻找的东西,尽管我担心由于它的 GPLv2 我将无法在专有软件中使用它。 :\
  • @EvilSpork:单独的 CSG 不会产生有机形状(当然也不会产生像样的岩石)——你需要可以修改/扭曲初始几何形状的修改器。调查 .kkreiger(100kb 第一人称射击游戏)、ken perlin homepagemetaballs。那应该让你开始。此外,要制作体素树,you do not need terabytes of data。您需要一个定义树的递归公式。

标签: c++ algorithm model 3d skinning


【解决方案1】:

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

这是一个例子。这是一个开源项目,它会根据所提供的网格是类人动物这一事实自动换肤。 http://igl.ethz.ch/projects/fast/

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

【讨论】:

  • 实际上更接近搅拌机或孢子生物创造者中的“肉丸”。我试图避免使用体素,因为它们固有的数据量很大。在宏大的范围内,一个现实的星球将只是纯粹的疯狂数据,TB 级的体素信息。但是一些相交的虚拟基元会简单得多。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2016-12-03
    • 2017-05-31
    • 2011-01-28
    • 2012-02-10
    • 1970-01-01
    • 2020-04-05
    相关资源
    最近更新 更多