Live data from Hacker News

How do I become a graphics programmer?

gpuopen.com

81–90 of 207 posts

Re: How do I become a graphics programmer?

#81

I'd recommend the Pikuma course Graphics From Scratch[0]. The first thing you do is write a set_pixel function utilizing SDL and the rest of the course is all your code, every matrix operation, every vertex transformation, every triangle rasterization. You calculate what every individual pixel should be colored. [0]: https://pikuma.com/courses/learn-3d-computer-graphics-progra...

Just wanted to second this recommendation. I did the course a few months ago with near-zero baseline in graphics programming (though a few years' experience as a standard swe), and it gave me a pretty decent grasp of how 3d shapes get drawn on the screen. Afterwards I was able to pick up webgpu in a matter of days, which I don't think would've been possible without the understanding I gained from the course.

If anyone's looking for motivation, I made a wasm-compiled demo of the renderer you produce by the end - https://rmshin.github.io/3d-renderer-wasm

Re: How do I become a graphics programmer?

#82
post #65

Earlier quoted context omitted.

It wasn't sloppy engineering unless you are saying AMD should have used a VAC bypass

Injecting code into third-party DLLs is as sloppy as it gets. It's an awful hack.

An AMD DLL always has been loaded into the game's process.

Re: How do I become a graphics programmer?

#83

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…

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

Re: How do I become a graphics programmer?

#84

Earlier quoted context omitted.

>No GPU, no OpenGL, no DirectX! This is the opposite of what you would hope to see for learning graphics programming.

>> No GPU, no OpenGL, no DirectX! > This is the opposite of what you would hope to see for learning graphics programming. It is exactly what you would hope to see. And I would dare say I'm a graphics programmer, mostly self taught. When I started, as a teenager, in the late 80's, there were no GPUs. So I learned everything from first principles. I recall implementing Bresenham in x86 assembly for my CGA card. And the…

My little spot of nuance on this reply would be that the point of starting in software would not be to aim for a fast or feature-rich implementation. That seems to be the sticking point of the replies in favor of going hardware-first - that "we don't optimize the same way anymore". But nobody was asking about optimizing! People seem to go performance-brained when they talk about graphics because they read about John Carmack once. Then they go right back to their Javascript frameworks.

Like any student engineering project, "baby's first rasterizer" would emphasize a combination of concepts and motions - a path to take, to get to a result that can be tested. We don't even have to use Bresenham now - deriving the rasterized line from linear interpolation is mathematically more sound and no sweat for modern CPUs. But it might be pedagogically useful to compare the two to explain quality vs performance tradeoffs, ones that were made historically and those that are still in use today.

Re: How do I become a graphics programmer?

#85

wgpu, the Rust WebGPU implementation is the bee's knees. https://wgpu.rs/ You can use it beyond the web.

You think the first thing for someone who wants to learn graphics programming is to compile rust's webgpu implementation?

Obviously not. Obviously the first thing for someone who wants to learn graphics programming is to learn Rust. I'm surprised you asked.

Re: How do I become a graphics programmer?

#86
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 representations.

You can try to use tools created by others but the results will all just look the same as theirs, and 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.

If you can't handle vector calculus and complex analysis then that's too bad. Try harder or do something else.

Re: How do I become a graphics programmer?

#87

wgpu, the Rust WebGPU implementation is the bee's knees. https://wgpu.rs/ You can use it beyond the web.

You think the first thing for someone who wants to learn graphics programming is to compile rust's webgpu implementation?

It’s actually relatively small.

Re: How do I become a graphics programmer?

#88
I'm a game developer but not specifically a graphics programmer. Although I work with modern graphics APIs and GLSL shaders in my day job, when my 13 year old recently graduated from wanting to program in Scratch or Python to wanting to learn C++, I decided the best thing to do was break out the old OpenGL 1.2 DLL's that I still had on my machine since 1999 and starting him writing some code using glut and glbegin/glvertex/glend type of immediate programming.

it is just a lot more fun than trying to suffer through all of the setup that one needs to do with modern APIs. he is more interested in computational geometry type of things like voronoi diagrams so the graphics API is really just a means to an end and fancy shaders and lighting aren't important right now, and performance in C++ and old school OpenGL is about a thousand times faster than Scratch, so I think we hit a sweet spot for where he is at in terms of his progression of learning.

even with the simplified API of OpenGL 1.2, he is still biting off a pretty ambitious chunk of learning to try to grasp c++ at the same time as OpenGL, so the simplicity helps keep it sane and manageable, and things are going well. He did some neat marching squares demos and I helped add an IMgui menu to tune parameters at runtime. it has been entertaining!

Re: How do I become a graphics programmer?

#89

wgpu, the Rust WebGPU implementation is the bee's knees. https://wgpu.rs/ You can use it beyond the web.

You think the first thing for someone who wants to learn graphics programming is to compile rust's webgpu implementation?

WebGPU is a pretty good starting point, that's what I did myself (with C++, not Rust though, which should be even more straightforward). You can even use it in the browser and skip all the native hassle.

Just learn the basic concepts like buffers, drawing, texture, light, perspective etc. from https://learnopengl.com/ then you can jump into WebGPU. Even though there's not that many WebGPU tutorial, applying the OpenGL tutorials to it is pretty straightforward once you understand the fundamentals.

Re: How do I become a graphics programmer?

#90

Earlier quoted context omitted.

You think the first thing for someone who wants to learn graphics programming is to compile rust's webgpu implementation?

It’s actually relatively small.

So what? You don't think they might need to learn math or a graphics API or fundamentals first? You think they need to compile a rust webgpu implementation first because it's small?

How does this make any sense?

Post reply on HN