31 个版本 (6 个破坏性更新)
0.14.2 | 2024年7月16日 |
---|---|
0.13.24 | 2024年5月27日 |
0.13.14 | 2024年3月27日 |
0.3.4 | 2023年9月19日 |
在 游戏开发 中排名 165
每月下载量 921 次
135KB
2K SLoC
Bevy Mesh Terrain
安装
cargo add bevy_mesh_terrain
Bevy 版本
地形 0.6.x -> Bevy 0.12.x
地形 0.13.x -> Bevy 0.13.x
运行示例
cargo run --example basic
描述
一个非常以 Bevy 为中心的插件,尽可能利用实体、组件和系统,使其尽可能易于理解和交互。
您创建一个实体,并为其分配 'TerrainConfig' 和 'TerrainData' 组件,然后插件系统将创建子实体,每个子实体代表一个渲染块。这样,它与体素分块系统(类似于 Minecraft)类似,但使用高度场(二维)而不是体素(三维)。
纹理类型
高度图纹理 高度的来源。这是一个 R16 格式的灰度图像,如果值是完全黑色,则着色器实际上会将其 alpha 设置为 1,这样您就可以在地面挖洞以创建洞穴等(您可能想在那里放置岩石小玩意使其看起来更漂亮!)
颜色/漫反射纹理数组 这是实际地形纹理的来源。最多可以加载并使用 splat 映射绘制 256 个纹理,例如草地、泥土、雪和沙子。当然,您可以编辑该文件以获得不同的外观。
Splat 映射纹理 这是一个用于漫反射纹理数组的 RGBA 控制映射纹理,使用特殊的数据协议。您可以在 '地形编辑器' 中编辑此文件以在某个区域绘制草地,在另一个区域绘制泥土,在山上绘制雪等。
Splat 映射纹理协议
现在,splat 映射通过借鉴 'Microsplat' 文档的灵感,支持单个材料中使用多达 255 个纹理。限制是任何给定像素只能混合两种纹理。
喷溅图R通道 - 一个从0.0到255.0的浮点数,转换为0-254的整数,用于指定在层0上用于此像素的纹理(255个纹理中的)。喷溅图G通道 - 一个从0.0到255.0的浮点数,转换为0-254的整数,用于指定在层1上用于此像素的纹理(255个纹理中的)。喷溅图B通道 - 用于指定在这里使用R通道层(0.0)与使用G通道层(1.0)的比例。喷溅图A通道 - 未使用。
示例纹理
来自Lynoc(itch.io)的示例纹理
参考着色器材质
查看 https://github.com/bevyengine/bevy/blob/main/examples/shader/shader_material.rs
编辑器(WIP)
依赖项
~48–86MB
~1.5M SLoC