跳至主要内容

Cosmo Tree Gen:免费 Godot 树木生成器,自带 LOD、碰撞体和低多边形预设

abe ·

Cosmo Tree Gen 是一款免费、MIT 许可的 Godot 4.6+ 插件,能在编辑器里实时生成树木,并导出为带 LOD 和碰撞体的 glTF。本文介绍它的功能以及在游戏中的用法。

Cosmo Tree Gen 封面:阳光草地上程序化生成的树木,配有标题文字 Cosmo Tree Gen、免费树木、LOD 碰撞 glTF 导出

Cosmo Tree Gen 是一款免费开源的 Godot 树木生成器:这个插件能在 Godot 4 编辑器里实时构建程序化树木,支持保存为预设,并能导出为已经生成好 LOD 和碰撞形状的 glb/glTF。它采用 MIT 许可证,需要 Godot 4.6 或更高版本,1.0.0 版于 2026年11月8日发布。

开发者在 GitHub 上的名字是 FrogCosmonaut,他因为受够了手工建模树木而做出了这个工具。对于在 Godot 中制作森林、公园或低多边形世界的人来说——包括每个三角形都要精打细算的网页和手机游戏——它能把几周的建模工作变成拖几个滑块、点一下随机种子按钮。

Cosmo Tree Gen 速览

是什么 Godot 4 程序化树木生成插件
开发者 FrogCosmonaut(GitHub)
许可证 MIT,免费开源
要求 Godot 4.6+(在 4.6.2 中开发)
最新版本 v1.0.0,2026年11月8日(首个公开测试版 0.5.0 于 11月3日发布)
导出 带 LOD0–LOD2 和碰撞体的 glb / glTF
预设 内置 4 个 + demo 文件夹中另有 7 个
AI 使用 开发者声明项目 100% 由人工制作
下载 github.com/FrogCosmonaut/cosmo_tree_gen

阳光明媚的草地上满是用 Cosmo Tree Gen 生成的各种树木和一丛灌木,图片:FrogCosmonaut

Cosmo Tree Gen 能生成什么

这个生成器由自定义的 Godot Resource 驱动,所以每棵树都是一组可以调整和保存的参数。主要构成部分包括:

  • 树干和树枝。 每个节点可以有多根树干,可选树根,还能按概率加入断枝。每一层树枝的长度和叶片卡的大小都由曲线控制。
  • 两种树叶方式。 一种是可配置细分级别的二十面体球(icosphere)叶团,很适合风格化和低多边形树木;另一种是叶片卡(card leaves),可单面或双面,带树冠法线和内部环境光遮蔽。
  • 带风吹摇摆的树叶着色器。 它还会限制 mipmap,让使用 alpha scissor 的树叶在远处不会消失。
  • 平面着色(Flat shading)。 一个可选开关,用来实现 PSX/PS2 风格的画面。

Godot 编辑器中并排的三个 Cosmo Tree Gen 预设:枝叶茂盛的白蜡树、使用 icosphere 树叶的低多边形树和一棵光秃的树,图片:FrogCosmonaut

预设和种子

插件自带四个预设——Ash、Bush、Low Poly Bush 和 Low Poly Tree——demo 文件夹里还有七个。你也可以把自己的设置保存为 CosmoTreePreset 资源。编辑器工具栏可以加载和保存预设、随机化种子,并为每棵树显示绘制调用(draw call)和三角形计数器,而这正是做网页和手机版本时需要盯紧的数字。

Godot 编辑器中同一棵 Cosmo Tree Gen 树使用两个不同的随机种子,呈现出新的树枝布局,图片:FrogCosmonaut

为真正的游戏而生:LOD、碰撞和导出

好看的树只完成了一半工作;游戏还需要它们绘制成本低、走过去能撞得上。Cosmo Tree Gen 两方面都照顾到了。

