RE: [K3d-development] Eureka! Layered Shaders with Aqsis
Brought to you by:
barche
From: Shead, T. <ts...@sa...> - 2005-09-28 20:52:31
|
> Does it make Shrimp obsolete ? Yes-and-no ... This is a non-standard, Aqsis-specific feature, so you'd still want Shrimp if you need to generate shaders for other render engines. Also, a layered shader IS-A RenderMan shader, so there's nothing to prevent you from creating shaders in Shrimp, to be layered further at runtime in Aqsis. Having said that, I don't envision turning to an external code-generation tool like Shrimp when I can compose shader networks directly in K-3D. To use layered shaders you simply: * Substitute AqsisSurfaceShaderLayer for RenderManSurfaceShader in a RenderManMaterial node. * Pick a shader in the AqsisSurfaceShaderLayer node. * Modify arguments normally. * Create additional AqsisSurfaceShaderLayer nodes as-needed. * Make connections between layers using a special type of property. This could be further simplified at the UI level by a specialized type of panel (but not by me). Without layered shaders (and with-or-without visual tools to generate the code), you get a combinatorial explosion of specializations, e.g: textured_matte, textured_plastic, textured_metal, textured_matte_with_decal, textured_plastic_with_decal, ... Whereas with layers you can combine any of "texture", "decal", "matte", "plastic", "metal", "skin", and-so-on. The devil is in the details, of course ... My testing has been with a trivial collection of shaders - "constant", "mix", and "matte". Developing the right collection of components, with a reasonable level of granularity, will be a (pleasant) challenge. Cheers, Tim |