To render a transformer in Renderman with the following effects:
- Indirect Illumination (Color Bleeding)
- Scene elements with caustics
- Area lights and soft shadows
- Texture mapping
- Transparent and metallic objects
A more detailed problem statement can be found here
The code has been modularised into separate RIB files and using the
ReadArchive command we patch the files together. Shaders are organised in SL files. A caustic map is separately generated as
caus.rib A makefile compiles everything and generates an image.
- Renderman Pro Server 19
- python 2.*
How to Run
To run the code, simply use the makefile with the command:
You can see the resultant
file generated by running:
To clean up the generated files and the image generated, do a
We use the following shaders in this assignment:
- shadowlight: This is a light source shader which causes local illumination at a point only when the poing is unoccluded by any other object
- diffsurf: This is a surface shader with local illumination, indirect lighting and caustics (From a cuastic map)
- texsurf: This is a surface shader much like diffsurf, except, the illumination is used as a weight for a color obtained from a texture map
- metal: This is a surface shader which has a high specular component and high reflectivity. The shader calls the trace function to raytrace the reflection
- transparent: This is a surface shader with very low local illumination and reflection. Most of the light is refracted and raytraced.
The following required effects were achieved in the assignment:
- Color Bleeding: Using indirect illumination in the diffsurf and texsurf shaders.
- Area Lights and Soft Shadows: Placing multiple point lights closely.
- Texture Mapping: Using the texture function in texsurf shader.
- Caustics: Photon mapping the scene to generate a caustic map and then adding it to the illumination.
- Transparent and Metallic Surfaces: Using the transparent and metal shaders respectively.
The following image was generated:
The generated tif can be downloaded from here.
- Renderman Docs and Forum
- Rohan Prinja