• Top
  • New

Ask HN: Learn Graphics Programming, Recommendations?

by sharedptr on 12/10/2023, 11:31:17 AM with 15 comments
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.

  • by RossBencina on 12/11/2023, 2:54:57 AM

    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.

  • by wizzerking on 12/10/2023, 12:07:10 PM

    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/

  • by agarren on 12/10/2023, 6:12:10 PM

    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/

  • by abhi9u on 12/10/2023, 11:41:23 AM

    Ray Tracing in One Weekend: https://raytracing.github.io/

  • by vineyardlabs on 12/11/2023, 9:12:11 PM

    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

  • by barrysteve on 12/10/2023, 7:38:23 PM

    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

  • by karmakaze on 12/10/2023, 4:57:52 PM

    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

  • by ttoinou on 12/10/2023, 7:35:45 PM

    1000% Shadertoy.com

    The book of shaders or youtube tutorials about shadertoy

  • by z303 on 12/11/2023, 4:17:51 PM

    Tiny Code Christmas just started today. That is geared towards beginners in the demoscene and everyone is very friendly

    https://tcc.lovebyte.party/

  • by beeburrt on 12/10/2023, 7:24:37 PM

    Here's a free book:

    https://www.gabrielgambetta.com/computer-graphics-from-scrat...

  • by beardyw on 12/10/2023, 12:23:46 PM

    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.

  • by doubloon on 12/10/2023, 4:07:53 PM

    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.

  • by brudgers on 12/10/2023, 6:54:32 PM

    Processing.org