Skip to content
/ iris Public

A software rasterizer written in C that performs 3D rendering using a fully software-based pipeline.

License

Notifications You must be signed in to change notification settings

mmrayyan/iris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iris — A Software Rasterizer in C

Iris is a fully functional software rasterizer written in C.
It implements the fundamentals of a 3D rendering pipeline without relying on external graphics libraries or hardware acceleration.

⚠️ Status: Work in Progress (WIP)
This project is under active development. Many features are incomplete or experimental.


Features (Planned and Implemented)

  • Perspective-correct projection using projection matrices
  • Geometry and Models
  • Camera and Transformations
  • Loading and parsing OBJ files (vertices, faces, textures)
  • Back-face culling
  • Translation, scaling, and rotation matrices for world transforms
  • Lighting and Shading
  • Flat shading
  • Texture loading and mapping (PNG loading using uPNG)
  • Perspective-correct interpolation of UV coordinates
  • Depth-based rendering using a Z-buffer
  • Camera space and Movement
  • Frustum clipping
  • Rendering multiple meshes simultaneously

TODO

🚧 This section lists upcoming changes and improvements targeted for the next minor version 🚧

  • Refactoring and Code comments
  • Texture mapping
  • Implement PNG decoding
  • Textured OBJ files
  • Update painter's algorithm to Z-buffering

Project Structure

iris/
├── assets/             # 3D models, textures, and other resource files
├── build/              # Compiled binaries (ignored by Git)
├── src/                # All source code for the renderer
├── .clang-format       # Code style configuration
├── .gitignore          # Untracked files
├── LICENSE             # Project license
├── Makefile            # Build script
└── README.md           # This file

License

This project is licensed under the MIT License.

About

A software rasterizer written in C that performs 3D rendering using a fully software-based pipeline.

Resources

License

Stars

Watchers

Forks

Packages

No packages published