Graphics Programming Resources
177 points by abetusk 21 hours ago | 17 comments

lesleylai 20 hours ago
I don't know who posted it here. But this is not merged to the main website (it's on the "develop" branch), and a lot of resources have not been added. I am still working on it.

Created an account just to say this

reply
abetusk 18 hours ago
It was me. I saw your post from over at lobste.rs "what are you doing this week" [0]. I've had the tab open for a couple days and I thought people over here at HN would like it (and I was right).

Anyway, thanks for the resource. I'm sure people would be interested in the parent page, "Graphics Programming Virtual Meetup" as well:

https://gpvm-website.netlify.app/

[0] https://lobste.rs/s/dppelv/what_are_you_doing_this_week

reply
mananaysiempre 19 hours ago
The link just below the title indicates it was submitted by 'abetusk (https://news.ycombinator.com/user?id=abetusk).
reply
Surac 17 hours ago
I had hoped for some more basic stuff. I struggle for 2 months now to implement a fast line draw with width for a embeed cpu. It only has a framebuffer no gpu
reply
pjmlp 16 hours ago
The bible of graphics programming, everything with software rendering,

"Computer Graphics: Principles and Practice"

https://www.informit.com/store/computer-graphics-principles-...

Yeah, it is a steep price as many academia books, maybe you can find it on a library nearby, as its first edition was in 1982.

reply
jplusequalt 7 hours ago
This book is quite old. I would argue that Realtime Rendering 4th edition is the better book. Bonus points if you pair it with some online resources to get a deeper understanding of the topics (but the textbook contains follow up material for all discussed topics).
reply
gmiller123456 7 hours ago
"Basic" is a relative term. Modern graphics GPUs do not work the same way memory mapped graphics do, and working with them is different at a fundamental level.

You are probably better off searching for old graphics programming books from the 90s. The code they have likely won't work, the the algorithms should be what you're looking for, and shouldn't be hard to adapt.

reply
xyzsparetimexyz 16 hours ago
Fast, thick lines, no gpu

Choose 2

reply
socalgal2 16 hours ago
It's non-trival though not that hard. Have you asked an LLM?

It depends on your needs

* You can compute a rectangle by expanding a line purpendicular to its direction

The problem with this is you'll get gaps between 2 lines if they are supposed to be connected. You can solve that by trying to connect the corners if the rectangles. Once you do this though you're no longer drawing rectangles. You might have to make a simple triangle rasterizer. Or a scanline rasterizer

* You can "drag a brush". You compute a single line, then at each pixel, draw a sprite/circle/rectangle around that pixel. That's slow because you'll draw every pixel more than once but it will work and might be fast enough

This has the issue with the ends will be different unless your brush is round. If that's ok then it works.

All of these are something you can ask Gemini, ChatGPT, Claude, and they'll spit out an exmaple in the language of your choice.

reply
PacificSpecific 13 hours ago
Those are bad answers. Really bad.
reply
jplusequalt 7 hours ago
Great resources abound. However, learning graphics programming is hard and requires a deep understanding of both the algorithms and the APIs to do anything non-trivial.

Sadly, there are fewer people than ever on HN who care about deeply understanding either of these in the age of agents.

reply
fireant 5 hours ago
As someone who's learned Vulkan to a fairly deep level over the last two years I've found learning with LLMs invaluable, especially for explaining concepts and the whys behind things.

That said debugging graphics bugs has to be some of the hardest things you can do as they generally manifest as driver crash followed by VK_DEVICE_LOST error. Vibe debugging these inside a 60k vibecoded rust renderer is... just not possible.

Agents can get you the initial boilerplate for setting up most of the resources, but are completely clueless about subtle issues with synchronization, transitions, formats and so on.

reply
brcmthrowaway 20 hours ago
Nothing on volumetrics.
reply
longor1996 13 hours ago
Well, do I ever have a treat for ya!

https://voxel.wiki/wiki/references/

reply
Boxxed 10 hours ago
Ok
reply