1.9 KiB
1.9 KiB
wpgu-renderer
A small wgpu renderer written in Rust.
Try it out
rasanen.dev/wgpu-renderer
Note: the .wasm is about 50 MB because it embeds Sponza.
Controls:
- WASD - Move horizontally
- Ctrl/Space - Move vertically
- Mouse - Look around
- Scrollwheel - Increase/Decrease movement speed
- ESC - Quit (Only on standalone version)
Features
- PBS
- glTF models
- 1 realtime pointlight
- Simple wgsl preprocessor for includes
- Runs on WASM and native desktop
- Tested on:
Ubuntu 22.04 (Mesa 23.1.0-devel)
Windows 10 Pro 21H2
Firefox 109.0
Chrome 109.0.5414.120
- Tested on:
TODO:
- Shadow mapping
- Restructuring
- Simplify/abstract renderpasses; will be nice to have for PP and GI
src/core/state.rs
is a mess; separate input handling, pipeline, passes
- SSAO
- Bloom
- AA
- Texture filtering
- Immediate mode UI (dear imgui, egui)
- Some type of GI (DDGI, VXGI)
Running locally
Standalone:
cargo run --release
WASM requires:
- wasm-pack
cargo install wasm-pack
- miniserve, or some other http server, such as
python3 -m http.server
.- For miniserve, see:
run-wasm.sh
- For miniserve, see:
References
Assets
- Sponza
- Obtained from KhronosGroup glTF-Sample-Models repository, converted to .glb
- Cube
- Obtained from KhronosGroup glTF-Sample-Models repository, converted to .glb