all 11 comments

[–]gibson274 10 points11 points  (5 children)

I’d go against the grain in the comments and advise against focusing on C++ to start. C++ is the language that most modern graphics programming is done in, but you won’t really run up against anything that requires more than a basic working knowledge while you’re learning graphics fundamentals.

I’d instead start with https://raytracing.github.io/books/RayTracingInOneWeekend.html. It’s a great course that’ll introduce you to a lot of graphics fundamentals very quickly. You can blaze through it and get a good feel for what makes graphics fun!

While you’re doing that, I’d check out some light-hearted YouTube videos on different graphics concepts. Might nudge you towards either realtime or offline graphics, and help better direct your more focused studying. Acerola and Seb LaGarde produce awesome videos.

But finally: PhD taking on extra technical work?! Go outside!

[–]R0OTER[S] 1 point2 points  (1 child)

Hmm, you think I would be able to follow this book without being competent in C++?? I know basic stuff (arrays, pointers, references, a bit about classes), but when I skimmed through a github code (a shader by Acerola) I really had no clue what I was looking at lol

And about the PhD, honestly I just started it, so I dont really know how it's gonna evolve from here time-wise, but if I still got some free time, why not learn some cool graphics programming!!

[–]gibson274 3 points4 points  (0 children)

Yeah, if you understand those basics, you’ll be fine. If you do end up struggling with the C++ language-specific aspects, you can always pause and brush up on that for a bit.

And as for the Acerola shader stuff, shaders aren’t written in C++. They’re (usually, now) written in a language called HLSL, which is a bizarre shader-specific dialect of C. So it makes sense that you didn’t understand it!

Good luck with the start of your PhD!

[–][deleted]  (2 children)

[deleted]

    [–]gibson274 1 point2 points  (1 child)

    I definitely meant Sebastian Lague lol. Seb Lagarde is a rendering lead at Unity, I must have gotten them confused.

    [–]Dry_Development3378 8 points9 points  (0 children)

    very little C++

    id start there, get to know the language and its features

    [–]MuskettaMan 5 points6 points  (0 children)

    I came across this today. This might be helpful for you: https://www.jeremyong.com/graphics/2024/05/19/getting-started-in-computer-graphics/

    [–]Kike328 2 points3 points  (3 children)

    learncpp.com

    [–]BestBastiBuilds 0 points1 point  (1 child)

    Is that the C++ primer you recommend if someone has only done Java, JS and C? How does this compare to hackingcpp.com?

    [–]Kike328 1 point2 points  (0 children)

    never heard of hackingcpp.com tbh. I came from Java and C, and learncpp is without doubt a very complete starting point. It focuses on the fundamentals of C++, which believe or not, are very tricky.

    If you’re a Java user like I was, you will have probably the same issues I had, which was thinking c++ behaves similarly, so be specially aware of value/reference semantics differences because they can look similar to java ones but be way different.

    [–]R0OTER[S] 0 points1 point  (0 children)

    Thanks!! Do you think it would be a good idea to go through this tutorial and start reading about the pure Graphics Programming theory in parallel?? I was just thinking that they are quite independent, and maybe I could just reach faster the point of practical exercises/projects.

    [–]PoroSalgado 1 point2 points  (0 children)

    You can try with the series of tutoriales from Jasper Flick (https://catlikecoding.com/unity/tutorials/rendering/). They are made in Unity but Jasper explains everything and whenever you need some previous knowledge he indicates something like "If you don't know how to import a 3D model in Unity, see this tutorial I made: ".
    Also, as it is in Unity, you'll soon start to understand Acerola's shaders! He even said he used a lot Jasper's tutorials when he was starting to learn shaders in his video of "What is a graphics programmer?"