CS 351 - Assignment 7:Z-buffer Rendering
Elena Kirillova and Titobiloluwa Awe
In this project, we implemented z-buffering in our rendering engine in order to do hidden surface removal. Z-buffering is managing depth in a 3-dimensional image.
Our first task was to implement our line draw function with z-buffering. Our next task was to implement z-buffering inside of our polygon scanline fill function.
In order to implement our line draw with z-buffering, we first had to check to see if the z-buffer flag was set. If it was set, then calculated our initial z and delta z and if our z was greater than the image's z value, then we drew at that point and set the image's z value. We used 1/z instead of z because this translates linearly along our image.
For the scanline fill function, we had to do a similar calculation inside our innermost loop and set the color appropriately.
Required Image 1: A cube with the depth inverted
Required Image 2: A grouping of cubes rotating showing depth
Blue Crosses getting closer to the screen.
In this last picture, yo can see that as we get closer, the crosses get brighter and this shows a change in depth.
The image below is a formation of one big cube rotating around y-axis, while small cubes orbit it rotating around various axis.
In summary, this was a very interesting project because we got to implement z-buffering which is a very useful drawing tool and we will definitely be using this in our rendering system again. Overall, a very successful project.