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次下载

MIT/Apache

41KB
552

bevy_water

Bevy的动态水材质(带有波浪)。

示例

一队海盗船随着波浪移动。

cargo run --release --example pirates

来自polyhaven的荷兰船模型(CC0)

WASM示例

在此处查看WebGPU和WebGL版本

设置

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