nedma / SoftRast

Hobby software rasterizer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SoftRast

Hobby real-time software rasterizer, requires a CPU with AVX2/FMA.

Crytek Sponza

The goal of the project is to learn more about the graphics pipeline, software rendering and SIMD programming.

Features:

  • SIMD (AVX2) rasterization/shading.
  • Perspective correct interpolation of attributes.
  • Fixed point rasterization with 8 bits of sub pixel precision.
  • Texture sampling with billinear interpolation and tiled/morton order textures.
  • Multithreaded geometry processing and rasterization.
  • Sort middle architecture.
  • Reverse Z depth buffer (compile time toggleable).
  • Mip mapping using screen space partial derivatives.
  • No runtime memory allocation (all allocations go through thread local linear allocators with a large upfront allocation).
  • Simple OBJ model loader. Creates a binary out of the model and textures for instantaneous loading after the first run.

Various improvements are in todo.txt.

Assorted references

About

Hobby software rasterizer.

License:MIT License


Languages

Language:C 61.6%Language:C++ 38.2%Language:CMake 0.2%