we`ve written a connector that syncs highly customizable products into and USD scene. Currently we are using predefined materials we upload to the nucleus when used for the first time. Then we reference those material files in our usd scenes.
Now we are thinking of a more dynamic approach where the materials are not stored into mdl files on the nucleus and are created directly inside of the usd scene. How could this affect the performance? Especially when we think of many users that could reuse the mdl files (don´t know if cache (for example) caches some kind of complied result for a material file or something like that, that is reused by other sessions).
How do materials that are currently not used affect the resource consumption of a scene? Think of a product that is configured in “red”. Our connector creates than the materials and links that to the scene nodes. In the next step the product color is changed to “blue”, so the connector creates the “blue” material and changed the binding on the scene nodes. Currently we do not remove the previously created “red” material… would it make sense to remove that unused material in this case?
Is there a way to override parameters of a material when binding it? Or do I have to create a new instance for every combination of parameters I need?
Thanks for your help