You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What problem does this solve or what need does it fill?
Bevy's global illumination in its current state is fully static. Both lightmaps and irradiance volumes do not adapt to changes in light around them, such as during day/night cycles. This limitation becomes more glaring with the addition of procedural atmospheric scattering (#16314), where dynamic skies demand a matching GI solution. Currently, updating GI requires fully replacing precomputed data, which is impractical for smooth transitions.
What solution would you like?
In Unity 6, a not-quite-novel solution to this problem was implemented with low-end hardware in mind, such as mobile devices. They presented the idea of "lighting scenarios", which allowed developers to bake global illumination for a scene multiple times with different lighting, such as during the day, evening, and night. These scenarios can then be interpolated to provide a simple approximation of real-time global illumination. Bevy still wouldn't need to handle the baking of lightmaps or irradiance volumes, but we would need to handle interpolating between states based on a curve. Due to the performance implications of having to sample two lightmaps/irradiance volumes instead of one, scenarios should be gated behind a cargo feature or otherwise differentiated from their cheaper counterparts.
What alternative(s) have you considered?
Developers could manually transition from one scenario to another using loading screens or by having separate versions of the same level that users can play. This is not a seamless solution, though, and is much more reminiscent of limitations during the early 2000s, rather than modern graphics. Developers could manually adjust ambient light values to mimic global illumination, but this wouldn't match the level of quality of precomputed GI.
What problem does this solve or what need does it fill?
Bevy's global illumination in its current state is fully static. Both lightmaps and irradiance volumes do not adapt to changes in light around them, such as during day/night cycles. This limitation becomes more glaring with the addition of procedural atmospheric scattering (#16314), where dynamic skies demand a matching GI solution. Currently, updating GI requires fully replacing precomputed data, which is impractical for smooth transitions.
What solution would you like?
In Unity 6, a not-quite-novel solution to this problem was implemented with low-end hardware in mind, such as mobile devices. They presented the idea of "lighting scenarios", which allowed developers to bake global illumination for a scene multiple times with different lighting, such as during the day, evening, and night. These scenarios can then be interpolated to provide a simple approximation of real-time global illumination. Bevy still wouldn't need to handle the baking of lightmaps or irradiance volumes, but we would need to handle interpolating between states based on a curve. Due to the performance implications of having to sample two lightmaps/irradiance volumes instead of one, scenarios should be gated behind a cargo feature or otherwise differentiated from their cheaper counterparts.
What alternative(s) have you considered?
Developers could manually transition from one scenario to another using loading screens or by having separate versions of the same level that users can play. This is not a seamless solution, though, and is much more reminiscent of limitations during the early 2000s, rather than modern graphics. Developers could manually adjust ambient light values to mimic global illumination, but this wouldn't match the level of quality of precomputed GI.
Additional context
Reference: New ways of applying global illumination to your worlds in Unity 6
When the skybox is dimmed in the irradiance volumes example, the only way to update global illumination is to completely replace the existing GI.
![Image](https://private-user-images.githubusercontent.com/29241972/409737050-0d2d1207-a77f-4977-9c6c-f113e7808b2d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0ODA2NjEsIm5iZiI6MTczOTQ4MDM2MSwicGF0aCI6Ii8yOTI0MTk3Mi80MDk3MzcwNTAtMGQyZDEyMDctYTc3Zi00OTc3LTljNmMtZjExM2U3ODA4YjJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDIwNTkyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdiNWJmMzRkMTIwMzY0ZmRmNWRmMjRiMDdlNDBlMTlmMWQ3OTc4ODVmZTdhM2I5Nzk4ODA5MGNjM2ExZTRlYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YHts_3SbGcaIMCFBnSY-jN5B-W8rVrjmlx5gnDzAsMQ)
The text was updated successfully, but these errors were encountered: