Tiny Renderer is a simple software-based rendering engine implemented in C++. The goal is to understand how OpenGL and 3D rendering work at a low level by building everything from scratch.
- Basic framebuffer and pixel manipulation
- Drawing lines and triangles
- Implementing a simple 3D pipeline
- Loading and rendering 3D models (e.g.,
.objfiles) - Rasterization and barycentric coordinates
- Depth buffering (Z-buffer)
- Basic shading techniques (Flat shading, Gouraud shading, Phong shading)
- Texture mapping
- Perspective projection and camera controls
- C++
- Standard Template Library (STL)
- Basic file handling for loading 3D models
- PPM format for image output
- A C++ compiler (GCC, Clang, or MSVC)
- CMake (optional, for project setup)
g++ main.cpp -o renderer
./renderer- Implementing anti-aliasing techniques
- Adding real-time rendering capabilities
- Supporting additional 3D model formats
- Advanced shading (Blinn-Phong, Normal Mapping, etc.)
- Tiny Renderer Wiki
- Computer graphics books and resources
