Graphics

Photorealistic Rendering Using Renderman

Ranveer Aggarwal 120050020

Abhinav Gupta 120050029

Problem Statement

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.


Code Structure

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.cpm from caus.rib A makefile compiles everything and generates an image.


Dependencies

  • Renderman Pro Server 19
  • python 2.*


How to Run

To run the code, simply use the makefile with the command:

make
You can see the resultant .tif file generated by running:
sho display-transformer.tif
To clean up the generated files and the image generated, do a
make clean


Shader Details

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.


Effects Details

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.


Result

The following image was generated:



The generated tif can be downloaded from here.


Credits

  • Pixar
  • Renderman Docs and Forum
  • Rohan Prinja