程序生成低聚树

时间:2015-03-31 18:30:37

标签: algorithm unity3d procedural-generation

我正在寻找能够生成低多边树的算法或产品。语言无关紧要。我已经搜遍过,并且有很多“树生成”算法,但它们迎合了更加逼真的树木,而不是相反。

这是我想要动态生成的树的类型: Low poly examples

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

2 个答案:

答案 0 :(得分:3)

我把团结的东西放在一起。它使用Quickhull算法生成实体,该算法很容易在网络上解释和找到。

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

然后在生成斑点之后,我可以在顶点周围移动,相应地调整法线。要记住的是让对象成为你需要的“低多边形”外观,确保每个三角形都有自己的顶点和法线,三角形上的三个都是相同的。

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

答案 1 :(得分:0)

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

...否则

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

如果您专门询问如何合并树叶,则可以在节点周围生成isosurfaces并使用marching cubes进行评估。 可以从头开始制作或编写脚本,但无论哪种方式都是重要的工作。

作为iso-surfaces的便宜替代品,您可以通过修改预生成的基元来快速获得结果。我可能会生成一些icospheres(使用来自L系统的数据)并使用额外的分支数据来缩放和变形它们。 这不仅构建成本更低(节省了工作日,使你的iso表面正确),而且执行速度更快,并且可以直接控制树叶拓扑。

一旦你获得了blobby形状,就可以随机设置坐标以获得有机的外观。