程序生成低多边形树

Procedurally Generate Low Poly Trees

我正在寻找可以生成低多边形树的算法或产品。无所谓语言。我到处搜索,有很多 "tree generation" 算法,但它们迎合了看起来更逼真的树木,而不是相反。

这是我希望即时生成的树类型:

即使只是生成看起来像树顶部的斑点的算法也会有所帮助。

尝试使用您可用的任何现有系统,同时调整参数以减少三角形数量。

否则...

通用 L-system 将有助于程序化植物生成(不仅是树木)。

如果您具体询问如何合并叶子,您可以生成 isosurfaces around nodes and evaluate using marching cubes。 可以从头开始制作或编写脚本,但无论哪种方式都是一项重要的工作。

作为等值面的更便宜的替代方法,您可以通过修改预生成的基元来快速获得结果。我可能会生成一些 icospheres(使用来自 L 系统的数据)并使用额外的分支数据来缩放和变形它们。 这不仅构建起来更便宜(为您节省数天的工作时间来正确设置等值面),而且执行速度更快,并让您直接控制植物拓扑。

一旦你有了你的斑点形状,随机化坐标以获得有机的外观。

我把一些东西统一起来了。它使用 Quickhull 算法生成实体,该算法在网络上很容易解释和找到。

这将生成输入点的凸包。所以我在树形内部随机生成点。

然后在生成 blob 之后,我可以围绕顶点移动相应地调整法线。要记住的是让对象看起来 "low poly" 确保每个三角形都有自己的顶点和法线,并且三角形上的所有三个都相同。

这个解决方案是稳定的 1.0,只允许一个树块,但它是我目前正在使用的,并且在资产商店中供任何感兴趣的人使用。 Low Poly Tree Generator