百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

GodotGrass

> 编程语言
开源

由《Ghost of Tsushima》启发的每片草叶渲染,在 Godot 中实现

651 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

由《Ghost of Tsushima》启发的每片草叶渲染,在 Godot 中实现

GodotGrass

在 Godot 引擎中进行的一种草地渲染实验受到《Ghost of Tsushima》中使用的技术的启发。单个草叶通过使用 Godot 的 MultiMeshInstance 节点在 GPU 上实例化生成,并通过着色器驱动的方法进行着色和动画处理。

结果

草地阴影

草地的颜色取决于基色和尖端颜色,沿着模型纵向混合。通过在片段着色器中水平弯曲法线,为每片叶子创建了更圆润的外观。通过根据其模型空间高度使叶子纵向变暗,模拟了环境光遮蔽。默认情况下,启用草地阴影映射可提高遮蔽着色(但代价非常高),但通过更改基色和尖端颜色,也可以重现非常接近的外观。

如《Ghost of Tsushima》GDC 会议中所述,垂直于摄像机的草叶在视图空间中会水平拉伸。此外,草叶还根据其高度(不包括风力)进行程序性弯曲。草叶上的每个顶点的弯曲角度取决于草叶的总高度以及顶点沿草叶的高度,从而呈现出曲线状外观。

在 Godot 的默认照明模型上实现了一个基本的"黑科技"草地照明模型。环境光照模拟通过将漫反射光与功率曲线相结合,使远离光源的顶点仍然略有照明。表面散射模拟通过根据视图与光源向量之间的角度添加单独的颜色来实现。镜面高光由 Godot 的默认照明模型驱动。

为了使草地呈现出不那么均匀的外观,我们创建了一个"聚集系数"参数,以根据细胞噪声纹理对一组草叶的初始旋转偏移进行聚集。同一个噪声纹理还用于独立地对草叶的高度和最大弯曲角度进行聚集。此外,还可以使用单独的参数来控制全局草地密度。风的模拟是通过滚动不同频率采样的Perlin噪声纹理来实现,以获得风的效果。

grass_demo.mp4

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#godotgodot-engine

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言