功能 你能得到什么 为什么重要
自动 LOD LOD0、LOD1 和 LOD2 网格,三角形预算和距离均可配置 远处的树消耗的三角形少得多
智能简化 先简化树干;叶片卡变得更少、更大,而不是被直接删掉 树冠在远处也能保持形状
碰撞形状 每根树枝一个凸形、每段树枝一个凸形,或单个 trimesh 在精度和物理开销之间自由取舍
碰撞层级和高度 选择哪些树枝层级参与碰撞(0 = 仅树干),并裁掉某个高度以上的碰撞 玩家会撞到树干,而不是头顶的树叶
树叶碰撞 包住整个树冠的凸包,或树枝末端的球体 适用于投射物或飞行角色
glb/glTF 导出 导出时带 LOD 和碰撞体,可选择在 .import 文件中链接材质 在任何场景或项目中复用树木
脚本 API 用 export_gltf 批量生成大量树木 一次性生成一整片各不相同的森林

通过 Cosmo Tree Gen 参数修改叶片大小,把稀疏的树变成茂密的树冠,图片:FrogCosmonaut

如何安装和使用 Cosmo Tree Gen

  1. 检查 Godot 版本。 需要 Godot 4.6 或更新版本。
  2. 下载插件,可以从 GitHub 仓库或其 Releases 页面获取。
  3. 把 addons/cosmo_tree_gen/ 复制到你的项目中,然后在 项目设置 → 插件 中启用。
  4. 在场景中添加一个 CosmoTreeGen 节点。
  5. 从工具栏选择一个预设,或者编辑 trunk_params、foliage_params 和 branch_levels 列表。
  6. 指定材质——可以用你自己的,也可以用插件自带的树皮和树叶材质。icosphere 树叶需要使用开启 UV1 Triplanar 的材质。
  7. 用 collision_type 和 collision_level 开启碰撞,并用 preview_collision 检查效果。
  8. 打开 generate_lod,并在项目设置中设定三角形预算和距离。
  9. 直接把树用于原型制作,或者导出它——在工具栏中导出为 glb/glTF。

Godot 检查器中的 Cosmo Tree Gen 树枝曲线编辑器正在实时改变树的形状,图片:FrogCosmonaut

给 Godot 网页和手机游戏的建议

  • 盯住计数器。 每棵树的绘制调用和三角形读数能让你尽早知道,这棵树会不会拖累手机或浏览器上的帧率。
  • 多用低多边形预设。 icosphere 树叶加平面着色,能做出干净的风格化效果,三角形数量远少于密集的叶片卡。
  • 导出一次,多次实例化。 用不同种子生成几种变体,导出后复用这些网格,而不是在运行时生成树木。
  • 碰撞保持简单。 仅树干碰撞(层级 0)通常就足以满足玩家角色的需要。
  • 测试导出结果。 在首个测试版中,开发者把 glTF 导出标记为实验性功能;更新插件后请重新检查导出的树木。

接下来会有什么

公开路线图按优先级排序,最先要做的是为最后一级 LOD 生成 billboard 替身图像(impostor)、更多低多边形树叶类型(松树形和方块形),以及一个从幼苗到老树的树龄滑块。后续计划还包括预设中的物种参数范围、仅投射阴影的代理网格、原地烘焙树木、分层风效、树桩和倒下的树干、花朵、果实和蘑菇、节省一次绘制调用的纹理图集,以及预设库。细节可能会变化,请关注 GitHub 仓库获取最新动态。

常见问题

Cosmo Tree Gen 免费吗?

免费。它基于 MIT 许可证免费开源,所以可以用在商业游戏中。

需要哪个版本的 Godot?

Godot 4.6 或更高版本。它是在 Godot 4.6.2 中开发的。

能把树导出到其他引擎或工具吗?

树木以带 LOD 和碰撞体的 glb/glTF 格式导出,这是许多引擎和 3D 工具都能打开的标准格式。

能做低多边形树吗?

能。它包含 Low Poly Tree 和 Low Poly Bush 预设、icosphere 树叶,以及可选的平面着色模式,可以做出 PSX/PS2 风格。

制作过程中用了 AI 吗?

开发者声明该项目 100% 由人工制作,没有使用任何 AI。

它在 Godot Asset Library 上吗?

开发者表示正在提交中;目前请从 GitHub 仓库下载。

相关文章

游戏加载中…

VENOGAME / PLAYBOOK

我的竞技场

保存在此设备,无需账号。

点击爱心,建立自己的游戏收藏。