top of page

Renderman Rendering

final_1.png

Objective

Modelling and Rendering a real life object (pen) using Python API for Renderman

Analyzing the object

The real life object to be modeled is a metallic pen which has been examined in detail by taking pictures of various parts. The pen is of cylindrical shape with several rings connecting the cap and the body. Even though the entire pen is said to be metallic, the degree of spectacularity varies at certain areas. On closer observation, uniform fines lines could be seen on the cap and body. 

original_new.png

Modelling

Most of the modelling has been done using cylinders:the camp, cap top, holder, body and the base. The holder has a slight protrusion towards the end which has been modeled using a hemisphere. The middle ring portion is the combination of torus and cylinder placed overlapping each other. These are created using procedural for loop.

Cylinder

Variable to create a cylinder:

​

  • Radius

  • Zmin

  • Zmax

  • Sweepangle (Ï´)

Torus

Variable to create a cylinder:

​

  • Majorrad

  • Minorrad

  • Phimin

  • Phimax

  • Sweepangle (Ï´)

Screenshot from 2017-06-06 18-30-52.png
Screenshot from 2017-06-06 18-40-36.png
modelling.png

Maps

Displacement Map: The cap and body has fine lines running throughout. This has been created with a shader using perlin noise in one uniform direction to give the linear texture which is then applied as a displacement map with a scale of 0.1 to give a very slight bumpy impression.

Bump Map: Light scratch marks have been implemented on the cap top and body of the model to show wear and tear to give it touch of realism. Also the logo the the company 'LAMY' has been embedded on the cap, These scratch marks  and logo have been applied as PxrBump bump map. 

displacementMap.png
cap_scratches.png
logo_model.png

Texturing

Textures have been used to give the area surrounding the pen a realistic appeal. The object is placed on a simple flat plane with wooden texture applied as PxrTexture pattern and PxrDisney BXDF to take RGB reference color from the provided texture giving the effect of table top. In the similar manner a wall texture has been applied on the plane placed vertically upright in the background.

Lighting

To have a properly well lit scene a total of six lights have been used. Three PxrStdAreaLight to illuminate the top, middle and base of the pen, two sphere lights placed towards the top corners and one PxrStdEnvMapLight to add-on to the general illumination.

​

The area lights focus primarily on the areas they have been placed near and help enhance the specular highlights especially on the purely metallic parts of the pen. The sphere lights provide the additional brightness to light especially towards the back part of the scene. A PxrStdEnvMapLight using HDR image is applied to further enhance the overall lighting in the scene.

Area Light

ri.AttributeBegin()
ri.Declare("areaLight" ,"string")
ri.AreaLightSource( "PxrStdAreaLight", {ri.HANDLEID:"areaLight", "float exposure"  : [4.5]})
ri.Sphere( 0.5, -0.5, 0.5, 360)
ri.AttributeEnd()

Sphere Light

ri.TransformBegin()
ri.Bxdf( "PxrDisney","bxdf", { "color emitColor" : [ 1,1,1] })
ri.Geometry("spherelight")
ri.TransformEnd()

Environment Map Light

ri.AttributeBegin()
ri.Declare("envLight" ,"string")
ri.AreaLightSource( "PxrStdEnvMapLight",

                                                                      {ri.HANDLEID:"envLight", 
                                                                     "float exposure" : [0.1],
                                                                      "string rman__EnvMap" : ["HDRImage.tx"]
                                 })
ri.Geometry('envsphere')
ri.AttributeEnd()

area_lights.png

Area Light

Sphere_lights.png

Sphere Light

envi_light.png

EnvironmentMap Light

JR

Final Output

The final output came out pleasant and well lit with the combination of above mentioned lights and a slight depth of field to bring the pen into more focus compared to the background. The model though still comparatively close to real object still requires certain improvements in terms of making the look more realistic with the help of an additional shader to show the paints peeled off at certain areas, which I would like to experiment with in given time. Also the shader for fine lines one the cap and body need improvement since it just uses the perlin noise without any specific modification which has lead to breaking uniformity at certain places. 

final_1.png
second_image.png
bottom of page