Software Rasterizer

Software Rasterizer

A custom CPU-based software rasterizer that loads 3D meshes and renders them to images by implementing triangle rasterization, z-buffering, and simple lighting models.

Key Points

  • Loaded OBJ triangle mesh files and converted 3D vertex positions into 2D screen coordinates with correct aspect scaling
  • Rasterized triangles using barycentric coordinates and wrote interpolated per-vertex colors per pixel
  • Implemented vertical color gradients, z-buffering, and normal visualization
  • Added simple lighting shading based on surface normals and directional light
  • Enabled geometric transformations including rotation before rasterization
  • Developed as part of CSCE 441 - Computer Graphics at Texas A&M University