Review of “3D Graphics Programming from Scratch” (Pikuma.com)

Here’s my review of 3D Graphics Programming from Scratch by Gustavo Pezzi.

TL;DR: It’s amazing 11/10, just buy it already.

I can confirm the other positive reviews are all true. So in this review I’ll focus on things the other reviewers haven’t already said. Cue the montage!

How I started:

And here’s some things I’ve made since I finished:

I started the course as part of my Learning C series on April 19th and finished on May 17th. The course is 35 hours long and I spent 54 hours in total. You can read my learning process from the beginning here.

I don’t consider myself to be a math person. And let me tell you, after 54 hours: 3D graphics programming is math all the way down. However, Gustavo’s explanations of the math concepts were excellent and I was able to understand them. I found myself enjoying math that I never thought would be relevant to me. Things like barycentric coordinates and vector operations. This course really brings math to life.

One thing that really stood out to me is that Gustavo’s slide pointing is always perfect (in real life, you can look at the whiteboard/ projector screen to see where to point, but with a green screen it’s much harder). Also, the green screen keying is excellent. I’ve watched a lot of green screen lecture style videos and none of them compare.

Takeaways/other things I learned:

  • Vim. This is one of the best investments I’ve made since learning to touch type. I’m so much faster editing in Vim than my in previous text editors. I’m still learning, but I’d highly recommend at least trying it.
  • Process documentation. A lot of my learning process is messy: I do some things here, some over there, try a bunch of stuff that doesn’t work, go back, skip forward, you get the idea. Converting it into something people can read and understand is a fun challenge.
  • Looping GIFs. The creation of almost every image in the series revolved around making the GIF loop xD Early on, I added methods to make the renderer rotate the 3D model and pause once it completed one loop. My original process was: screen record the 3D renderer, trim the video, and use ezgif.com to convert to GIF and optimize. My current process is: save the frames directly from the renderer and use ImageMagick to convert to GIF “convert $(ls -1v *.png) -layers optimize output.gif” (I know parsing ls is bad, but hey, it works.)

Some other notes: I followed the course on my almost ten year old laptop and I didn’t have any issues. I used Clockify to track my time and it worked great.

Conclusion

I thoroughly enjoyed myself during this course and I’d have absolutely no hesitation buying any of Gustavo’s other courses.

2 comments

  1. That is excellent! I am glad you liked the course. I have started taking it myself and I appreciate your thoughts on it and hope to be able to produce some programs like the ones you have shared.

Leave a comment

Your email address will not be published. Required fields are marked *

Your data is processed in accordance with my privacy policy. Comments are manually approved and may take a while to appear.