r/GraphicsProgramming • u/-Captain-Levi- • 1d ago
My Graphics Programming Journey
-First I learned C++
-Then Made some Projects
-Jumped to Opengl learned the very basics of it
-Currently Building a Ray Tracer based on the Book Ray Tracing in a Weekend by Peter Shirley
-After Completing all 3 books of Peter Shirley about Ray Tracing I want to Do some other Graphics Programming Related projects
-Then Gonna Learn more about Opengl and after getting comfortable with that I will Make some projects
-After this I am looking forward to Learn Vulkan and Realtime rendering with it
Is this a good Approach?
12
u/slashtom 21h ago
linear algebra
linear algebra
linear algebra
creating your own geometry library with adts will help you.
4
u/le-throw-away-acct 1d ago
If you're wanting to learn ray-tracing/path-tracing fundamentals this is a good plan. Alternatively you could go the down the rasterization route if you want to learn how most games are made. These days though, both are useful as RT/PT is getting used more often in games as time goes on and that will likely continue to expand.
4
u/Defiant_Squirrel8751 22h ago
I'm not sure about Vulkan. Will take some time to master.
Perhaps you want to add an intermediate step: working with geometric model datastructures. For example, playing around with Axis Aligned Bounding Boxes (AABB), Bottom Layer Acceleration Structure (BLAS), Top Level Acceleration Structures (TLAS) and even low level aspects of memory management such as POOLING (and its difference against a conventional memory allocator). There are some examples in the Sebastian Lague youtube channel.
If you understand things like quadtrees/octrees, binary search partition trees, KD-trees, voxels and several ray-surface intersection algorithms (not only triangles, but general poligons, bezier patches/Nurbs, quadrics, etc.) you will have an easier way of learning how to leverage your Vulkan API journey.
3
u/nightblaze1 19h ago
It very depends on what you want.
If you want to learn API and get visual results quickly then any tutorial is fine. You’ll get some knowledge but not understanding.
If you are really want to know how to do things then you need: a pen, a paper and linear algebra book. Reimplement doom 1 engine completely by yourself. After you finish it, you will for sure understand what to learn next.
To check yourself “is my path correct?” imagine that you get up at the morning and ALL API and frameworks become obsolete and everyone use new SuperMegaPerformant API. Is your knowledge applied to the SuperMegaPerformant API? Can you recreate your projects on it without tutorials?
(English is not native. Sorry for mistakes.)
2
19
u/gabitha67 1d ago
Once you've decided to move on from OpenGL, I'd strongly recommend using SDL3's GPU API. SDL3 GPU provides a thin abstraction over Vulkan that is great for learning a simpler api that is structurally very very similar to raw Vulkan. Myself and and a few others in this space were able to comfortably jump right into Vulkan after just a small amount of experience with SDL3 GPU. Many even choose to stay with SDL3 GPU instead of moving on to Vulkan, as SDL's API is a lot more cross-compatable than raw Vulkan. You'll still have 95% of Vulkan's capabilities with only about half of the complexity.
I'm starting to realize that I sound like I'm trying to sell you something, but seriously I just like this API so much and I think too many people are sleeping on it!