Live data from Hacker News

How do I become a graphics programmer?

gpuopen.com

141–150 of 207 posts

Re: How do I become a graphics programmer?

#141

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…

Listen to this guy, great advice. Early in my career, I set out to become an "OpenGL expert" and I'd say I mostly got there. I mean I'm no Mark Kilgard and haven't written any textbooks, but I dove super deep into the technology, and gained at least a decade of experience working on all levels of the API from the driver level to conformance tests and performance tuning, up the stack to game and application code, and…

Going broad rather than deep cuts both ways. Sure, you have more employment opportunities, but the value of your individual contributions has a ceiling. That means after a relatively short period of time, you plateau career wise. Like is a generalist with 15 years of experience really that much more valuable than one with 7 years? Not really. So if you want to progress beyond a generic senior engineer, then you need to specialize in something.

Re: How do I become a graphics programmer?

#142
post #92

Earlier quoted context omitted.

But without people like you (who understands the low-level graphics programming), the development of engine will completely stagnate.

[flagged]

> And without slaves, the pyramids would never have been built.

Rather: without the aliens, the pyramids would never have been built. :-)

SCNR

Re: How do I become a graphics programmer?

#143

Not really sure what this website is asking. Does the person want to: Rig? Texture? Model? Write drivers? Make GUIs? Animate websites? Make graphics tools? Work with shaders? Or work with 2D photo engines? Make 2D games? Make 3D games? Write procedural scripts? Optimize graphics code? There are hundreds of disciplines that fall under "computer graphics". The website focuses on a teensy little corner: programming grap…

I can see how it’s confusing but usually “graphics programmer” is someone who works on a graphics rendering engine (either real time or offline rendering)

[deleted]

Re: How do I become a graphics programmer?

#144
post #110

Earlier quoted context omitted.

When people like Bjarne Stroustoup, Herb Suttter, Andrei Alexandrescu say they are by no means a C++ expert, always beware of anyone that says otherwise. Same applies to most languages, unless they are talking about toy languages. Even something like C or Go, have so much room to debunk such experts. Between compilers, versions, language evolution, runtime, standard library, OS specific behaviours,....

> When people like Bjarne Stroustoup, Herb Suttter, Andrei Alexandrescu say they are by no means a C++ expert, Then you know something is deeply wrong with C++. If even they aren’t experts, that just means the language, despite being a human made artifact meant to encode human thought, is beyond human comprehension. That’s kind of a problem, isn’t it?

While it is kind of fun bashing C++, I also noted "Even something like C or Go, have so much room to debunk such experts. Between compilers, versions, language evolution, runtime, standard library, OS specific behaviours,....".

Anyone that thinks otherwise, we can arrange a pub Quizz in Germany, I get the questions, audience has to give up any kind of device with Internet connection.

Re: How do I become a graphics programmer?

#145

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…

Where do you learn this stuff?

A lot of these things are covered in computer science lectures if you pick the right ones. But you can also pick them up yourself by being curious how things work and reading papers or looking at existing game/engine source code. There are also many online resources as the sibling posters point out. Having at least some basic linear algebra or programming education makes things easier to understand.

Re: How do I become a graphics programmer?

#146
post #140

Earlier quoted context omitted.

Listen to this guy, great advice. Early in my career, I set out to become an "OpenGL expert" and I'd say I mostly got there. I mean I'm no Mark Kilgard and haven't written any textbooks, but I dove super deep into the technology, and gained at least a decade of experience working on all levels of the API from the driver level to conformance tests and performance tuning, up the stack to game and application code, and…

I'll join the choir and say to not ever try to become an OpenGL expert. It's deep and kind of useless. First of all, if your application use OpenGL, either: - you've unlimited resources for testing and vetting drivers, and you're working for huge CAO software that can tell users what to use. - you don't have huge resources and then your only hope if to use an abstracted API like Skia, GDI, bgfx, IGL, WebGPU, anything…

This is something that those arguing for OpenGL as a kind of universal 3D API never get, the amount of code paths can scale to the point that it is like using multiple 3D that just happen to be all called OpenGL.

Re: How do I become a graphics programmer?

#147
post #144

Earlier quoted context omitted.

> When people like Bjarne Stroustoup, Herb Suttter, Andrei Alexandrescu say they are by no means a C++ expert, Then you know something is deeply wrong with C++. If even they aren’t experts, that just means the language, despite being a human made artifact meant to encode human thought, is beyond human comprehension. That’s kind of a problem, isn’t it?

While it is kind of fun bashing C++, I also noted "Even something like C or Go, have so much room to debunk such experts. Between compilers, versions, language evolution, runtime, standard library, OS specific behaviours,...." . Anyone that thinks otherwise, we can arrange a pub Quizz in Germany, I get the questions, audience has to give up any kind of device with Internet connection.

Many times when someone says "X-lang", they actually mean the entire ecosystem, practices, third party libraries… And for anything popular enough it is indeed impossible to be an expert in all of that. With C++ that’s still the case even if "C++" only means the language itself.

I’ll concede that C with the insane breadth and (over)reach of UB, is closer to C++ than I would like. And that’s a problem too.

I don’t know Go well enough to judge.

Re: How do I become a graphics programmer?

#148

I have the horrible feeling that, if you start to become a graphics programmer now, by the time you're done, AI will be doing it. If you want to make games, learn a game engine. The big 3D ones are Unity (not too hard), Unreal Engine (hard, used for AAA titles), and Bevy (in Rust, open source.) There are a ton of 2D engines, mostly used to do retro stuff.

I expect AI will consume game design jobs long before low level graphics programming.

> The big 3D ones are Unity (not too hard), Unreal Engine (hard, used for AAA titles), and Bevy (in Rust, open source.)

Bevy is pretty much unheard of outside the rust community and also quite new (= hasn't yet proven itself). Godot would be the engine most likely to win the third spot.

I would recommend against investing time learning Unity because the company is clearly insane if they though they could get away with charging developers of existing games per install [0].

[0] https://news.ycombinator.com/item?id=37481344

Re: How do I become a graphics programmer?

#150
Blender's shader graph and geometry nodes seem like a fun/easy intro that I've been meaning to try. May not be 'programming' in the literal sense of typing text on the screen to produce graphics, but I'm hoping it would give a conceptual graph of how to produce the images I want that I could later transform into code if needed. Please correct me if I'm wrong as I haven't dove in.
Post reply on HN