Skip to content

zhaobijia/software_renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

software renderer

A real-time shader-based software renderer written in c++. It is an ongoing learning project inspired by tinyrenderer without using any Graphic APIs such as OpenGL, DirectX or Vulkan. The rendering takes place entirely on the CPU. My main goal is to get a better understanding of how mordern computer graphics work.

Screenshots:

diablo

testing perspective-correct interpolation: floor

Current Features:

  • Minimal dependencies
  • Image loading using stb-image
  • Orbiting camera controls
  • Wavefront obj file parser
  • Reverse Z-Buffering
  • Back-face Culling
  • Perspective correct interpolation
  • Texture mapping
  • Tangent space normal mapping
  • Shader based

In progress (Todo/Wishlist <3 ):

  • Scene switching
  • Lighting (directional/point/spotlight)
  • Homogeneous clipping
  • Shadow mapping
  • Ambient occlusion
  • Metallic workflow
  • PBR (Physically based rendering)
  • IBL (Image-based lighting)
  • Reflections using cubemaps
  • View frustum culling
  • Antialiasing
  • Skeletal Animation (maybe)
  • Particle system (maybe)
  • Post-processing (maybe)

References:

About

A software renderer in c++.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published