How OpenGL works: software renderer in 500 lines of code | Hacker News