>> it would be interesting to have materials seperated, as a reference library– >> eg, one eye shader, >> one leather, one metal shader, one wood... for all assets across a >> production, and tweak those >> in a master scene. Switch the renderer? Just go to the master scene, drop in >> the renderer specific >> shaders, export the library – all assets are updated automagically on scene >> load. In theory it >> could work like this, but in practice it’s just not reliable to be any use.
[Matt] That is exactly what we were trying to do as we have many models in our environments. Each environment has a palette of colors, textures, and shaders to define it’s style. Any new objects or models introduced to the environment need to work with the existing palette of colors, textures and shaders. Referenced material libraries would make this less cumbersome, but the fact we must open each scene using the models to propagate the changes forward to the game engine was still a bit of a pain even if the material referencing worked. >> A compound could be deved with ports for textures to be linked to all >> ubershaders from >> different engines, and paramaters too. then toggle through which one will be >> used with an >> integer switch or something simmilar... if different render engines are the >> main problem. >> then just call a script to change tge value in the switch. [Matt] Possible in theory, but in practice this has proven to be problematic with the bugs present in shader compound management. While the problem is supposedly fixed in the latest releases, shader compounds still occasionally detach from the material, cause crashes, and the process for updating the compound is less than ideal. The fundamental problem lies in material management, but everything related to it pays the price. Matt

