Ask HN: Learn Graphics Programming, Recommendations?
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. 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 You should be able to get your hands dirty pretty quickly implementing cool things on ShaderToy. GPU Gems https://github.com/yyc-git/MyData/blob/master/3d/GPU%20Gems/... https://www.nvidia.com/en-us/drivers/gpu-gems-home/ Free Computer Books
https://freecomputerbooks.com/ Other free book sites
https://freecomputerbooks.com/otherBooks.html Some computer & Machine Learning Free Books
Creative Commons License Graphics Gems Series
Use ayour favorite search engine
https://www.intechopen.com/ 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. Ray Tracing in One Weekend: https://raytracing.github.io/ And for perhaps longer than a weekend: The Ray Tracer Challenge
A Test-Driven Guide to Your First 3D Renderer [0] [0] https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng... 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 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. 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 1000% Shadertoy.com The book of shaders or youtube tutorials about shadertoy Tiny Code Christmas just started today. That is geared towards beginners in the demoscene and everyone is very friendly Here's a free book: https://www.gabrielgambetta.com/computer-graphics-from-scrat... 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. Processing.org