Live data from Hacker News

How do I become a graphics programmer?

gpuopen.com

121–130 of 207 posts

Re: How do I become a graphics programmer?

#121
Depends on what you want to make and on which level. Doing graphics for a desktop application will differ from doing it for a web application, for embedded devices or for a game.

That being said for a beginner I would recommend starting with the examples in processing.org. This is basically a small IDE where you can make your code draw things in a window with minimal boilerplate (the boilerplate is hidden). There is a heap of examples, how to do easing functions, how to work with vectors, etc.

The stuff learned there will be useful for anything where you need to work with a coordinate system.

Re: How do I become a graphics programmer?

#122
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]

I'm not sure I understand how your analogy is relevant to the discussion, but you should know that the current consensus is that the pyramids were build by paid laborers, not slaves. Cf. https://en.wikipedia.org/wiki/Slavery_in_ancient_Egypt#Great...

Re: How do I become a graphics programmer?

#123

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 the classic trap that new developers step in all the time. It's not just associated with graphics programming.

Youtube is full of beginner programming videos that take the developer through a journey of learning a stack of technologies in stead of focusing on something interesting to build. You end up with a lot of cargo-culting, and these massively complex Ruby Goldberg contraptions to render some text on a web-page. All in the name of padding out that CV.

When I was in university I dabbled with some graphics programming for a semester, and I found it was sufficiently complex that the only reasonable answer to "what do I want to make" was "render a green triangle on a black background". Going from there to square, to cube, to sphere, to animated sphere, to bouncing ball, is a logical progression and it helps you stay focussed on the prize. So don't also make the mistake of answering the above question with "first person shooter with ray-traced lighting and subsurface scattering".

I can promise you the first iteration of a bouncing ball will be truly horrible code. But that's fine. Over time you'll figure out how to optimise and improve things. And let me tell you, there's nothing as invigorating as discovering a design pattern by yourself: reading a book on a new topic and going "hey I'm already doing that!"

Re: How do I become a graphics programmer?

#124

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?

Googling it works pretty well

Re: How do I become a graphics programmer?

#125
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.

Re: How do I become a graphics programmer?

#126

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…

Lol, the only math you need for practical graphics coding is linear algebra. Calculus only comes into play when doing e.g. light integrals, and complex analysis only when you start doing advanced convolutions.

The math isn't the problem, the absolutely abysmal API design is. The current generation of graphics APIs were designed for game engines to build middleware on top, not for practical use, and it shows.

Too many hardcoded limits, too many different ways to do the same thing, too many caveats and exceptions... and not enough decent developer tools to see wtf is going on on the other side.

Re: How do I become a graphics programmer?

#127

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.

AI will be doing graphics programming? Please elaborate, I have a very hard time understanding how current clunky models that cannot generatie a java class without "// here you fill in the implementation" everywhere would go about improving current PBR shader code for example

Re: How do I become a graphics programmer?

#128

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…

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

[deleted]

Re: How do I become a graphics programmer?

#129

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 good start would be the book Real-Time Rendering: https://www.realtimerendering.com/

Re: How do I become a graphics programmer?

#130

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…

Lol, the only math you need for practical graphics coding is linear algebra. Calculus only comes into play when doing e.g. light integrals, and complex analysis only when you start doing advanced convolutions. The math isn't the problem, the absolutely abysmal API design is. The current generation of graphics APIs were designed for game engines to build middleware on top, not for practical use, and it shows. Too many…

> the absolutely abysmal API design is

Oh.. Now I get why others see AI could improve things here :)

Post reply on HN