Email Me Course Link
Matrix Level-Of-Detail St Coloration Pattern Animation Fire Shader
Home

Matrix Composition

This page demonstrates the basics of scripting shapes RenderMan scenedescription (rib) protocol. Writing rib files by hand focuses attention on the use of color, opacity and the fundamental concepts related to xyz coordinate system.

The preliminary renders have been done using basic shading so that the geometry can be more easily seen.

I have been always facinated with the occurances of fractals in nature. As a result, i originally wanted to present a challenge to myself by recreating a plant featuring this phenomena in renderman. My Original idea was re-creating the Romanesco Broccoli, but my classmate Aleksandar Rodić had already persued that project, and also did the plant justice by capturing it's intriguing patterns.

I always seek to capture something very specific as opposed to abstract in my projects. Thus, my Next Inspiration was the Fibonacci Spiral Cactus.

Cactus

I am currently in the process of uploading this page with the full explanations on my entire process of this project. These are my First Renders.

Render 1
The Leaves of the cactus was created with flattned cones, then piped into the main RIB using "ReadArchive" commands. Translations in Renderman can be incremental if they are correctly organized in blocks of "TransformBegin/TransformEnd" commands. Proper Heiarchy and translate values give me a spiral of spikes leading up to the center of the plant.

TransformBegin
Scale .3 .3 .3
Translate 0 0 14
ReadArchive "proj1leaf.rib"
TransformBegin
Translate 5.3 0 -1.3
Rotate 30 0 1 0
ReadArchive "proj1leaf.rib"
Translate 5.3 0 -1.3
Rotate 30 0 1 0
ReadArchive "proj1leaf.rib"
Translate 5.3 0 -1.3
Rotate 30 0 1 0

As Renderman parses this code, each translate and rotate value is added incrementally onto the last local axis position value. This was the base logic of the cactus leaves.

Occlusion 1
In my first Occlusion test, one can see the spiraling of the cones toward the center. This one plant was duplicated randomly throughout my scene by a python helper script that i developed. It is scaled and distributed by this script.

This is the logic of the script:

for i in range(num):
randdist = dist * random.random()
print 'TransformBegin'
x = (random.random() - 0.5) * randdist
y = 0
z = (random.random() - 0.5) * randdist
print 'Translate %s %s %s' % (x,y,z)

scalex = (random.random() - 0.2)
scaley = scalex
scalez = scalex
print 'Scale %s %s %s' % (scalex,scaley,scalez)

This effectively translates each flower randomly across the x and z axis. y axis is set to 0 translation. The "scaley" and "scalez" variables are set to receive their value from "scalex", allowing each object's original proportions to be kept.

Occlusion 2
In addition to the render above, "DepthOfField 50.0 12.0 30.0" was adding, which worked appropriate for a field of view setting of 18. These values work hand in hand, so it took quite a number of tests to get this right.
Occlude plus Depth
The occlusion was multiplied over the image for this look. It was rendered with raytrace shadows.

For Reference I have provided some original code:

Randomize Python Script
Flower RIB
Main RIB

Matrix
Level-of-Detail
ST Coloration
Maya Pattern Animation
Fire
Links
Links