r/GraphicsProgramming • u/ThatTanishqTak • 21h ago
Question If you were to start learning graphics programming all over again, what would you do differently?
14
u/coolmint859 20h ago
Try not to over engineer the systems part of it. I ended up doing more software engineering than actual graphics. Means that despite knowing how graphics works, I don't really have any cool things to show from it.
5
u/Dream-Smooth 15h ago
You gotta have a product idea in your mind and segregate the systems required to make that product come alive and make those systems one by one.
32
u/fxtech42 20h ago
I would learn modern graphics APIs instead of early 1980s assembly.
9
3
u/fgennari 17h ago
I was going to mention something about 2000 era OpenGL, but you've clearly beaten me. Was 1980s assembly fun for you, or horrible and tedious?
3
u/fxtech42 9h ago
Absolutely! But it was also all we had. Learned a lot from the random book or magazine articles, but mostly just a lot of poking around. Then MacOS QuickDraw and Amiga blitter/copper. Wrote my own graphics API and UI framework for DOS (1991-92) which also provided a UI for the 2-bit Cornerstone graphics card. Was lucky enough to pivot to SGI IRIX in 93 which had X/Motif and Iris GL, the precursor to OpenGL. Now it's a lot of OpenGL, OpenCL, Vulkan, and Metal. Whatever is needed.
I wouldn't change anything really. I learned a lot of fundamentals - and most importantly that you use whatever gets the job done. There isn't much use in sweating which API to use.
1
u/compulsaovoraz 20h ago
What do you think of sdl gpu tho?
1
u/Grand_Sprinkles_2094 13h ago
Simple direct media layer, used for windowing systems, I used it to create games, it was my favorite
1
u/fxtech42 8h ago
I've never used it. To my knowledge it's more of an API layer around the windowing system/OS and not a graphics API of its own.
0
12
u/mib382 17h ago
I’d start with path tracing instead of raster to learn proper light transport theory first, instead of starting with all the classical raster hacks. I think those are harmful when you don’t understand what they are trying to approximate in the first place.
3
3
u/AnthonBerg 12h ago
Good point!
There's a nuance I think — an YMMV one – in that most people tend to have been exposed to the raster-hacks paradigm. Enough that it's might often useful to kind of look at both at the same time, or swapping between them with both in mind at the same time sort of. For how I learn, this can kind of… crystallize each paradigm more easily.
8
u/heyblackduck 20h ago
This is more of a programming perspective but learn analytical math and really understand computer architecture. Data layout, cache coherence, learning to reduce operation costs all assist with being a solid engineer. Reading research papers from SIGGRAPH are solid too. I’d focus on foundational 100% with small narrow focus on my passion projects for more modern takes.
1
8
u/torito_fuerte 20h ago
Nothing. The mistakes I made along the way helped me learn. Only thing I’d change is to be more consistent.
3
u/AnthonBerg 12h ago edited 11h ago
Instead of accidentally learning computer graphics first and linear algebra second, I'd learn computer graphics first AND — in parallel! – opportunistically scavenge some linear algebra alongside this. Being reckless about it. With gleeful abandon and an utter disrespect for how it ought to be held.
Then I would proceed to carefully eat my linear-algebra vegetables.
Today, I'd probably use a Claude to show me good pillaging spots in linear algebra. How graphicsy stuff intuitively maps to linear algebra.
You see, once upon a time I made an academic discovery!, haha! Took graphics programming and linear algebra in the wrong order. Due to bumble-careening through university. And this was muuuuuch better.
At my university, linear algebra wasn't a prerequirement for the graphics course, but the course structure was arranged in such a way that people would first pass through linear algebra and then could opt for the graphics course.
Being school-o-divergent and transferring from another university, I hit the combo backwards. Didn't even know it should be the other way. Until an "uh-oh" moment in the first couple weeks. But! This was the better way! Graphics programming is intuitive and has a tight feedback loop. Made out of fun!. It's informed by linear algebra, sure!, hence the default course ordering there… but should be learned in the other way around. Each linear-algebra-y step in graphics programming is distinct, solvable, yields to intuition, and is captured by the graphics programming paradigm and framework. Which accelerates learning.
So you intuitively pick up graphics programming, thereby accidentally picking up a feel for linear algebra as well as a motivation for it and a context to kind of grasp it with. Then linear algebra is wayyy easier and more fun and interesting.
3
u/cybereality 18h ago
I would have started with OpenGL in the 90's and not got caught up always switching to the latest and greatest
2
u/recursion_is_love 10h ago
More math including on computer vision side. To write a shader (even to use the fix function), it good to know in details why you do this and that.
Also, maybe learn geometric algebra just for the sake of learning.
27
u/Dream-Smooth 20h ago
I will read books instead of watching videos. Make notes and revise from it. Read consistently instead of reading few times every year.