The train model is a very well designed rig of objects built by Daniel Wray.
Early on in the development of this model, texture maps were used, however in the following weeks for some reason it proved to be quite buggy, so in a period of a few day the entire model was shaded with custom Renderman shaders.
This is one of the more elaborate shader setups in the entire collection of models.
The shaders built and used for this train model are :
pw_trainmetal
pw_trainwheel
pw_rusty_metal
MOSAICsurface
The pw_trainmetal shader was designed to be used on a multiple objects with different material colors and properties. So from the ground up the shader has two options for color, Material Color and Mirror Color. The shader also has an environmental reflection function built in that will take care of any reflection maps used, should the need arise. Since this shader was designed for flexiblity with color assignments, the fragment can be assigned to different Blender materials that use different colors without having to duplicate the shader or use a different shader.
pw_trainmetal.sl Mosaic Shader Fragment
(RSL parameter name) = (Blender/Mosaic parameter assignment)
Color1 = <MatCol_C>
Color2 = <MatMirrorColor_C>
Phong_SpecColor = <MatSpecCol_C>
Metal_Spec = <MatSpec_M1.0_A0.0_F>
envtexturename = <SysGetGlobalEnvMap_S>
The pw_trainwheel shader is a modified rail.sl shader, though with it's rust pattern reversed so that the rust will be applied from top down, as opposed to the rail shader which was meant to indicate that due to repeated use the top of the rail has been worn smooth and rust free. This shader will be the quite the elaborate design as it was meant for the wheels, however due to the code the rust pattern will only be placed in a particular direction and that cannot be changed. So two different Blender materials for the wheels need to be made, as well as a duplicate shader fragment of pw_trainwheel, one for the left side of the train and one for the right. This way the shader looks accurate to the real thing. Not only that but the same shader will be used for the springs and again a whole new Blender material will need to be made, as well as a duplicate shader fragment.
The pw_rusty_metal shader is being used for the rest of the metal surfaces that will have some sort of rust poking out of a paint layer.
MOSAICsurface will be used for everything else, including the interior of the train, the glass windows and all other materials that do not need the level of shading needed as the rest of the model.