<story><title>How OpenGL works: software renderer in 500 lines of code</title><url>https://github.com/ssloy/tinyrenderer/wiki</url></story><parent_chain></parent_chain><comment><author>sclangdon</author><text>This is great and so concise, but I&amp;#x27;m surprised that the author didn&amp;#x27;t implement OpenGL&amp;#x27;s interface (obviously not all of it), if the goal is to show how OpenGL works.&lt;p&gt;Another good example of this is Trenki&amp;#x27;s software renderer for the GPX2[1], which implements a shader architecture if memory serves. I haven&amp;#x27;t looked at it for many years, but I remember it being a useful resource when learning this stuff.&lt;p&gt;Other useful resources are, of course, Michael Abrash&amp;#x27;s Graphics Programming Black Book[2] (despite it&amp;#x27;s age, is still a great read filled with useful information), and for a really deep dive into the graphic&amp;#x27;s pipeline, ryg&amp;#x27;s (of Farbrausch fame) A Trip Through the Graphics Pipeline[3].&lt;p&gt;[1] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;www.trenki.net&amp;#x2F;content&amp;#x2F;view&amp;#x2F;18&amp;#x2F;38&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.trenki.net&amp;#x2F;content&amp;#x2F;view&amp;#x2F;18&amp;#x2F;38&amp;#x2F;&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jagregory&amp;#x2F;abrash-black-book&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jagregory&amp;#x2F;abrash-black-book&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;fgiesen.wordpress.com&amp;#x2F;2011&amp;#x2F;07&amp;#x2F;09&amp;#x2F;a-trip-through-the-graphics-pipeline-2011-index&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;fgiesen.wordpress.com&amp;#x2F;2011&amp;#x2F;07&amp;#x2F;09&amp;#x2F;a-trip-through-the-...&lt;/a&gt;</text></comment>
<story><title>How OpenGL works: software renderer in 500 lines of code</title><url>https://github.com/ssloy/tinyrenderer/wiki</url></story><parent_chain></parent_chain><comment><author>8bitpimp</author><text>I wrote a software implementation of OpenGL with the only goal of being able to play Quake3 using it.  I can vouch that it is an amazing learning experience.  The tutorial here doesnt seem to aproach the issues of performance however, which really are another learning experience entirely.</text></comment>