Live data from Hacker News

How do I become a graphics programmer?

gpuopen.com

181–190 of 207 posts

Re: How do I become a graphics programmer?

#181
post #174
post #173

Earlier quoted context omitted.

But how does one become one of those engine developers?

https://engine-programming.github.io/

I guess the underlying question from here is "how do I get a job as a graphics programmer? What do people interviewing for a grpahics engineer want?"

Probably not the best question to ask in this market where everything is especially selective, but even as a now "senior" engineer (I guess I passed that magical 5 year mark a while ago) it feels like I still fall into the catch 22 of "be a graphics engineer to get a job as a graphics engineer"

Re: How do I become a graphics programmer?

#182

I would suggest that beginners not lead with "which tools should I capitalize on" and instead, take a step back and ask "what do I want to make"? Don't lose focus on the final output as you make your first steps. In the world of computer graphics today there are so many tools that abstract away various steps in the process of drawing pixels to the screen that you could very easily waste too much time suffering with l…

This is great advice. I think it’s a common trap when I see questions like “what language should I learn/what language is the best”, which skip the point of “what would you like to build”. The tools change with time, and the best engineers in my experience generally know how to use a variety of tools with varying degrees of skill rather than be super deep in a single one.

I don't think it's necessarily a trap. People asking this question more often have the underlying question of "how do I get a job doing X?" so they are asking "what do job posts expect out of a graphics programmer?".

It's more fickle, becuase you can definitely build amazing stuff with WebGPU/WebGL and JS. But it might not get you past the dreaded HR filter.

Re: How do I become a graphics programmer?

#183

I would suggest that beginners not lead with "which tools should I capitalize on" and instead, take a step back and ask "what do I want to make"? Don't lose focus on the final output as you make your first steps. In the world of computer graphics today there are so many tools that abstract away various steps in the process of drawing pixels to the screen that you could very easily waste too much time suffering with l…

This is hands down the reality and the best advice out there. No one cares if you are able to do vulkan for 8 years EXCEPT for research labs. And getting there requires that - you either have a PhD or the exact experience (threeJS, unity etc) as above because that will help you set foot on industry effectively allowing you to work on higher abstraction and slowly/rapidly decent into low level code.

>you either have a PhD or the exact experience (threeJS, unity etc) as above because that will help you set foot on industry

PhD seems extremely overkill unless you know the exact kind of graphics programming subniche you want to work in and are deadset finding the half dozen labs focusing on that. I don't think you need that kind of specialization to get a gig in games or VFX if your goal is indutry.

Exact experience is exactly why people ask about what to learn. If you know most people use UE5 it might make more sense to focus on the high level stuff to appeal to studios than to dig into Vulkan for years.

Re: How do I become a graphics programmer?

#184

As a graphics programmer i think its good to have a well rounded idea about how graphics works. Here are some things I would expect a good graphics programmer to know, beyond just programming and an API: -Rotation view and projection matrices, and general vector math. -Shader programming. -Procedural primitives like voronoi, SDF and perlin. -Image Compositing. -Forward and deferred rendering. -Various sampling techni…

>Knowing a bit about how the art pipeline works and how to get data out of 3D apps.

Could you expand a bit on how to approach this? It's something I'm very interested in and I know the bare basics of how a model is made (model -> skin/rig -> animated -> textured) and a rough idea of how you write all this to a file. But it can be hard to really get some proper hands on experience here in particular without an artist on board.

Re: How do I become a graphics programmer?

#185
post #178

Earlier quoted context omitted.

My website/book/course does the same thing, and it's freeeeeee! https://www.gabrielgambetta.com/computer-graphics-from-scrat...

I have your book. It's a great read but I would not say it's "the same thing." :) People pay for a specific teaching style and that's absolutely fine.

nothing wrong with seeing if the freeeee alternative works better before throwing out $70 tho.

Re: How do I become a graphics programmer?

#186
post #70

Earlier quoted context omitted.

Good comment, and, basically, I fully agree, except, I really dislike your attempt to appropriate the words "programming" and "coding" here. Like, can you just explain what you mean without trying to redefine terms that have broadly accepted definitions distinct from how you're trying to use them here? (Sorry, this probably sounds more critical than I'm intending...)

Programming requires creative thinking. Coding, historically, was a lower-paid, unskilled position. You may think this is redefinition. It's not. This is how both terms originated. A "coder" did the unskilled gruntwork of implementation for business projects, while a programmer was holistic. > I find it bizarre that people now use the term "coding" to mean programming. For decades, we used the word "coding" for the w…

Thing is that no one hires "coders" anymore, even if many people's jobs are in fact mostly coding instead of establishing the design. It's a weird stigma that translated to companies low key lying about what they really want out of an engineer.

