Integrating the euc software renderer into the bevy game engine.
Software rendering has a few interesting applications over hardware accelerated graphics. Since it runs entirely on the CPU it doesn't require rasterizing hardware (e.g. a GPU) and is thus much more portable, contained and lightweight. This is useful for "one-off" renders (for e.g. thumbnails or preview images) or for embedded and low-power devices that don't have a GPU.
CPU rendering also allows for much easier experimentation and extension/customization of the rendering code, it is very easy to build your own rendering pipeline with euc and thus extend this crate in your own way. Because of that euc might also be interesting to people looking for a more unique look that requires a lot of custom render code, as it very easy to iterate on designs and looks with this plugin.
🚧 This project is still under development and is currently lacking both features and performance. The renderers are also not guaranteed to be "correct" implementations of their named algorithms. Feedback and contributions are welcome.
The Bevy euc plugin is currently compatible with Bevy version 0.18
Add the bevy_euc dependency to Cargo.toml:
[dependencies]
bevy_euc = { version = "0.1.0", git = "https://github.com/arseeeeN/bevy_euc.git" }Add the EucPlugin as well as the render plugin of your choice to your app:
use bevy::prelude::*;
use bevy_euc::EucPlugin;
use bevy_euc::simple::SimpleRendererPlugin;
App::default()
.add_plugins(DefaultPlugins)
.add_plugins(EucPlugin)
.add_plugins(SimpleRendererPlugin);
.run();See the examples/ folder for examples of the different render plugins and how to use them.