m a y a    p a t t e r n    a n i m a t i o n

The animation and notes on this page explain how custom shaders written in the RenderMan Shading Language can be animated using SLIM parameter expressions.















After seeing impressive results from past students who used layered-shaders, I wanted to try and

apply what I've learned so far to my opening shot for my thesis animation. (Two birds with one stone

mentality) Although I'm satisfied with my results, the animation is definitely not what I originally

envisioned because of 1) time-restraints and 2) hard-drive space. I will go into further detail below.


Shader Palette


Here are all the shaders I used for the animation. Many of them look blank because they are keyed to appear

and then disappear.


Shader Controls


This shader controller shows how I keyed an offset value to move an "electric" charge up and down.

The fease command eases values back and forth unlike the linear lerp command. By assigning a frame

value far outside the range of rendered frames, the shader effect would never "come back" onto screen.

This method allowed me to time the effects properly.



















This is the basic shader from which I derived almost all of my other shaders. I created an offset-

keyable variable to move the noise up and down. The code can be found to the right.

float tt = t + (float (noise(pp*freq)) * amp - 0.5) * pscale;

if(tt > (0.2 + offset + outerrange) && tt < (0.8 + offset - outerrange))
	surfcolor = color (0.3,0.8,1);
if(tt > ((0.25 + range) + offset) && tt < ((0.75 - range) + offset))
	surfcolor = color (0.4,0.9,1.0);
if(tt > ((0.4 + range) + offset) && tt < ((0.6 - range) + offset))
	surfcolor = color (0.6,1,1.0);			


















Here's a variation of the shader above with different color and noise attributes.



















I tried to create a thin noise bar that popped as if it were electric. Opacity was set to zero where ever there wasn't any noise.



















This shader was used on the laser. It has a keyable opacity like the shader above.


Holey ShaderCoil Noise Orange Generator


Here are some basic static shaders.


Space Station Full View


This is a full shot of the space station as seen in Maya's viewport. My final animation only shows the

lower portion.



Blast Geometry


With my shaders that had zero opacity outside of the noise area, the shown geometry created the blast effect at the end of my animation.












This is a complete playblast of the first shot for my thesis animation. As you can see, I didn't come close.

When rendering out this flythrough, I didn't expect my .rib files to jump from my previous project's size (10kb)

to 20.8 Mb. If you do the math, 20.8 Mb x 800 frames = 16.6 GB. I filled up my server space with only a fraction

of the completed .rib files and that's before rendering any .tif images! On the positive side, I have a much

better idea of how to approach larger scale renderings (i.e. attach an external hardrdrive, cut up renderings

to more managable sizes, etc ).