Easy to use, customizable, efficient 3D renderer library built on wgpu.
Library is under active development. While internals will likely change quite a bit, the external api will only experience minor changes as features are added.
To use rend3 add the following to your Cargo.toml:
rend3 = "0.2.0"
Take a look at the examples getting started with the api.
rend3
tries to fulfill the following usecases:
- Games and visualizations that need a customizable, and efficient renderer.
- Small projects that just want to put objects on screen, but want lighting and effects.
- A small cog in a big machine: a renderer doesn't interfere with the rest of the program.
rend3
is not:
- A framework or engine. It does not include all the parts needed to make an advanced game or simulation nor care how you structure
your program. I do have plans for a
rend3-util
(or similar) crate that is a very basic framework for the second use case listed above.
This is the primary crate which holds the main [Renderer
] struct. We have some other crates:
rend3-gltf
: contains code to load from a .gltf or .glb file.rend3-routine
: contains render routines for drawing PBR-style objects.
On Vulkan and DX12 "gpu mode" is enabled by default, which uses modern bindless resources and gpu-based culling. This reduces CPU load and allows significantly more powerful culling.
I have grand plans for this library. An overview can be found in the issue tracker under the enhancement label.
We have a matrix chatroom that you can come and join if you want to chat about using rend3 or developing it:
If discord is more your style, our meta project has a channel which mirrors the matrix:
We welcome all contributions and ideas. If you want to participate or have ideas for this library, we'd love to hear them!
License: MIT OR Apache-2.0 OR Zlib