I keep reading Rust is not that well suited for building game engines specially non-ECS ones. compared to C++ what did you find extra hard to implement in a performant way?
Solari looks interesting. I'm kind of curious how Bevy handles plugins like that which I feel must require some deep integrations in the rendering pipeline and shaders. From my experience with Three that involves some nasty shader patching etc...
The crate itself is further split between the realtime lighting plugin, base "raytracing scene" plugin that could be used for your own custom raytracing-based rendering, and the reference pathtracer I use for comparing the realtime lighting against.
There were some small changes to the rest of Bevy, e.g. adding a way to set extra buffer usages for the buffers we store vertex/index data in from another plugin https://github.com/bevyengine/bevy/pull/19546, or copying some more previous frame camera data to the GPU https://github.com/bevyengine/bevy/pull/19605, but nothing really major. It was added pretty independently.
Bevy's creator and project lead here. Feel free to ask me anything!
I keep reading Rust is not that well suited for building game engines specially non-ECS ones. compared to C++ what did you find extra hard to implement in a performant way?
Solari looks interesting. I'm kind of curious how Bevy handles plugins like that which I feel must require some deep integrations in the rendering pipeline and shaders. From my experience with Three that involves some nasty shader patching etc...
Hi, author of Solari here!
It was pretty straightforward honestly. bevy_solari is written as a standalone crate (library), without any special private APIs or permissions or anything https://github.com/bevyengine/bevy/tree/main/crates/bevy_sol....
The crate itself is further split between the realtime lighting plugin, base "raytracing scene" plugin that could be used for your own custom raytracing-based rendering, and the reference pathtracer I use for comparing the realtime lighting against.
There were some small changes to the rest of Bevy, e.g. adding a way to set extra buffer usages for the buffers we store vertex/index data in from another plugin https://github.com/bevyengine/bevy/pull/19546, or copying some more previous frame camera data to the GPU https://github.com/bevyengine/bevy/pull/19605, but nothing really major. It was added pretty independently.
All guides on https://taintedcoders.com/ have been updated to 0.17. Congrats to everyone on the release