Uploaded June 2025 | Updated September 2026, 1 week ago
So... this was a bigger chunk than I realized at first x3 Unlike other types of assets, materials are a bit "special" - their updates are relatively small (just a few values changing), but more frequent!
Contrast this to meshes or textures, where the bulk of the change is the actual data itself (geometry, pixels) - we can shove that to shared memory and then send a small structured message saying "This data needs to be uploaded", so I couldn't use the existing asset system for materials efficiently.
Instead I built a specialized system for them which collects all the material updates dynamically into buffers, writing them straight to shared memory as they're submitted, along with a metadata buffer describing those updates. This is then read Unity-side and pushed into the materials themselves.
It required updating the code a bit on all existing materials to adapt them to the new system a bit - not a huge structural change, lots of bulk search & replace and then fixing up any inconsistencies.
It now works! :D Now that they're in, I could implement the material assignment for mesh renderers now to and things actually have materials now!
There's no textures yet, because those aren't implemented yet, but those are next - and hopefully less of an ordeal compared to this x3
Support development at: patreon.com/resonite
Official website: resonite.com
So... this was a bigger chunk than I realized at first x3 Unlike other types of assets, materials are a bit "special" - their updates are relatively small (just a few values changing), but more frequent!
Contrast this to meshes or textures, where the bulk of the change is the actual data itself (geometry, pixels) - we can shove that to shared memory and then send a small structured message saying "This data needs to be uploaded", so I couldn't use the existing asset system for materials efficiently.
Instead I built a specialized system for them which collects all the material updates dynamically into buffers, writing them straight to shared memory as they're submitted, along with a metadata buffer describing those updates. This is then read Unity-side and pushed into the materials themselves.
It required updating the code a bit on all existing materials to adapt them to the new system a bit - not a huge structural change, lots of bulk search & replace and then fixing up any inconsistencies.
It now works! :D Now that they're in, I could implement the material assignment for mesh renderers now to and things actually have materials now!
There's no textures yet, because those aren't implemented yet, but those are next - and hopefully less of an ordeal compared to this x3
Support development at: patreon.com/resonite
Official website: resonite.com










