Ask HN: Learn Graphics Programming, Recommendations?

16 points by sharedptr ↗ HN
Essentially the title. I wanted to explore something different to what I’m doing on a daily basis.

Can you recommend good resources? Books work best for me but I’m open to anything. The more practical the better.

16 comments

[ 30.0 ms ] story [ 507 ms ] thread
I made earth globe for something I was building on the web. You can get good map points and you can (should) use three.js Very satisfying to see it spin and tilt. Fun.
i think these days one of the quickest ways to ramp up is to subscribe to Chat GPT 4 and ask it "please help me write a graphics program to draw a cube", or some other simple example, then ask it to explain each piece of code and what it is doing.
This would work wonders for me as I like to see and read code. then ask more questions until I can understand. in conjuction with the links and books - I think learning will be changed forever.
I was just thinking along these same lines and found myself considering using raylib (building on SDL2) for a small/fun side project.

It has bindings for Zig so that might be a good combo, having used neither :-) The list of language bindings is impressive[0].

[0] https://github.com/raysan5/raylib/blob/master/BINDINGS.md

There was a similar post a week or two back, and many of the responses mentioned scratchapixel [0]. It seems like a solid recommendation, and I got lost in a couple of the links.

[0] https://www.scratchapixel.com/

1000% Shadertoy.com

The book of shaders or youtube tutorials about shadertoy

LearnOpenGl.com

Possibly a smidge outdated.

Goes from blank window to rendering 3d meshes with advanced lighting techniques (HDR, SSAO and more).

Heped me understand shader pipeline, so I recommend it.

https://learnopengl.com

Going more in the computational geometry direction, in addition to some interesting algorithms in the Graphics Gems series:

O'Rourke, "Computational Geometry in C 2e". Deals with the basics in a principled way. Start here for fundamentals like a good algorithm for intersection of two lines, or inside/outside polygon tests (don't depend on garbage blog posts for well studied fundamentals like this). The book's webpage is https://www.science.smith.edu/~jorourke/books/compgeom.html

Ericson, "Real-Time Collision Detection". Deep dive into practical collision detection algorithms.

And for Shaders, check out Inigo Quilez and ShaderToy:

- https://www.youtube.com/@InigoQuilez

- https://iquilezles.org/

- https://www.shadertoy.com/

You should be able to get your hands dirty pretty quickly implementing cool things on ShaderToy.

Personally I've recently discovered the YouTube channel Acerola [1], who works as a graphics programmer at Intel I believe and posts highly technical but also entertaining videos on real world rendering/shader techniques that are actually in use in games.

There's also pbr, which I understand is a legit professional level physically based rendering engine that is fully open source and documented in the form of this text[2].

[1] https://www.youtube.com/@Acerola_t [2] https://pbr-book.org

(comment deleted)