Renderman Shading Assignment

I used one displacement shader and two surface shaders to render this scene. The wall uses a displacement shader for a vertical striped bumpy surface. The floor uses a surface shader that generates a reflective checkerboard surface. The last shader was a zDepth shader which I used to to simulate camera focus and environmental fog.

Wall Shader:

displacement noisy_walls(
float Km = 0.1;
float noiFreq = 2.75;
float stripes = .001;
)
{

float noi;

noi = noise(transform(“shader”,P*noiFreq));

float stripe_freq = 1.0 / stripes;
float smod = mod( s*stripe_freq, 1);

if ( smod > 0.5 ){

P += normalize(N) * noi * Km;
N = calculatenormal(P);

}
else {

N = calculatenormal(P);

}

}

Floor shader:

surface checkerboard( float checkersize_x = 5;
float checkersize_y = 5;
color color_one = color (1,1,1);
color color_two = color (0,0,0);
color specular_color = color(1,1,1);
float Ka = 0.5;
float Kd = 0.5;
float Ks = 1;
float Kr = 0.5;
float roughness = 0.2;
)
{

float checkerfreq_x = 1.0 / checkersize_x;
float checkerfreq_y = 1.0 / checkersize_y;
vector Nn = normalize(N);
vector V = normalize(I);

float smod = mod(s * checkerfreq_x, 1);
float tmod = mod(t * checkerfreq_y, 1);

color Cc;

if(  smod < 0.5 )
{
if( tmod < 0.5 )
{
Cc = color_one;
}
else
{
Cc = color_two;
}
}
else
{
if( tmod < 0.5 )
{
Cc = color_two;
}
else
{
Cc = color_one;
}
}

Ci = ((1-Kr) * (Cc * ((Kd * diffuse(Nn)) + Ka + (specular_color * Ks * specular(Nn,V,roughness))))) + (Kr * trace(P,reflect(V,Nn)));
Oi = 1;

}

zDepth Shader:

surface zdepth( float max_distance = 40;
float min_distance = 0;
color color_one = 0;
color color_two = 1;
)
{

float dist_from_eye = abs(distance(E,P));
Oi = 1;
float step = smoothstep(min_distance,max_distance,dist_from_eye);
Ci = mix(color_one,color_two,step);

}

The following are textures I used

Wall Texture:

Counter Texture:

Wood Texture:

Cushion Texture:

The following are render passes

Base Render:

zDepth Pass:

Final Composite:

King’s Treasure Rendering Assignment

Background Matte:

Burlap Texture:

Coin Bump Map:

King’s Crown Texture:

Ocean Floor:

Water Caustics for Lighting:

Base Rendered Image:

Ambient Occlusion Pass:

Luminance Depth Pass:

FINAL COMPOSITE:

Character Lighting

Texture for the soft drink cup:

Texture for the character’s eye:

Texture for the theater seats:

Texture for the character’s shirt:

Texture for the character’s dirty boots:

Bump map for the character’s muddy boots:

Base render:

AO pass:

zDepth pass:

After incorporating all of the layers and doing some level adjustment this is the final image:

Lighting Project

The first task I undertook was finding a decent bump shader for the dinosaurs. I tried using a noise function but the results where really bad because the noise function I used mapped to a 2d surface which was more concentrated in areas with a lot of faces. I ended up using a cloud noise function with a 3d mapping instead as 3d mappings don’t necessarily care about concentrated vertices or faces.

This yielded a pretty decent result. However, I should have done this after placing my camera because you can’t really notice the bump map when you are far away from the geometry.

Next I experimented with ambient color and realized that I was playing God… so I stopped and changed all ambient colors back to really dark colors and turned the reflection down to avoid results like this:

After getting my materials close the the final color and surface settings I started working on lighting. I wanted to do a night scene with moonlight coming in through the side windows using spotlights like such:

As you can see this created some really long shadows and not a very nice composition:

Then I decided to try the spotlights from directly above and that provided an all around better visibility of the geometry and a more interesting composition:

However, the shadows were proving to be a difficult problem with the spotlights so, in favor of realism, I decided to try a directional light to represent the moonlight which did alleviate the shadow problems. I also added some dramatic lighting for an opened door in the foreground:

The moonlight on the museum floor was still too distracting so I tried shifting the directional light angle to lay it anywhere else. However, every permutation I came up with was just too much high frequency detail going on and not enough framing of the geometry. So I ended up loosing the directional light in favor of some spotlights that were actually positioned directly underneath the roof to avoid the shadows of the overhead windows. In the end, my raw final render (without post work) looked like this:

I then rendered an ambient occlusion pass to add some more local shadow detail:

Finally, I rendered a zDepth pass to try and fake a depth of field effect in photoshop:

The final, after some level adjustments, looks like this:

 

Final Compositing Project: Movie Trailer

