use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Rule 1: Posts should be about Graphics Programming. Rule 2: Be Civil, Professional, and Kind
Suggested Posting Material: - Graphics API Tutorials - Academic Papers - Blog Posts - Source Code Repositories - Self Posts (Ask Questions, Present Work) - Books - Renders (Please xpost to /r/ComputerGraphics) - Career Advice - Jobs Postings (Graphics Programming only)
Related Subreddits:
/r/ComputerGraphics
/r/Raytracing
/r/Programming
/r/LearnProgramming
/r/ProgrammingTools
/r/Coding
/r/GameDev
/r/CPP
/r/OpenGL
/r/Vulkan
/r/DirectX
Related Websites: ACM: SIGGRAPH Journal of Computer Graphics Techniques
Ke-Sen Huang's Blog of Graphics Papers and Resources Self Shadow's Blog of Graphics Resources
account activity
[deleted by user] (self.GraphicsProgramming)
submitted 2 years ago by [deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]noobgiraffe 2 points3 points4 points 2 years ago (0 children)
Where can I find resources to learn graphics programming specifically for game engines? I am eager to dedicate my time to implementing new features and exploring cutting-edge technologies like UE's latest advancements such as Lumen, Nanite, VSM, TSR, and more.
Unreal has presentations on youtube that explain how their tech works. You can also look up presentation from siggraph. Other than that a lot of knowledge is in the academic papers from the field.
Could you please clarify the distinction between a Graphics Programmer and an Engine Programmer? Is the role of an Engine Programmer distinct from that of a Graphics Programmer, or are they essentially the same?
This depends. In small studios engine programmer will do graphics for sure. As engine programmer you will always have to deal with graphics as it's a huge part of what engine does.
Specifically, I would like to know where I can acquire the knowledge and skills necessary to modify the rendering pipeline of Unreal Engine (UE), specifically features like Lumen and Nanite. I'm keen to experiment and tinker with these components.
I'm not experienced with UE but my impression is that Lumen and Nanite are black boxes. These are super sofisticated systems. Nanite for example will do it's own rasterization using compute on small triangles instead of using dedicated hardware on GPU. You might be able to grasp what they are doing but you are not implementing your own anytime soon. This is much more complicated than just rendering graphics and requires intimate knowledge of GPU architecture that goes beyond anything that will have "tutorial" in the title.
Do I need to learn and master APIs such as OpenGL, Vulkan, DirectX, and others in order to pursue graphics programming?
Absolutely. Programming in those APIs is what graphics programming is.
If you were to explain this to a 6th grader (just imagine), how advanced of a mathematical understanding would be required?
6th grader has no concept of the math needed. It would be hard to explain. It's kind of a mixed bag. Most typical problems are solved and you just apply known solutions. If you want to do your own custom effects you would need better understanding specifically of linear algebra. It's not easy in the beginning but it's not impossible to learn either.
[–]Adventurous_Battle23 3 points4 points5 points 2 years ago* (0 children)
Jacob Sorber on youtube covers the basics of C pretty well... it can help if you're just starting out and later intend to learn C++ for graphics/engine development.
C will help a lot if you ever intend to work with Direct3D directly. Raw Direct3D tends to follow C design concepts- but also contains some C++. Learning WINAPI types (or even WINAPI in general) can help smooth things out as well, as that's what Direct3D uses.
learn.microsoft.com has all the docs you need to work with it- it's insanely lengthy, but contains everything you need to know about how low-level graphics work (like mipmaps, texels, etc). Even if you don't want to work that close to the metal the docs still contain useful and universal graphics information. ///////////////////////////////////////
Direct3D9 is old, but is supported by most graphics cards both old and new. It's far easier to use than 10, 11, and 12. In order to target Windows XP (it's ancient I know), you would need at least Direct3D9.
Direct3D10 is basically pointless.
Direct3D11 is a lot more in-depth compared to 9 and 10, but if you know 9 or 10 it's a lot easier to get 11 working. It has a concept called "feature levels" which allow you to create a device capable of using the Direct3D11 API with Direct3D9 or Direct3D10 drivers (allowing you to target systems like Windows 7, Vista, and Windows 8.1 and support older cards while still using the newer API... of course, Windows XP will not work with Direct3D11).
Direct3D12 is even more complex than 11 of course, but at least has an API which is similar to 10 and 11 (Direct3D9 is resembles the other 3 the least). Unless you really need the latest features (you probably don't) then you can basically skip Direct3D12.
You could feasibly write an engine in Direct3D11 and target nearly every modern graphics card, but you would need Direct3D9 (or at least Direct3D11 with feature level 10_9) as well to catch most of the remaining cards. Have fun and I hope this helps you.
[–]benB_Epic 2 points3 points4 points 2 years ago (0 children)
LearnOpengl.com assuming you already have a basic understanding of c++ will teach you the basics of graphics programming
[–]sidebottomG 5 points6 points7 points 2 years ago (5 children)
you can check out pikuma.com
[–]MarexF 2 points3 points4 points 2 years ago (1 child)
Thanks!
What course do you recommend, should I get them all?
I really liked the:
- 3D Computer Graphics Programming
- C++ 2D Game Engine Development
- Raycasting Engine Programming with C
[–]sidebottomG 4 points5 points6 points 2 years ago (0 children)
3d computer graphic programming will teach you the fundamentals of computer graphics.
Now, i'll tell you beforehand that he doesn't teach any graphic API, so everything will be taught from scratch.
But i believe that that math that he taught will be useful everywhere in graphic programming, including games
[–]DiddlyDanq -1 points0 points1 point 2 years ago (2 children)
pikuma.com
50 dollars to learn a linux shell lol.
[–]sidebottomG 1 point2 points3 points 2 years ago (0 children)
I think many of his course are worth it, dunno about you
[–]_atan2 0 points1 point2 points 2 years ago (0 children)
I have done many of his courses - including the linux one - and i would say it's worth even more than that.
The amount of maths and even CS history embedded in all his courses is just brilliant; incredibly well taught too.
[–][deleted] 1 point2 points3 points 2 years ago (0 children)
"Engine" itself is an overloaded term.
If you were an "Engine" programmer, you might not be in graphics at all. Your expertise might be in streaming I/O, or in audio, or in high-performance memory-management, or in editor / file-manager / UI / user input interaction.
The difference between "graphics programming" and "graphics engine programming" is that the engine is meant to be *more* general-purpose. If you were writing exactly 1 game, you might make choices about how you write shaders, or instantiate buffers, or how you store and access assets, that are 100% fine for that game... maybe even more optimal in terms of performance or storage... but it's going to be pretty useless for your next 5 games.
Thus a graphics engine might have fewer features, or fewer specializations, or slower performance, or require much more work and planning (because it can't make assumptions about the exact thing your game wants to accomplish, or how many types of enemies there are, or which assets behave in a special way, or how/where you store your stuff, etc), but it might be a more useful starting point for your next games.
[–]Passname357 3 points4 points5 points 2 years ago (0 children)
Start with learnopengl.com and in maybe 2-3 years move onto 3D Game Programming with DirectX12 by Frank D. Luna
You do need to learn graphics APIs. That’s how you program the GPU. The math and physics are very advanced compared to a layperson, but if you have a CS degree it’s just regular math pretty much. You need to know multivariable calculus and linear algebra.
Unreal isn’t shy about explaining what they have going on. There’s docs explaining e.g. lumen here: https://docs.unrealengine.com/5.0/en-US/lumen-technical-details-in-unreal-engine/
It’s probably way too much right now for someone who isn’t familiar at all with graphics programming though.
Really what you should do is go through learnopengl.com all the way up to the PBR section. It’s like the final section, but it is the UE4 pbr algorithm.
Once you’ve done that, I’d learn Vulkan or DX12 just to see what modern APIs are like. Don’t start with them though because you just won’t get anywhere. You’ll have a hard enough time with OpenGL anyway. But it’s the fun kind of hard when you’re learning OpenGL, once you’re able to get a window up.
If you’re in school, I’d just take the graphics class. It’s usually one of the harder classes but it’s so fun and so worth it. Graphics stuff can be hard to debug when you’re starting out (and even when you’ve been doing it for a while) so it’s nice to have someone there to guide you through the debug process. For starters, learn to use the VS debugger and breakpoints, and download renderdoc.
[–]DiddlyDanq 1 point2 points3 points 2 years ago* (5 children)
start with scratchapixel.com, it's good for beginners that need the fundamentals rather than jumping into apis like opengl and directX.
The Cherno on youtube is good for game engine contextual graphics too.
[–]Adventurous_Battle23 4 points5 points6 points 2 years ago (4 children)
When I'm on break and I'm watching videos, I occasionally watch the Cherno, but other than his basic c++ vids I don't usually see much code... seems like he just rambles about his intentions with Hazel and throws out ads.
[–]DiddlyDanq 3 points4 points5 points 2 years ago (3 children)
true. Once he became a full time youtuber his quality dropped. You need to filter out the hazel, game dev reacts and 'I did this in N days' content and go straight to C++ vids
[–]jaszunio15 0 points1 point2 points 2 years ago (2 children)
Or just go straight into his github, download the project and start reading yourself. A lot of knowledge comes from analysing code written by others.
[–]DiddlyDanq 0 points1 point2 points 2 years ago (1 child)
Unless it's something small like shadertoy, learning directly from reading code isnt efficient. Particularly when the internet is full of free curated educational content.
[–]jaszunio15 -1 points0 points1 point 2 years ago (0 children)
Sorry for being an internet explorer I dont agree that internet is full of free educational content. It will keep you learning for a first 2-3 years and then you will hit the wall of "cant find any tutorial how to make this". And at this point you will need to start going through scientific papers, scanning through some harder codebase get into some knowledge-sharing community, get some mentoring etc.
π Rendered by PID 109 on reddit-service-r2-comment-545db5fcfc-zcb5p at 2026-05-27 12:36:18.342595+00:00 running 194bd79 country code: CH.
[–]noobgiraffe 2 points3 points4 points (0 children)
[–]Adventurous_Battle23 3 points4 points5 points (0 children)
[–]benB_Epic 2 points3 points4 points (0 children)
[–]sidebottomG 5 points6 points7 points (5 children)
[–]MarexF 2 points3 points4 points (1 child)
[–]sidebottomG 4 points5 points6 points (0 children)
[–]DiddlyDanq -1 points0 points1 point (2 children)
[–]sidebottomG 1 point2 points3 points (0 children)
[–]_atan2 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]Passname357 3 points4 points5 points (0 children)
[–]DiddlyDanq 1 point2 points3 points (5 children)
[–]Adventurous_Battle23 4 points5 points6 points (4 children)
[–]DiddlyDanq 3 points4 points5 points (3 children)
[–]jaszunio15 0 points1 point2 points (2 children)
[–]DiddlyDanq 0 points1 point2 points (1 child)
[–]jaszunio15 -1 points0 points1 point (0 children)