# wpgu-renderer A small [wgpu](https://github.com/gfx-rs/wgpu) renderer written in [Rust](https://github.com/rust-lang/rust). ## Try it out [rasanen.dev/wgpu-renderer](https://rasanen.dev/wgpu-renderer) ## Features - Physically based shading - (F: Fresnel-Schlick approximation) - (G: Smith's Schlick-GGX) - (D: Trowbridge-Reitz GGX) - glTF models - 1 realtime pointlight - Simple wgsl preprocessor for includes - Works on WASM 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) ## References - [wgpu examples](https://github.com/gfx-rs/wgpu/blob/master/wgpu/examples) - [Learn Wgpu](https://sotrh.github.io/learn-wgpu/) - [Learn OpenGL: PBR](https://learnopengl.com/PBR/Theory) ## Assets - Sponza - Obtained from [KhronosGroup glTF-Sample-Models repository](https://github.com/KhronosGroup/glTF-Sample-Models/tree/16e2408d31e06d4b0bcf6123db472e802d71f081/2.0/Sponza), converted to .glb