https://github.com/maxbrundev/rasterizer
WIP CPU Software Rasterizer - Basic and Advanced Rendering learning project
https://github.com/maxbrundev/rasterizer
Last synced: over 1 year ago
JSON representation
WIP CPU Software Rasterizer - Basic and Advanced Rendering learning project
- Host: GitHub
- URL: https://github.com/maxbrundev/rasterizer
- Owner: maxbrundev
- License: mit
- Created: 2021-02-27T00:17:15.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T21:22:55.000Z (over 2 years ago)
- Last Synced: 2024-04-14T10:58:04.859Z (over 2 years ago)
- Language: C++
- Size: 1.99 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Realtime CPU Software Rasterizer

## Description
Basic and Advanced Rendering learning project.
## Features
- Triangle Rasterization
- Line Rasterization
- Texture Mapping
- Clipping (WIP need cleaning)
- Mipmapping (WIP need cleaning)
- MSAA (WIP need cleaning)
- Vertex pass
- Fragment pass
- Depth Writting
- Depth Testing
- OBJ Parsing
## To implement
- Improve architecture to mimic OpenGL API
- Profiling tools
...
⚠️ Optimization pass, architecture update and global project improvement is planned as soon as Mipmaps / Clipping / MSAA will be cleaned.
## Software
- Visual Studio 2022
## Dependencies
- SDL2 (Windowing and inputs)
- Assimp (3D model loader)
- GLM (Mathematics)
- stb_image (Image Loader)
## Compiling sources
Premake5 is used to generate project files.
To generate the project, execute `GenerateProject.bat`. By default, `GenerateProject.bat` will generate project files for Visual Studio 2022. If you want to use another version of Visual Studio you can execute `GenerateProject.bat` from the command line with the Visual Studio version as argument. (ex: `.\GeneratedProject.bat vs2019`)
## Licence
This project is licenced under an MIT Licence.
https://github.com/maxbrundev/Rasterizer/assets/32653095/d926e3d1-7a05-43bd-9327-5e661169e567
# Screenshots

*WIP Primitives Mode*

*Texture Filter: Left Linear, Right Nearest.*

*Mipmapping: Left mipmaps off, Right mipmaps on.*


*WIP Clipping*