Skip to content

WIP CPU Software Rasterizer - Basic and Advanced Rendering learning project

License

Notifications You must be signed in to change notification settings

maxbrundev/Rasterizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Realtime CPU Software Rasterizer

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.

Rasterizer.mp4

Screenshots

primitiveMode WIP Primitives Mode

TextureFilter Texture Filter: Left Linear, Right Nearest.

mipmaps Mipmapping: Left mipmaps off, Right mipmaps on.

clipping clipping
WIP Clipping

Releases

No releases published

Packages

No packages published

Languages