Menu

3D Rasterizer

Technical Work / 3D Rasterizer

Rasterizer

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
16 / 16 Comparison Video

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.