Tracking Assignment

Stabilization of Jerky Subway Footage

This stabilization project was pretty simple to improve but not simple to perfect. There is not a good way to stabilize this clip 100% because of some perspective issues in the footage. In order to improve the footage I started out by tracking four points and then averaging them. After I did this I used the Smooth Cam node in Shake. The final result is shown in the clip above and the node tree is below.

Stabilization of Jerky Subway Footage Node Tree

Skii Lift of the Dead

This clip was a little more difficult to track and make it look convincing. I believe if I would have composited my object onto a chair going up rather than coming down it would have been much easier due to the fact that I wouldn’t have needed to deal with a mask for the entire duration of the composite (I would have only had to mask the lift pillar). That being said, the node tree for this composite is not terribly complex. I first used a Rotoshape node to make a mask in the shape of the lift chair so the skeleton would look as if he were sitting in the chair going down rather than floating behind it. I then used a Color Match node to try and match the color of the 3d generated skeleton to that of the footage. I then had to use a Pixelize node to take some of the definition out of the 3d render. I chose to use Pixelize rather than defocus because the interlacing in the film created more of a pixelized look than anything else. I then went to the middle of the footage and used a Move 2D node to position the skeleton where I wanted him in this frame relative to the first frame. I then used a Match Move node to track the edges of the lift chair as shown below.

Skii Lift of the Dead Track

I chose to use a two point track rather than a four point track because the Match Move node was giving me some strange perspective issues when I used a four point track. Since the change in perspective is not that drastic in this clip I chose to simply track two points rather than four. When tracking the pillar and the other lift chair got in the way of tracking the patterns. I used offsets when I was able to but I was not able to get a perfect track. Thus, after tracking the two points I had to do some manual editing in the curve editor. My final node tree is shown below.

Skii Lift of the Dead Node Tree

Tracking Using My Own Footage

This track was very simple, very fun, and very convincing. The first part involved creating a fake poster in Photoshop as shown below.

Wanted Poster for Tracking Composite

After creating the poster I took some blue tape and taped + marks on a wall outside of the building around the areas I thought the four corners of the poster would go as shown below.

Wanted Poster Tracking Composite Raw Screen Cap

After collecting the footage I tracked the four points as shown below.

Tracking Using My Own Footage Raw Track

I then used a Corner Pin node in Shake to place the corners of the poster in the correct place to give the appearance of correct perspective as shown below.

Tracking Using My Own Footage Final Composite

After doing this when I advanced to the last frame the perspective was slightly skewed. So I dropped a Corner Pin keyframe at the beginning of the clip and at the end of the clip. This took care of the perspective problem. Next I used a Color Match node to match the color of the poster to that of the footage. However, there was one last little problem. The footage at the beginning of the clip was significantly lighter than the footage at the end of the clip because the camera went from being exposed to the bright atmosphere to only being exposed to the shady side of the building. To correct this I added a brightness node to the poster and then keyframed the change in brightness. The final Shake tree is below.

Tracking Using My Own Footage Shake Tree

Sequence Composites

Live on Live

live on live foreground

live on live shot

live on live tree

CG on Live

cg on live foreground

cg on live shot

cg on live tree

Live on CG

live on cg foreground

live on cg shot

live on cg tree

3D Environment Renders

So this is my first attempt at a 3D environment. It is a modern Bauhaus influenced art gallery featuring my pottery model from my first model render assignment. I have 3 shots of the gallery with a black floor and an alternative 3 shots of the gallery with a white floor. I have also rendered a 1280 x 800 widescreen wallpaper featuring my 3D environment.

Zesty Green Screens

For assignment 2 in the compositing class I have done a few composites using the lab’s green screen. For each picture I have a foreground and a background. In most cases the foreground is photographed on a green screen. This way I can use the Chromakey in Shake to edit out the unwanted green background of my foreground to lay the foreground over the background image. The following sets if foregrounds, backgrounds, masks, and final composites illustrate the idea of green screen compositing.

Live on Live

mario composite background

mario composite foreground

mario composite mask

mario composite

mario composite version 2

3D on Live

pokeball composite background

pokeball composite

Live on 3D

liveaction into 3d background

liveaction into 3d foreground

liveaction to 3d mask

liveaction into 3d

First 3D Model Render

In my CPSC 807 Maya and 3D Animations class I have recently been assigned a task to make a vase in 3D and render some images and a short rotating video. Some of the great things I learned in this assignment were:

  • Maya ( duh )
    • Nurbs, Polys, and Subdivs
    • Basic Object Merging
    • Basic Texturing
    • Basic Lighting
    • Basic Rendering
  • Photoshop CS4
    • Texture Creation via 3D object importing

I have attached some of my renders. Enjoy :D


Next Page »



Follow

Get every new post delivered to your Inbox.