19个不稳定版本 (6个破坏性版本)
0.14.2 | 2024年7月8日 |
---|---|
0.13.2 | 2024年7月6日 |
0.13.0 | 2024年2月27日 |
0.12.1 | 2023年12月1日 |
0.8.0 | 2022年8月21日 |
#64 在 图形API
每月34次下载
41KB
552 行
bevy_water
Bevy的动态水材质(带有波浪)。
示例
一队海盗船随着波浪移动。
cargo run --release --example pirates
WASM示例
设置
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli
构建和运行
以下是一个针对 pirates
的示例。对于其他示例,请更改以下命令中的 pirates
。
WebGPU
RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo build --release --example pirates \
--target wasm32-unknown-unknown \
--no-default-features --features webgpu,embed_shaders,depth_prepass
echo "wasm-bindgen"
wasm-bindgen --out-name pirates_webgpu \
--out-dir examples/wasm/target \
--target web target/wasm32-unknown-unknown/release/examples/pirates.wasm
echo "Optimize wasm"
wasm-opt --strip-debug --vacuum -Oz \
-o ./examples/wasm/target/pirates_webgpu_bg.wasm ./examples/wasm/target/pirates_webgpu_bg.wasm
WebGL2
cargo build --release --example pirates --target wasm32-unknown-unknown \
--no-default-features --features webgl2,embed_shaders
echo "wasm-bindgen"
wasm-bindgen --out-name pirates_webgl2 \
--out-dir examples/wasm/target \
--target web target/wasm32-unknown-unknown/release/examples/pirates.wasm
echo "Optimize wasm"
wasm-opt --strip-debug --vacuum -Oz \
-o ./examples/wasm/target/pirates_webgl2_bg.wasm ./examples/wasm/target/pirates_webgl2_bg.wasm
然后通过浏览器提供 examples/wasm
目录。例如。
# cargo install basic-http-server
basic-http-server examples/wasm
功能
- 移动3D波浪(顶点高度偏移)。
- 使用
get_wave_point
获取波浪高度,以根据水面高度动态移动对象。 - 可平铺 - 允许添加/删除水块以创建无尽的海洋。
- 基于波浪高度计算法线以进行照明。
- 导入
bevy_pbr::*
着色器以支持照明/阴影。
想法/改进
- 改进水颜色/纹理。
- 支持高度图以根据水深调整波浪。
- 遮罩纹理以从不应有水的地方去除水。
- 表面下的体积水。
- 为部分位于表面下的对象(船只、同伴)提供动态深度缓冲区。渲染通道?
版本
- Bevy 0.14:
bevy_water = "0.14"
- Bevy 0.13.1:
bevy_water = "0.13"
- Bevy 0.12:
bevy_water = "0.12"
- Bevy 0.11:
bevy_water = "0.11"
- Bevy 0.10:
bevy_water = "0.10"
- Bevy 0.9:
bevy_water = "0.9"
- Bevy 0.8:
bevy_water = "0.8"
依赖项
~37–73MB
~1.5M SLoC