Live data from Hacker News

What to learn to be a graphics programmer

blog.demofox.org

221–230 of 251 posts

Re: What to learn to be a graphics programmer

#221

Earlier quoted context omitted.

This is a really bad take, sorry. 1. Engine choice is only a factor in performance. If you build an unoptimised game it will run poorly. Doesn't matter if you do it in Unity or your own engine. 2. Terraria, etc did not succeed because they use their own engines. 3. Those bad performance games have bad performance and happen to use an engine, not the other way round. 4. The quality of your game has a lot more to do wi…

I always argued for custom game engines not for performance but so your game “feels” unique. I can spot a unity or unreal game from miles away. They have a smell if you will that is very hard to escape. Every game that has a custom engine just feels unique and interesting in a different way. I think this is why people likely push the custom engine. Any game that passes the finish line on a custom engine often has a l…

The smell is 50% the asset packs available in the respective stores. The other 50% is the default character controllers and the default lighting settings

Re: What to learn to be a graphics programmer

#223

Earlier quoted context omitted.

This 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 .

TBF, I bet any graphics programmer would be a boon for a ML shop for their GPU/performance optimization knowledge alone.

One 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...

Re: What to learn to be a graphics programmer

#224

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…

Huh? 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?

That'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.

Re: What to learn to be a graphics programmer

#225
post #210

Earlier quoted context omitted.

Not necessarily, some folks advocate that with modern compute APIs we are better doing "software" rendering, but on the GPU. By the way, this is what renders like OTOY Octane do.

Sadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores. And even with GPU compute, you benefit from HW acceleration with the HW texture unit.

Not everything is about ray tracing, and still it beats any software rendering, while being able to use mostly regular C++.

Re: What to learn to be a graphics programmer

#226
post #225

Earlier quoted context omitted.

Sadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores. And even with GPU compute, you benefit from HW acceleration with the HW texture unit.

Not everything is about ray tracing, and still it beats any software rendering, while being able to use mostly regular C++.

I would classify GPU compute based rendering as software rendering though. My original comment was written with that in mind. This is a semantic discussion though which is IMO not super important.

If you do GPU-based software rendering, I would highly advice using RT instead of raster for visibility. It's simpler and likely also faster. But HW acceleration there also beats compute, in both, although you can achieve good results without acceleration too.

Re: What to learn to be a graphics programmer

#227

Earlier quoted context omitted.

Agree with almost all of that. Unless you are targeting some obscure or old platform, I don't even know how you'd justify trying to write a 3D engine from scratch in 2026, except as a fun learning experience. Also, think about tooling. Last time I wrote an engine from scratch, the tooling to support it probably took way more time than the engine did.

AI changes this a lot. You can realistically get a featured 3d engine+editor up and running in a couple week with AI, working solo. Probably better than what Godot or even Unity gives you. Also AI is very good at editor/tooling stuff, I've even found it getting better at graphics programming stuff, just telling it to 1-shot implementing gpu occlusion culling, ddgi probes, taa, etc. type of features. Also for stuff li…

If you could beat Godot and Unity in two weeks with AI, why doesn't everyone just do this?

(A: there be dragons)

Re: What to learn to be a graphics programmer

#228

Do you want to make games, or do 3D engine programming? If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You'll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun. If you want to do 3D engine programming, be aware that there are too many bad game engines. In Rust land, where I am, there are three failed…

I think you assume most people want to compete with Unreal on visuals. That's of course borderline impossible. But getting a basic renderer and game loop going isn't really that hard, and likely won't be the majority of your game's code. Just doing drawObject() in a for loop is good enough, you don't have to think hard about optimizng if your game is simple enough, or all the concerns about resource streaming, bindin…

> I wonder what starting point and success criteria do you assume for that 2 year timeline. About a year ago I wrote a deferred renderer with dynamic lights, and shadow mapping, and few post effects in about a month of free time (Less than a week of full time work).

i'd assume it means fully understanding what you're building, if you already know 3d graphics or are just copying example code around, sure you can build something quick, but to fully understand the concepts from a background without previous graphics knowledge takes time and dedication

Re: What to learn to be a graphics programmer

#229

Do you want to make games, or do 3D engine programming? If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You'll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun. If you want to do 3D engine programming, be aware that there are too many bad game engines. In Rust land, where I am, there are three failed…

I think you assume most people want to compete with Unreal on visuals. That's of course borderline impossible. But getting a basic renderer and game loop going isn't really that hard, and likely won't be the majority of your game's code. Just doing drawObject() in a for loop is good enough, you don't have to think hard about optimizng if your game is simple enough, or all the concerns about resource streaming, bindin…

I work professionally on game engines and also have my own custom engine. Watching the space for 15+ years, I would say that nearly _every_ custom game engine exists as a demonstration of graphics capability, not anything to do with improving the actual experience of game development. This is in part to do with the fact that working on 3D at all is a slippery slope towards continuing to work on graphics stuff.

Re: What to learn to be a graphics programmer

#230

If anyone needs a quick tutorial on linear algebra, you can check out this printabale four pager that I wrote: https://minireference.com/static/tutorials/linear_algebra_in... I also have some notebooks with SymPy code examples here: https://github.com/minireference/noBSLAnotebooks

If anyone needs a longer tutorial, I strongly recommend 3b1b's series here: https://youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFit...

The visualizations made things click in a way my Linear 101 course didn't.

Post reply on HN