Home

Python : Vertex Tracing

This assignment is about getting the vertex position of any animated surface in a 3D space and generate secondary geometry on the render time using python. By getting the advantage of object oriented programming the python code was made responsible for reading the vertex positions of deformable surface at specified frame range and writing the position data into the rib file. Non periodic cubic curves has been assigned on each of the point position with its "constant-width" and "round-curve" attribute is controlled by the end user. A bridge was required so that maya interface can forward the user input data to python code for further process, So just like previous assignment Prman .rman was introduced and Post UI and RI was created so that end user can apply any shader and control the attribute sliders.

Final Video

Technical Breakdowns

Rendered Images

Animation

For this project I tested my code on a maya mocap example from the visor. I sourced the RI script and loaded the UI script on to the animated geometry.

Animation Preview

Extra Renderman Attributes

Once the UI is loaded to the geometry you can see the controllers attached under the extra renderman attribute on transform node.

 

You can set the frame range according to the animation , define the curve size and shape (round or stripe), add the custom shader and tell the script to Bake the rib file.

 

The Rib file can be located under the project directory within RIB_Archive folder.


To generate the rib archive write :
prman genrib in the script editor

 

UI Control

Rib Archive

 

Rib archives can be reloaded to maya using

 

Renderman -> Rib Archive -> Create Node

 

You can locate the first frame of the rib archive folder and to load the sequence you need to replace the decimal values with $F4.rib (if you have 0001.rib)

Shading

Assigning Ramp to the color node of GPSurface Node. You can similarly assign the white and black map to the transparency channel to control the visibility of the curve.

 

Note:

If you wanted to control the transparency via black and white channel use RIS its much faster.

CODES:

cache.py

ricurve_cache.py

maya_proj_utils.py

trajcntrl.rman

trajcntrlRI.mel

trajcntrlUI.mel

Conclusion

This assignment helps me understanding the concept and implementation of python object oriented programming in the world of CG. By getting the vertex position and generating secondary geometries optimizes a lot of time and energy. I wish there is a way to import and visualize the points as a GPU cache inside maya viewport ,So that it helps alot in placing the cameras and lights.