This was a group project implementing a 3D rasterizer from scratch without using any graphics libraries. The program reads in a user specified
scene file and renders 2D images.
Base Renderer
To create a basic 3D rasterizer I implemented linear expression evaluation (LEE),
hidden surface removal with z-buffering, space transformations (from object to raster space), color interpolation and
texture mapping with perspective correction
Stylized Rendering Features:
1. Toon Shading
Basic Render
Toon Shaded Render
2. Line Art
Basic Render
Line Art Render
3. Halftone Shading
Basic Render
Halftone Shaded Render
Other Features:
Wireframes, Screen Space Ambient Occlusion, Shadows and Normal Mapping.
Render Showcase
1 / 16 Hollow Knight: Basic Render
2 / 16 Hollow Knight: Toon Shading
3 / 16 Hollow Knight: Line Art
4 / 16 Hollow Knight: Halftone Shading
5 / 16 Hollow Knight: Wireframe
6 / 16 Artorias: Basic Render
7 / 16 Artorias: Ambient Occlusion, Shadows & Normal Mapping
8 / 16 Jinx: Ambient Occlusion, Shadows & Normal Mapping
9 / 16 Jinx: Line Art
10 / 16 Jinx: Halftone Shading
11 / 16 Jinx: Wireframe
12 / 16 Luffy: Basic Render
13 / 16 Luffy: Toon Shading
14 / 16 Sunny: Toon Shading
15 / 16 Sunny: Wireframe
❮
❯
Team Members & Contributions
Rashi Sinha (Me)
: Wireframes and Stylized Rendering
Shravan Kumar
: Screen space ambient occlusion and 3D mesh compatibility with rasterizer.
Luiz Cilento: Shadows
Yaorong Xie: Normal Mapping
More
Read about the project and its impletation in more detail here.
Includes references and sources for the 3D scenes and models we used to create our renders.
Shout-out to Prof. Saty Raghavachary
for being so supportive and helping us through the project!
Note: We do not own any of the input 3D scenes files, texture images or background images used for creating the above rendered images.
The source references for all of these files can be found in the project report linked in the "More" section above.