Hacker News new | ask | show | jobs
by oumua_don17 5 days ago
If you really want to learn from first principles, I'd recommend writing a software renderer without any graphics API. If you're looking for a course, see [1]. Next up, extend the software renderer to render a 3D character model (an obj file will suffice) which [1] covers and animate that 3D model with skeletal animation all the while on the CPU. Use quake's md5mesh and md5anim files to render the skeletal animation from [2]. This just lays down a clear foundation of what a rendering pipeline looks like.

Then pick up something like Modern OpenGL and you'll easily intuit if you've put in the hard yards above, which parts of this pipeline are fixed and which are programmable on a hardware designed specifically to do 3D. It just so happens that the same is reusable for compute and there you go with all the D/ML jazz. After this, read up on the HW architecture of GPU's (the literature is sparse as these are vendor locked) but realtimhrendering books has chapters on it and you can find out why Vulkan, DX12, Metal are in vogue now and OpenGL has been deprecated.

[1] https://pikuma.com/courses/learn-3d-computer-graphics-progra...

[2] http://tfc.duke.free.fr/coding/md5-specs-en.html

1 comments

There's no need to pay for questionable courses. Here's an excellent free alternative that covers all the basics:

https://haqr.eu/tinyrenderer/

>> need to pay for questionable courses

You're absolutely wrong here and without backing it up with strong justification.

FWIW, I work at a FAANG as a HW/SW GPU Engineer, have enough experience to not have any need to do this course but did so to confirm it's appropriate and found it of top notch quality. We don't have enough GPU engineers and recommend this as one of the initial courses when we hire from other domains.

I have done both. Personally, I've found the the pikuma.com course to be extremely more valuable and more in-depth.
The author of this course is among the best professors I’ve had back in university, I’m happily surprised to see his work shared here
That course was posted just yesterday, in case you are interested in the discussion about it: https://news.ycombinator.com/item?id=49022038