Computer Graphics 2
Students:
- Paul Yates (pwy4104 at rit.edu)
- Eugene Marcotte (exm3763 at rit.edu)
Renderman assignments
Assignments
Goal:
Checkpoint 1: Setting the Scene
To do this assignment we used the blender rendering platform. We have been using it for a while and wanted to try and recreate the scene not only in positioning but other material details as closely as possible. We got pretty close, except for the shadows which seem too dark.
The properties we came up with:
- Foreward Sphere
- Placement
- Position
(.782, -.877, 1.267)
- Scale
(.676, .676, .676)
- Rotation
- Dim -
(1.351, 1.351, 1.351)
- Dim -
- Position
- Properties
- RGB
(.8, .8, .8)
- Alpha -
.379
- Transparent
- RGB
- Placement
- Rear Sphere (Catchy Name)
- Placement
- Position (-.099, .057, .756)
- Scale (-.61, -.61, -.61)
- Rotation -
- Dim - (1.22, 1.22, 1.22)
- Properties
- RGB (1, 1, 1)
- Alpha - .768
- Ray Mirror - .46
- Mirror - .85 Gloss
- Placement
- Plane
- Placement
- Position (0, 0, 0)
- Scale (1, 1, 1)
- Rotation -
- Properties
- Dim - (6.265, 19.933, 0)
- Checkerboard Texture
- Placement
- Light Source
- Placement
- Position (1.11, -4.018, 7.496)
- Scale (1, 1, 1)
- Rotation - (37.261, 3.164, 106.936)
- Properties
- "Lamp" (in blender)
- Energy - 1.000
- Placement
- Camera
- Placement
- Position (.67, -4.836, 1.194)
- Scale (1, 1, 1)
- Rotation - (89.917, 0, 0)
- Properties
- World Color RGB - (.177, .570, 1) (could use slight modification)
Checkpoint 2: Camera Modeling
For this checkpoint we implemented both extras (a triangle shape, and sampling). Our triangle shape actually allowed us to implement the quad surface more easily than doing a sub-set of an infinite plane.
Our simple scene, no frills:
Scene with super sampling (4 samples per pixel in a grid pattern):
Scene with two triangles into it:
Scene with two triangles, and 4 samples per pixel:
Checkpoint 3: Basic Shading
For checkpoint 3 we implemented both extras, multiple lights and phong-blinn lighting. We did not include the triangles in the screenshots, but since the quad is infact composed of two triangles, the logic for them works. Our code is still hosted at: http://svn.emarcotte.com/cg2/.
We choose to also implement a simple scene parser to make it easier to change properties, but our properties could probably be chosen better.
The scene, with one light (the Scene properties):
The scene with two lights:
The scene with three lights:
The scene with phong blinn, and a single light (using same properties as single light with straight phong).
Checkpoint 4: Procedural Shading
We implemented the checking procedural shader such that it will work on any shape that produces U,V coordinates during intersections. The UV calculation was already part of the triangle intersection so quads got them for free, however they were mirror images. To fix this, we just take one of the triangles and subtract u and v from 1.
The scene with a checked floor:
Checkpoint 5: Recursive Ray Tracing - Reflection
This assignment was fairly simple. We were able to implement it without any real problems. Though, our image was initially very different than the reference, we realized that we were adding our diffuse color to the reflection, and since our diffuse was red, the reflection was redish.
Normal reflection
Higher reflectance value
Red reflection by leaving diffuse as non grayscale
Checkpoint 6: Recursive Ray Tracing - Transmission
We completed this assignment easily, much the same way as reflection. We initially had some specling, but converting (finally) to all doubles from floats fixed it.
Checkpoint 7: Tone Reproduction
Ward's model was very straight forward. Reinhard, since we are only using a single alpha value (as per the instructions?) was less obvious. Since the alpha values doesn't change, we end up mapping to the same zone no matter what the lmax value is. Changing alpha relative to lmax makes it more interesting, but the assignment didn't require us to do this.
LMax: 1
Ward:
Reinhard:
LMax: 1000
Ward:
Reinhard:
LMax: 10000
Ward:
Reinhard: