-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
What problem does this solve or what need does it fill?
Light maps (cube maps, irradiance volumes, reflection probes) are a class of assets used to "fake" pretty but expensive global illumination. Bevy has support for these now, but as #10057 says, we have no way to generate them ourselves:
An easy way to generate reflection probe cubemaps is to bake them in Blender and use the export-blender-gi tool that's part of the bevy-baked-gi project. This tool takes a .blend file containing baked cubemaps as input and exports cubemap images, pre-filtered with an embedded fork of the glTF IBL Sampler, alongside a corresponding .scn.ron file that the scene spawner can use to recreate the reflection probes.
What solution would you like?
- Add features for global illumination to Bevy, even if they're slow.
- Add a tool to generate the lightmaps and export them as assets.
- Teach users how to use this workflow.
This is tagged with A-Editor, as while it is possible to do this using a non-GUI solution, it makes more sense as a component of a larger scene editor.
What alternative(s) have you considered?
Existing third-party light baking tools exist, and can be used with Bevy.
These are generally harder to customize / integrate, and cannot be used to dynamically generate lightmaps as part of procedurally generated environments.
Additional context
Pre-existing work:
- bevy_solari by @JMS55: hardware raytracing GI
- strolle by @Patryk27: software raytracing for GI, see reddit explanation
- bevy_baked_gi by @pcwalton, a C# + Rust workflow for generating lightmaps for Bevy