7 ms·
Today, I would not recommend anybody to go into graphics programming: I started in 2001, when NVidias first Geforce 1 ("the Gigatexl shadercard") was first ann
by KellyCriterion 3mo ago
Today, I would not recommend anybody to go into graphics programming:
I started in 2001, when NVidias first Geforce 1 ("the Gigatexl shadercard") was first announced:
The field developed since then with so much speed and innovations, it blows my mind of. Compared to what we could do 25years ago, the tech today is just fu*ing impressive.
Though, with this impressiveness comes a big "but": The space is developing at a speed which is really really scary. Nvidia came up with AI-based effects to influence scene & assets on their own - back then, we wouldnt have even thought about that this will be possible some day in realtime.
I do not know if its possible at all to be a "decent pro" in this field now - let me use other words: "Where is todays Jon Carmack?" - he was famous for squeezing everything out of the hardware, using ideas very hidden in the community etc. - today, there is not any competitive moat for people like him (he actually lives on his legacy), and that is because the field is so vast and evolving so fast that there is no chance to become the next one
- bsenftner 3mo agoGraphics programming has this one very, very useful aspect, exponentially more valuable today: the matrix algebra pipelines, and then the requirement to 'think in matrix transforms' is a wonderful and visually engaging way to get your foundation for machine learning math.
- mathisfun123 3mo agoThis is like saying being a cashier prepares you for a job in high-finance because both involve arithmetic on dollars and cents. I've been in ML for ~5 years in multiple FAANGs and I have never seen a rotation matrix.
- pascahousut 3mo agoIs the linear algebra of machine learning more complicated than that of graphics?
- molybd3num 3mo agoi think so
- ekholm_e 3mo agoI'm a data scientist and not a graphics programmer, but my guess is that it's just abstracted away more. If you're using ML/DL libraries, you're mostly just calling APIs that handle the linear algebra and calculus for you. Unless you're actively contributing to those libraries, you likely don't ever need to "touch" any of the underlying operations. Up to a point, it's useful to understand how things work under the hood, but where that point is kinda depends on your job. For instance, I could write code to do 'naive' matrix multiplication, but I couldn't, like, contribute to BLAS.
- dahart 3mo agoBoth are large fields with many varied applications of linear algebra (and non-linear math too), and many people trying a lot of interesting & complicated ideas. The question is way too vague to answer meaningfully, it depends on what you mean by ‘graphics’ and by ‘machine learning’ and by ‘linear algebra’ and by ‘more complicated’. ;) The linear algebra used in the basic raster pipeline to manage drawing a 3d unshaded mesh is pretty simple, and you can get by knowing just a little bit of linear algebra, like dot products and how to multiply matrices, and maybe what homogeneous coordinates are. But that is by no means the extent of linear algebra in all of graphics. The linear algebra used in a basic neural network is also pretty simple, and you can get by knowing dot products and matrix multiply if you’re writing your own inference, and maybe just a tiny bit of derivative calculus if you’re writing your own backprop, but otherwise you don’t need anything else. Students in both fields have to learn some basic linear algebra, but most people working in ML & graphics generally don’t use any linear algebra day to day, because most people aren’t writing inference/backprop and most people aren’t writing the graphics pipeline. BTW, matrices and linear algebra are pure convenience for neural networks, and maybe for the graphics raster pipeline too. You can do both of these things without using matrices per se (though you might re-invent something equivalent and/or less efficient by avoiding matrices).
- jplusequalt 3mo agoTBF, I bet any graphics programmer would be a boon for a ML shop for their GPU/performance optimization knowledge alone.
- KellyCriterion 3mo agoAFAIR, the guys at DeepSeek with their PTX-assembly approach didnt have any graphics programming experience
- bsenftner 3mo agoOne of the largest, uncomprehendingly huge, omissions in AI video models is the lack of anyone from film, film production, animation, 3D graphics, or VFX on their video AI teams. Why would that be needed? Well, so the freaking models understand when anyone from any of these backgrounds prompts them with their industry standard language and terminology to describe a set, a camera move, an type of environmental lights, or any of the thousands of production terms used globally for the creation of media. The latest models are just now starting to understand basic terms, but describing a sequence with a motion camera moving for a narrative reason with action and dialogue in front is like describing calculus to a toddler. That's not to mention how much optimization knowledge anyone from a digital production developer background brings to the table...
- kilpikaarna 3mo agoI mainly learned linear algebra via hands-on 3D graphics, and have a hard time thinking about a matrix as anything other than 4x4 and representing a linear transform... How much do you even think about explicit matrix math when doing high-level ML?
- skydhash 3mo agoI’ve not done high level ML, but I’ve done introductory ML and the truth is while the input space and the output space can have N and M dimensions, there’s not a lot of constraints involved. The matrix there are more randoms. The whole ML field is basically about starting from random points and trying to find useful shapes and constraints. Basically like trying to get object likeness in clouds
- bsenftner 3mo ago3D graphics is so much more than the basic transforms. Add in all the deformation systems blending together, and those often being physics driven off the animation. You all have seen modern VFX, right? That is not basic 4x4 transforms.
- cognoboffin 3mo agoDoesn’t RoPE use 2D rotation matrices ?
- mathisfun123 3mo agocongrats you've found literally the only example ("the exception that proves the rule").
- bsenftner 3mo agoYour fixation on the rotation matrix == 3D graphics is not right
- cognoboffin 3mo agoSVD, and PCA are also examples.
- mathisfun123 3mo agothere is absolutely no sense in which the SVD/PCA decomposition is just a rotation matrix. you should probably review your linear algebra textbook (hint: scaling is extremely important).
- cognoboffin 3mo agoSVD is the decomposition of a matrix into two rotation matrices and a scaling matrix, by definition: https://en.wikipedia.org/wiki/Singular_value_decomposition https://en.wikipedia.org/wiki/Singular_value_decomposition
- mathisfun123 3mo agoi don't understand who is having trouble reading the dialogue here you or i; > there is absolutely no sense in which the SVD/PCA decomposition is just a rotation matrix... (hint: scaling is extremely important) ... > SVD is the decomposition of a matrix into two rotation matrices and a scaling matrix, by definition: yes that's exactly what i was implying when i said SVD more than just rotation, scaling is also important. my point, which is my same original point, is that if you think learning about rotation/euler matrices is going to prepare you in any way, shape, or form for ML (vis-a-vis SVD/PCA or RoPE or anything else) you're in for a very rude awakening.
- srean 3mo ago... and I have been both situations for longer and have seen tons and tons of them (*)... So? Not so hypotheticals -- Heck the inputs that you want labelled could be rotation matrices. The desired output could be a rotation matrix. Generating more convenient features could be via a rotation matrix. Dimensionality reduction could be through a reduction matrix. Sparsity could be encouraged by proper use of rotation matrices. Shows up if you want to build in group theoretic invariance in your predictive model. (*) If you consider Householders then even more
- bsenftner 3mo agoA rotation matrix is but one of dozens and dozens of different types of basic transforms. It gets really fun with jacobian 12x12 matrix operations, and free form deformations. Which maps to ML far better than most imagine.
- rustystump 3mo ago5y multiple fang? Dont you know it is MANGOs now and has been for a while. Are you sure it is FAANGs?
- eichin 3mo agoI don't really see this with modern graphics programming, but I was highly amused that my 1980s-1990s graphics skills (in particular, coordinate transform math) were very useful when I started working in robotics in the 2010s-2020s (because forward and inverse kinematics are exactly the same thing as 2d/3d projections.) The trick there is that they both have related physical analogs, and machine learning math doesn't really (in that while you can visualize them spatially, it doesn't seem to help solve any problems in that space.)
- hoistthesales 3mo agoJC was a bit of an anomaly but also his image is mostly coming from players and journalists. Developers struggled to use the later id software engines (partly why UE won that war). You don’t need to be JC to earn a decent living as a graphics/game programmer.
- halestock 3mo agoHuh? Just because you're not going to become the next graphics programming legend you think it's not worth getting into graphics programming at all?
- JasonSage 3mo agoIt's also a great way to not become the next "graphics programming legend" --I think a fast-moving field with lots of new developments is actually an exciting place to be a pro.
- alexashka 3mo agoThe moment you realize most people's thinking is no better than a hallucinating LLM :)
- ragnese 3mo agoThat's not a charitable reading of their comment. Granted, I also don't think articulated their point very well with that example. I can't speak for the commenter, and I'm genuinely not sure about the point they were attempting to make. But, I think the point was more so that things are moving so fast in the field that it's basically impossible to become the level of expert that has a truly deep understanding of all the parts and layers. If you're an expert as a particular programming language, for example, you may have a good mental model for what optimizations the compiler and/or runtime are able to do, and the way you write code in that language may be influenced by that deep knowledge. You may have written so much code in that language that you know all of the corner cases and foot-guns, and how to deal with them--or better yet, how to avoid them in the first place. You may even develop new/uncommon patterns or idioms that other people end up adopting. But, if that programming language totally changes its own semantics and compiler toolchain every few months, nobody would have time to build deep intuition and expertise like that. I think that was the point.
- markus_zhang 3mo agoWhat if I just want to program some rendering engine for a game that looks like DOOM 3 and its predecessors? I think that’s still quite doable?
- corysama 3mo agoOld 3D engine guy here. I highly encourage folks to make a 3D engine for fun and learning. Shipping a game with it would be a cherry on top. Come join us in r/graphicsprograming, r/gameenginedevs and the graphics programming discord.
- shermantanktop 3mo agoSeems like a lot of people work for a long time perfecting their special flavor of ice cream and never quite get to the cherry on top. A lot to be learned from building a 3D engine, no doubt, but anecdotally the chances that it will lead a working game that anyone wants to play seem low. That's not a bad thing, unless they tell themselves they are going to ship a game any day now, just as soon as they do X, then Y, then Z, ...
- markus_zhang 3mo agoThanks. I have 3 days of vacation ahead so will use the time to sort out the math first. Code shouldn’t be too hard for a very simple 3d demo. I tried my hand on hand a while ago and found out I couldn’t make out how many pixels to draw, say, a line in the 3d world. It involves a transformation to the world and another transformation to the camera, so I couldn’t make it out without any study. This is probably very trivial so hopefully 3 days is good enough.
- corysama 3mo agoI recommend https://gamemath.com/book/ https://gamemath.com/book/ as a good starting point.
- markus_zhang 3mo ago
- sph 3mo agoI really dislike people that got into a thing and then try to discourage others. “Don’t be like me! I wasted my entire life” which is bullshit from a jaded person that lost passion. Telling people to stay away from graphics programming is not how to entice tomorrow’s John Carmack. So here’s another perspective. If all you have done is web apps and Kubernetes, for example, do get into graphics programming. The feedback cycle is exhilarating, and you get to appreciate how mind boggingly fast your average computer is. You’ll get to optimize things that are ultimately unimportant because you have never learned how quick things are at the low level. There are a ton of resources and the maths is not too bad. You might find that 3D modeling is a creative outlet you didn’t know you needed. Even if completely inapplicable to your day job, you’ll find new ways to appreciate the art of programming computers, and might just decide to never touch Kubernetes again and spend the next 5 years writing your own game engine in your spare time. There are a lot of crazy people like that, and the community of hobbyists that are not ground down by life and game dev as a career is larger than you’d think. The Graphics Programming discord is a welcoming place if you want to check it out. Go for it!
- modeless 3mo ago> Don’t be like me! I wasted my entire life That's not the argument being made here. The field is changing. I had a good career in graphics, my life wasn't wasted at all. That doesn't mean a college student would have the same experience starting today.
- sph 3mo agoWell, of course not, unless you are claiming that a future career in graphics is a bad idea, and there is no way you could say that with any reasonable certainty, I do not get the argument at all. The field is always changing. You could find people in the 80s saying ‘I had a good career in graphics, a college student would not have the same experience starting today’
- reactordev 3mo ago100% this. My dad told me not to get into it because of the web (he was a C guy) and instead I went head first into it AND did graphics programming (using C#, ewwww) just for the fun of it. Never discourage from someone wanting to learn, discourage the ego that thinks we need another John Carmack.
- groundzeros2015 3mo agoThere is more to graphics than AAA games or blockbuster movies.
- Profan 3mo agoHow about people like Inigo Quilez? I'd say they're still quite high profile in today's landscape. And the main thing is I think there's just way more people in the field overall today too, not everyone can be famous! It's totally fine to not be as high profile as literally one of the most well known people in a field, it's fine to just do it because you enjoy it! The math and art of graphics (and games in general) programming is beautiful in and of itself.
- jayd16 3mo agoYou can still read a bunch of papers and be first to market using exotic tech. The main issue right now is that games are so incredibly high budget and the bar is so high that you really need to stand out in many ways. We see folks posting photo real, Gaussian splat FPS maps here every now and then but without also innovating on gameplay its just a tech demo. Those don't cut it these days.
- psygn89 3mo agoI think the people that go into this field today (and for a while now) probably do it for the love of it, not the pay or widespread fame of doing something extraordinary in the field. Not that you can't have it all, but not being some legend I, well, I think that's a strange reason for someone already interested in game dev not to step into the field?
- cjk 3mo agoCouldn't disagree more. I've only recently started digging into graphics programming and I've found it incredibly rewarding. It's the _one_ area of expertise that I don't yet have that has been preventing me from solo-developing a 3D game engine. It takes five minutes of trawling through the videos on the GDC Vault to see all of the clever and interesting ways modern graphics engineers are eking every bit of performance out of modern hardware. Is it as clever or innovative as Carmack's fast inverse square root? I don't know. I'm not sure how to compare those things. But there is still plenty of room for that flavor of work for those that are interested.
- bsenftner 3mo agoWell, then: "merry Christmas" so to say: https://flipcode.com/archives/ https://flipcode.com/archives/
- cjk 3mo agoThis is brilliant. Thanks!
- KellyCriterion 3mo agoHa! Didnt now its still online! It was THE ressource back then! :-)
- nicebyte 3mo agoRidiculous justification. "Where is todays Jon Carmack?" Where is the "John Carmack" of ML? Where is the John Carmack of physics? This hero worship crap needs to be left in the past. There isn't a singular active researcher you can point to and say "this person has made the field what it is today". There are very influential papers, but they all have multiple contributors. Is that really a valid reason to not engage in a particular area of research or engineering? And who cares anyway? No matter what you choose to do with your time, chances are that you will not have that much of an impact on your chosen discipline. You should choose how to spend your time based on whether an activity genuinely interests you, not on whether you think it would be easy to get recognition.
- nicebyte 3mo agonow, if you said "don't get into it because your primary employment prospects would be games or film industry, which are known to be less than stellar towards their workers" - that would be a different story.
- OkayPhysicist 3mo agoPhysics is a weird one to bring up, because even compared to other fields, it's one where breakthroughs are frequently the result of relatively singular genius. Newton, Faraday, Planck, Einstein, their discoveries were generally not incremental progress along existing lines of inquiry like most physics research is, they made pretty radical changes to our understanding of the world writ large. In comparison, Carmack is grossly overhyped. He's like the Feynman of CS: A significant contributor to relatively young field, and a pretty influential communicator, but their contributions were moreso being the first to make a certain type of incremental progress than a paradigm shift.
- nicebyte 3mo agoNo, that is exactly the reason I am bringing up physics. There used to be a time when a singular person could make an outsized impact. In the recent past though, this has not been the case: significant breakthroughs are usually the result of coordinated effort of many individuals. Is that really a valid reason to not do physics?
- anthk 3mo agoFabrice Bellard.
- deleted 3mo ago[deleted]
- redlewel 3mo agoBoooooooo Keep learning yung ones
- lp4v4n 3mo agoVery interesting insights, thanks for this. Indeed "be a graphics programmer" nowadays sounds like "be an assembly programmer". A kind of time waster for a nerd with too much time in their hands.
- fasterik 3mo agoComputer graphics is intrinsically interesting and rewarding. It sits at the intersection of several important fields, from computer science to mathematics to theoretical physics to low-level programming. Maybe steering away from it is good advice for someone who's looking for a career transition but doesn't care about what they're actually doing. But that's not a good way to go through life; my advice to such a person would be to follow what they find interesting and valuable, and constantly challenge themselves to learn new things. Then deciding whether or not to learn computer graphics is relatively straightforward and it will be a net positive for the right kind of person. Even if they don't make it a career, the skills transfer well to many other areas.
- qingcharles 3mo agoRight. Most of the clever stuff that Carmack is famous for moved from software into hardware. By argument about not getting into graphics programming is different -- are 3D engines, with their vertices and textures, going to even exist a few years from now? Or will everything be rendered directly by an AI world model? How much code will a game contain, or will it simply exist in a series of cleverly-worded prompts?
- dylan604 3mo ago> "Where is todays Jon Carmack?" - he was famous for squeezing everything out of the hardware, Spinning that another way, there's Bill Gates (not sure of the authenticity though) saying something along the lines of why would he pay to spend that kind of time when CPUs/RAM/HDDs are getting faster/cheaper; users can just upgrade. If we determine which method is more successful based on their worth...
- skotobaza 3mo ago> users can just upgrade That used to work, but not anymore. Not because of hardware prices, but because of small gains that upgrading gets us nowadays.
- ossgamesnoexist 3mo ago> "Where is todays Jon Carmack?" Where are today's games with sufficient insight on their technical aspects, to the level we got with Commander Keen, Wolfenstein and Doom? Dwarf Fortress solved some outstanding lag issues involving tracking owned objects. But if you ask a random person HOW, we don't actually have a serious clue. Think of well known instances of big developers having their code exposed and we have... I dunno, Valve's TF2 leak and their incredibly rare Dota 2 between the lanes posts? There is no John Carmack now. You're saying its because there's no large space to improve on like how early people had to. I say it's not because the struggles and unique problems disappeared, but because there isn't a benefit to that type of transparency anymore.
- jzer0cool 3mo agoAny insights? If not traditional Computer Graphics due to change, where might be the good to spend your attention within the field. Or is OP saying to stay away?