>> 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

Reply via email to