It's a shame because there's a nice flow to coding once you got everything nailed down. Coders are no different from (human language) translators and like good localizers, a really good "coder" understands the subtleties of the language. If your application is concerned about scalability or performance or cross-compatibility, you aren't just googling an API and pasting in commands to get something working.

But I guess coding may not really be a thing in the next few decades if AI really does catch on.

Re: How do I become a graphics programmer?

#187

Earlier quoted context omitted.

If you want to learn webdev you don't start by building a web browser despite the fact that building a web browser would teach you a lot.

Web dev is sufficiently abstracted from the browser and the hardware that a skilled web developer doesn't really need to know the internals of the V8 engine or how a browser works. A web back-end developer probably doesn't need to deal with the browser at all. Graphics programming skill (by 'skill', I mean being able to write a shader pipeline that both satisfies the art direction and performs well), on the contrary,…

>Graphics programming skill (by 'skill', I mean being able to write a shader pipeline that both satisfies the art direction and performs well), on the contrary, is very deeply tied to a good understanding of hardware.

I'm not entirely sure I agree in the modern day sense. Especially if our analouge is webdev. So much of industry is using UE and Unity that you probably can be a "graphics programmer" professionally without ever knowing what a vertex buffer is (only slightly exaggerating). Your ultimate job is either to a) make images look better b) make images run faster or c) make sure images can get put into the engine properly. And a high level understanding and implentation of shaders/texturing concepts and understanding which settings run slower on those engines (even if you can't explain them in detail) can get you pretty far in those regards.

you're certainly SOL once you move out of your engine of choice, but you can definiely be productive enough to get hired if you got a foot in the door.

Re: How do I become a graphics programmer?

#188

All the comments here are BS. You have to learn how to construct 2D and 3D graphical spaces in real time and let them evolve and I'm sorry to say, as others have before, there is no royal road to mathematics. You simply have to put your time in the trenches. All the tools being sold to you are ephemeral and will soon become obsolete, so you simply have to grasp fundamentals of linear algebra and 3D spatial representa…

Odd comment, but then again a comment calling dozens of constructive approaches BS probably needs to check under its own show.

> You simply have to put your time in the trenches

Ahh yes, just learn math. Very informative. Math after all is like hitting the gym. You grind fractions an hour a day and next thing you know you invented calculus.

>All the tools being sold to you are ephemeral and will soon become obsolete

Soon in the grand scheme of an immortal, I suppose. But OpenGL 3.3 is some 20 years old now and could have made for a decent career for a decent human career.

>You can try to use tools created by others but the results will all just look the same as theirs

those math textbooks don't exactly teach you how to make nice shaders. The fundamentals of light and how it traverses is great, but a lot of real time math (even real time ray tracing) is a lot of tricks and hackery. Stuff you won't find even in dedicated raytracing books like pbrt. This is unfortunately where those "fundamentals" break down and we need to traverse into computing. Fortunately there's 40 years of computer graphics research to reference.

>if this is too much bother I'd suggest going back to non-digital mediums for your artwork like pen & ink watercolors oil paints etc.

I'd argue that harder for how my brain and body is configured. I don't need a steady hand to make 3d shapes, something that most take for granted.

>If you can't handle vector calculus and complex analysis then that's too bad

Glad you weren't my teacher. Probably wouldn't be in industry with that sort of mentality.

Re: How do I become a graphics programmer?

#189

I went through this and switched from web dev to being a graphics programmer at a game studio Personally I think LearnOpenGL is still the best tutorial series if you want to work on game rendering engines Just because it covers a ton of different topics from beginner up to advanced all in one series. You go from scratch all the way up to implementing deferred rendering and a full PBR implementation If you understand…

>In terms of getting a job though the modern APIs are highly desirable

so would you say a LearnOpenGL-esque renderer for Vulkan is still a good portfolio piece to showcase your experience as a graphics programmer? I'm middle/early senior level in terms of experience but still want to do graphics programming one day. Market right now seems pretty dire, but I want to spend 2024 on something so maybe something bites in 2025.

But I'm not sure if I should focus on fundamentals and work in Vulkan (I've done toy renderers in OpenGL so I'm well learned in the pipeline already) or instead specialize and try to showcase something in Unity/Unreal. I vastly prefer the former since my long term goals involve de-coupling from the big middleware engines, but alas. I need to appeal to employers.

Re: How do I become a graphics programmer?

#190

Is there any point in learning in new programming skills when AI can do it all? I feel discouraged about learning new skills in this era

I argue graphics programming is especially resiliant to AI. that domain doesn't have a lot of code out there to scrape, and the problems can't simply be optimized by throwing more hardware at it. I doubt current AI can really do a graphics programmer's job as of now.
Post reply on HN