Home

Renderman Dynamic Secondary Geometry RiMel

Pixar custom Mel procedures (Part of Renderman Studio) is a great resource to create secondary geometry at render time. In this Assignment I have created blobby surfaces as a secondary geometry which are based on the vertex information of any primary geometry that are stored in a .rib file and  can be seen at the render time.

Rendered Image

Technical Breakdowns

Reference Images

To create Blobbies on a any geometry its vertex information is required. After storing the vertex positions in an array this information is stored in a .rib file so that blobbies can be drawn on top of it.

The User Interface is generated in a .rman file, where controllers are defined after the decision has been made.

By default Blobby surface on a single point renders with any shader but for this particular type of effect I created the glass shader with roughness value and export it into a rib file so that I can extract the values into my main RI file.

The Radius of the blobby surface is controlled in all XYZ directions so that it can be squash and stretched in any particular direction if required.

Testing blobby Surfaces based on the points distance, the more it comes closer it starts blending

Once testing process is done the blobby particles were generated over different branches of the tree.

I Increase 0.02 value in y axis to get rid of the gaps between points, it also helped in removing the patterns.

To add the frosted ICE effect I have added the surface function inside the rib file where vertex positions are stored and it locates the exported .slo file of my frosted glass shader.

Complete Codes Version 1:

getVertices.mel

iceBlobbvf.rman

iceBlobbvfUI.mel

iceBlobbvfRI.mel

Shader Slo file

RMSGlass3_rfm.slo

Problems Encountered

Since I wanted to see the branches of my tree inside the frosted ICE (blobby surface) , So initially I created the shader in maya file and export it to the rib file and linked the shader .slo and its path inside the blobby rib cache file. Also I have created the Frost controller which is linked with the roughness of the shader to increase or decrease the frost effect.

 

But this is not the correct way so Prof. Malcolm advised me to create the UI post transform & RI post transform so that I can connect it with any shader of my choice.

Attribute Editor : Adding a custom shading group to link the shader

Attribute Editor : Shader node connected

Complete Codes Version 2:

getVertices.mel

iceBlobbvf.rman

iceBlobbvfUI.mel

iceBlobbvfRI.mel

Conclusion

This assignment helps me understanding the rib generation of vertices or points to extend any kind of point based effect on render time, the right use of mel postTransform and preTransform nodes would helps to achieve the desired effect as well as it helps significantly in optimizing the render time, there are so many technical challenges that I haven't accomplished yet due to the time constraint but this can be extended in many different ways for example user can create the fruits or leaves so that particles can be drive or simulate over the geometries and get the melted water freezing effect.