branchrust_reboot/main/shader-memory-review2cancel
17 Commits over 31 Days - 0.02cph!
Cherry picked shader changes from main
Lazy-instantiate WorldSplineSharedData in the same way as TrainWagonLootData. Change TrainWagonLootData back to not using null-coalescing operator. Although it was perfectly fine in this case, ScriptableObjects do have the same null overriding situation as MonoBehaviours, and I'd rather not give anyone the wrong ideas.
Delayed some calls (RenderScale, TrainWagonLootData) until after shaders bundle is loaded to prevent shader duplication in memory
Moved all shaders to their own bundle (shared/shaders.bundle) and made it load first, before all other bundles
Added back highly simplified "Standard" and "StandardSpecular" overrides
Further reduced variants on a variety of shaders; total now down to ~0.16MB from 3.10GB (after de-duplication, coming later)
Stripped more variants on Cliff and Decal sets
Reduced variants on Cliff, Foliage and Decal shaders
Halved variants in Rust/Standard Blend Layer shader pair
Hack to get new materials (and unity's default material) to use our default shader "Rust/Standard"
Halved variants in Rust/Standard Wind shader pair
Changed all materials using Standard to Rust/Standard and nuked overrides (saved 100MB, for some reason)
Fixed build errors on BRZone shader
Fixed shiny stuff and reduced Rust/Standard variants another 23%
Cherry picked relevant changesets from /main/shader-memory-review (cleaning up)