Skip to content

naive software renderer for learning purpose

Notifications You must be signed in to change notification settings

cp-shen/naivegl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Naivegl

naive software renderer for learning purpose

Features

  • use all CPU cores but none of GPU
  • shader based rendering (vertex shader and fragment shader are supported currently)

Roadmap

  • draw a white triangle
    • basic triangle rasterizer
    • basic pipeline

  • draw a triangle with interpolated color
    • calculate barycentric coords to interpolate vertex attributes

  • draw a triangle with a perspective camera
    • implement mvp matrix transform
    • implement naive clipping (remove the triangle when one of its vertices is out of the frustum)
    • implement homogeneous division and screen mapping

  • draw a white cube with a perspective camera

  • draw a cube with diffuse shading
    • calculate normal vector using two edges of a triangle

  • draw two cubes overlapping each other to demonstrate z-test is working
    • implement z-buffer and z-test

About

naive software renderer for learning purpose

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages