Ask HN: Resources for Learning Graphics Programming
82 points| dbetteridge | 1 year ago
I've predominantly always worked in Web dev but always had an interest in 3D graphics, modelling and games.
What are your best resources for me to go from 0 to being able to write my own (basic) graphics renderer, eventually I'd like to get to the point of rendering scenes but understand that might be a long haul.
[+] [-] amne|1 year ago|reply
In 2005-ish I followed what is now called "legacy tutorials" and I just learned a lot about how rendering pipeline works in OpenGL + some basic 3d math and physics. The rope tutorial (https://nehe.gamedev.net/tutorial/rope_physics/17006/) was my favorite.
Also, my highschool math teacher was in awe when I was so familiar with vector math and matrices and it was so easy to grasp the concepts in class because I could visualize everything. This is a nod to a previous post here on HN: https://news.ycombinator.com/item?id=40983734
[+] [-] user432678|1 year ago|reply
[+] [-] e19293001|1 year ago|reply
[+] [-] sky2224|1 year ago|reply
You'll need to be comfortable with C++, but even without in-depth knowledge of the language, the tutorial takes you quite far.
[+] [-] rkharsan64|1 year ago|reply
[+] [-] thomasikzelf|1 year ago|reply
[+] [-] emmanueloga_|1 year ago|reply
Learning the lower end of graphics can be fun and a goal of its own, but you can also accomplish a lot and push more interesting things to your screen faster by using some readymade engine. As a web developer you may enjoy this (paid but very polished) ThreeJS course [1].
--
https://threejs-journey.com/
[+] [-] cgg1|1 year ago|reply
Though admittedly it is a bit chaotically organized.
That one combined with the ray tracing in 1 weekend series is a good start.
[+] [-] johnnyanmac|1 year ago|reply
But man, I feel I was waiting for that path tracing article for 8 years now? It's not even on their recent roadmap. Treat the unreleased sections as wishlists instead of a "upcoming" section.
>Though admittedly it is a bit chaotically organized.
looks like they completely revamped the website (and their roadmap seemed focused on revamping existing articles over making new ones). The beginners section now seems to make enough sense if you were following a college raytracing course. The other sporadic articles are pushed farther down to prevent confusion.
[+] [-] kristopolous|1 year ago|reply
[+] [-] qingcharles|1 year ago|reply
https://pikuma.com/courses/learn-3d-computer-graphics-progra...
[+] [-] atan2|1 year ago|reply
Good one.
[+] [-] kinow|1 year ago|reply
[+] [-] DeathArrow|1 year ago|reply
That said I would start by learning three things in parallel: a game engine like Unreal, Unity, Godot, a graphics API like DirectX or Vulkan and algorithms and math. I quiet stress the last part: learning algorithms is very important to build something, understand how game engines work and being able to improve what you already have.
[+] [-] dbetteridge|1 year ago|reply
Time to bust out the khan academy courses I suppose.
[+] [-] calebjosue|1 year ago|reply
https://courses.edx.org/courses/course-v1:UCSanDiegoX+CSE167...
[+] [-] rpcope1|1 year ago|reply
[+] [-] arnearne|1 year ago|reply
[+] [-] luaKmua|1 year ago|reply
https://www.amazon.com/Introduction-3D-Game-Programming-Dire...
[+] [-] thewanderingben|1 year ago|reply
[+] [-] theoa|1 year ago|reply
;-)
[+] [-] tehfonsi|1 year ago|reply
Running the same code in a stackblitz or codesandbox environment would give you syntax highlighting, auto completion and so on
[+] [-] Cadwhisker|1 year ago|reply
It can be quite a rabbit hole when you find that he's up to 38 pages of weekly roundup links going back to 2017.
https://www.jendrikillner.com/#posts
[+] [-] timostrating|1 year ago|reply
Next to Realtime Graphics you could also dabble into the world of Ray-Tracing. Personally I'm still quite new to this field but my master thesis supervisor also gave lectures at an other university where they recoded a lot of lectures during Covid. Advanced Computer graphics at the UU for example https://ics-websites.science.uu.nl/docs/vakken/magr/2021-202... The course recommends https://raytracing.github.io/ as a resource to students, and I can also recommend this.
As a small note to end with, the website(s) of professors giving computer graphics are a true tressure trove of information: https://jacco.ompf2.com/ https://www.3dgep.com/cpp-fast-track-1-getting-started/
[+] [-] badpun|1 year ago|reply
[+] [-] brudgers|1 year ago|reply
Here is one in Lisp I googled: http://www.ulisp.com/show?2NWA
[+] [-] johnnyanmac|1 year ago|reply
My current vibe is that it just seems impossible, with 30 different ways a graphics programming interview can go, and positions are shifting more to Unity/Unreal engine devs over someone who can manage/maintain a shader pipeline or dig deep into optimizing buffer queues and draw calls.
[+] [-] chadcmulligan|1 year ago|reply
[+] [-] weinzierl|1 year ago|reply
[+] [-] johnnyanmac|1 year ago|reply
I'm a bit less sure about Ogre3d. Another very old repository, but it's been through quite a few revisions over the years. I don't know how clean the code would be for a beginner approaching it. But if you learn by reading and changing code, it sure would be the exact challenge you are seeking.
[+] [-] gield|1 year ago|reply
[1] https://www.oreilly.com/library/view/ray-tracing-from/978149...
[+] [-] yogrish|1 year ago|reply
[+] [-] ggambetta|1 year ago|reply