Resources for Learning Graphics Programming

Look, I’ve just accepted the fact that I’m never going to turn this Twitter thread into a proper fancy blog post. But it’s a darn useful Twitter thread, and I link to it at least a few times a month. So, it shall have a place here on this blog.

Keep in mind graphics can be quite fast-paced, and this thread was written in 2017, but many things still do stay the same or prove useful down the road. For the latest hottest developments, check out GDC submissions and SIGGRAPH papers, and many of these resources do stay updated so just check to see if the author’s still actively working on it.

Original Twitter thread, the replies have extra useful resources: https://twitter.com/sehurlburt/status/884470105320468481


A bunch of people are asking what resources I recommend to start learning graphics programming. So you get a thread on it!

I really enjoy giving beginner-level workshops. Here are two that focus on graphics:

https://www.slideshare.net/StephanieHurlburt/graphics-programming-workshop

https://docs.google.com/presentation/d/1yJSQy4QtcQxcMjr9Wj6kjMd2R1BLNA1mUebDtnaXDL8/edit?usp=sharing

If you're a graphics coder reading this wondering how you can host a workshop too, I've written about that:

http://stephaniehurlburt.com/blog/2016/11/1/guide-to-running-technology-workshops

I also wrote my own little writeup on graphics, notes from when Rich & I were helping Sophia learn graphics.

http://stephaniehurlburt.com/blog/2016/10/28/casual-introduction-to-low-level-graphics-programming

One more graphics workshop-- this one includes a raytracing and particle demo for you to play with.

https://docs.google.com/presentation/d/1d0StEQMEdz4JUEHXfTPbwKIGYex2p5Mko1Rj66e5M80/edit

I love @baldurk 's blog series, "Graphics in Plain Language"

https://renderdoc.org/blog/Graphics-in-Plain-Language/

For those ready to wade into advanced waters, "A trip through the graphics pipeline" by @rygorous is great

https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/

This online book is just an amazing introduction to shaders, by @patriciogv and @_jenlowe_

https://thebookofshaders.com/ 

Prepare yourself for a monster list of graphics resources on this site! My favorite is the SIGGRAPH papers.

http://kesen.realtimerendering.com/ 

I'm a big fan of Cinder and OpenFramworks, both C++/graphics. They are what I started from.

https://libcinder.org/docs/guides/opengl/index.html

http://openframeworks.cc/learning/ 

BGFX is also great!

https://github.com/bkaradzic/bgfx

For a more beginner friendly library, Processing is simply lovely.

https://processing.org/tutorials/ 

Shaders! GLSLSandbox is more beginner-friendly, Shadertoy if you want to see some crazy shit http://glslsandbox.com/  https://www.shadertoy.com/ 

Can't go without mentioning @CasualEffects 's Graphics Codex-- excellent and comprehensive graphics resource. http://graphicscodex.com/ 

I stand by this advice on how to approach learning graphics programming.

https://pastebin.com/qp167uKV

Since we're now on the topic of getting jobs, do mock interviews and get mentors and talk to people.

https://twitter.com/sehurlburt/status/872919452718727168

My mentor list is FULL of graphics programmers. They all love helping you. I do need to update it with more.

http://stephaniehurlburt.com/blog/2016/11/14/list-of-engineers-willing-to-mentor-you

People ask me about learning math and I point them to @EricLengyel 's book

https://www.amazon.com/Foundations-Game-Engine-Development-Mathematics/dp/0985811749/ref=asap_bc?ie=UTF8

GPU Performance for Game Artists by @keithoconor

http://fragmentbuffer.com/gpu-performance-for-game-artists/

There are more resources I didn't mention. Check out the last two slides of this https://www.slideshare.net/StephanieHurlburt/graphics-programming-workshop … , and http://www.realtimerendering.com 

This is a good little collection of resources on advanced GPU optimization and documentation.

https://github.com/g-truc/sdk/tree/master/documentation/hardware/amd/Southern%20Islands

Destiny's Multithreaded Rendering Architecture by @mirror2mask

https://www.gdcvault.com/play/1021926/Destiny-s-Multithreaded-Rendering

An important point: The vast majority of graphics coders I know don't know math very well. Don't be scared away if you aren't a math person.

I say this as someone who adores math, was expecting to use it all the time, & only ever needed basic linear algebra for my graphics work.




Developing a Passion