Free Renderman Shaders

This page has free renderman shaders that you can use in your own projects, or use just parts of them if you like. There is a rib file of a fender bassman amplifier. Also there is a function that you can include in your shaders to map 2d patterns uniformly over 3d objects. All of these were used to create the scene below.

Fender Bassman Renderman Shaders and Model

Fender Bassman amplifier modelled in ayam and rendered in 3delight.

This is a Fender Bassman amplifier that I modelled in ayam with nurbs and rendered in 3delight. Ayam is free open source software and 3delight is free for the first license. Only three of the shaders used are what I have created. They are the amp tolex material, the amp grill cloth material and the Fender badge material. The amp tolex shader uses an included function that I wrote to map the pattern around the amp. The shader used on the floor was RudyCtile01 by Rudy Cortes. Click the image for a larger view of it. The list of paramaters for the shaders is included at the top of the shaders. I am learning about shader writing so you may be able to improve or advise me on them. I hope this page and the shaders on it are useful to you in some way.

AmpTolex.sl

This is a shader to mimic the tolex on my Fender Bassman amplifier. It is a woven stitching effect. One colour stitch goes one way and the other goes the other way. It can be used for other things (i.e. paving if it is to a larger scale). It is linked to my box projection function which makes an st pattern map to the 3 planes x,y and z depending on what angle the surface normals are facing.

Extra Files Needed

Displace.h Patterns.h Filterwidth.h Myproject.h

ShinyTextureMapMetal.sl

This shader was used for the Fender Bassman badge material. It started out as Larry Gritz's Shiny.sl shader (as the badge is made from metal and needed to reflect). I added the texture mapping part that maps the black to one colour and the white to another. Each color can have its own amount of Kd and Kr so as to change how shiny it is. In the case of my picture I made the writing to be shinier than the brown colour. I have included the texture file so you can see an example. It is in 3delight texture format but you can view and edit it in Gimp if needed.

Extra Files Needed

Rayserver.h Material.h FBManBadge.tdl

AmpGrillCloth.sl

This shader was used for the Fender Bassman grill cloth that covers the speakers. It is basically just a grid pattern with two colours and it is also has a bumpy grid to match the colours.

Extra Files Needed

Patterns.h Displace.h

FBMan.rib

This is the rib file exported from ayam that created the picture of the Fender Bassman (above) that I modelled. This is here as a reference to using the above shaders. Any other shaders used in this rib file that are not on my site can be found by searching on google. FBManBadge.tdl and FBManHandle.tdl are texture files used. They are in 3delight texture format. They can be opened in Gimp if you need to change them. FBManBadge.tdl is the texture file used with ShinyTextureMapMetal.sl to create the Fender Bassman name plate on the amp

Extra Files Needed

FBMan.rib-1 FBManBadge.tdl FBManHandle.tdl

Myproject.h

This is a function that you can include in your shaders. It is used to map a 2d pattern to 3d. It was used in my amptolex.sl shader to make the pattern wrap properly around the amp cab. It maps ss and tt coordinates to x,y and z components based on which way the surface normals are pointing and uses ds and dt for the filter widths of ss and tt (if needed). The mapping can be fine tuned by changing position of faces or by inverting the pattern. There is an example of how to use it in your shaders below.

Extra Files Needed

filterwidth.h

How To Use myproject.h Function In Your Own Renderman Shaders

The purpose of this function is to map 2d mappings i.e. st mappings to 3d mappings and basically to wrap a pattern around a shape based on which way the normals are pointing. It was used on the Fender Bassman cab model in the picture at the top of this page.

Below is a picture rendered with k3d_antialasedchecks.sl as the shader. As you can see it is mapped using st coordinates and as such the pattern gets squashed on the small sides of the shape.

shape rendered with k3d_antialiasedchecks.sl using st mapping.

Here is a picture rendered with k3d_antialasedchecks.sl that is converted to use myproject.h. Now it has the same pattern on each side and does not get squashed or stretched no matter what size the sides are.

shape rendered with k3d_antialiasedchecks.sl using st mapping.

Here are the steps that were taken to convert it:-

  1. Added the line below to the top of the shader to include it.
    #include "myproject2.h"
  2. Added the line below to the parameters list of the shaders. This is a quick way of listing all the parameters and their default values for the function in the shader.
    DEFAULT_BOXMAP_EDITABLE_PARAMS;
  3. Added the below line in the list of declared variables. This is a quick way of declaring the variables in the shader needed by the function.
    DEFAULT_BOXMAP_PARAMS;
  4. Added the below line straight after declaring the variables. It is calling the function with a list of the variables it is going to pass to it.
    BoxMapFromNormals BOXMAP_PARAMS;
  5. Changed the s and t variables to ss and tt all through the shader. The function works on ss and tt and not s and t so that you can still use s and t coordinates aswell (if wanted).

Then it is all done and should map to 3d instead of 2d. The paramaters can then be changed in the rib file or rendering program to suit the needs. You can compare the original file with my altered file to see how it looks before and after adding the function.