3D Software Rendering

Table of Contents

About the renderer

The rederer performs rasterization of 3D models. It uses the SDL library for creating window and polling user input. The entirety of the renderer is written from scratch in C.

It implements fundamental graphics programming techniques like loading meshes, backface fulling, frustum clipping, texture mapping, shading etc.

Texture Mapping

Perpective correct texture mapping loaded from png files.

Gouraud Shading

Gouraud Shading by calculating per vertex normal and interpolating the color for each fragment of the model. Based on Directional lighting model.

View Frustum Clipping & Culling

View Frsuting clipping and culling based on the view frustum planes. Model triangles are clipped, and new triangles are formed if needed.

Demo

Project repository: GitHub - 3d renderer in C