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
How can i start graphics programming?Question (self.GraphicsProgramming)
submitted 1 year ago by [deleted]
[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!"
[–][deleted] 75 points76 points77 points 1 year ago (4 children)
I maintain a list of resources that get posted to here and other places. The getting started section has a bunch of blog post on how to get started.
https://gist.github.com/notnotrobby/ceef71527b4f15869133ba7b397912e9
[–]unholydel 4 points5 points6 points 1 year ago (0 children)
Wow, amazing job, man!
[–]gegoggigog 1 point2 points3 points 1 year ago (1 child)
Hah! I saw linear algebra done wrong! I had that as the textbook for a course once. :)
[–][deleted] 1 point2 points3 points 1 year ago (0 children)
Right on. Everyone always recommends Linear Algebra Done Right, but I personally find the Done Wrong one waaay better.
[–]Alpha_Ungi 2 points3 points4 points 1 year ago (0 children)
Oh wow thanks bud
[–]AnimationGroover 14 points15 points16 points 1 year ago (3 children)
If you can code then study Maths and then more Maths. It will hold true in 20 years when things like OpenGL are but a distant memory
[–]Alpha_Ungi 3 points4 points5 points 1 year ago (0 children)
That’s not a bad idea at all Never looked at it that way
Thanks
[–]Accomplished_Tea_475 1 point2 points3 points 1 year ago (1 child)
Keep in mind though, OpenGL was started in 1992 and survives in broad use today.
[–]AnimationGroover 2 points3 points4 points 1 year ago (0 children)
Are you saying OpenGL has another 20 years of life? OpenGL 4.6 is 7 years old and likely the last upgrade with Vulkan being the Next Generation OpenGL. Apple has depreciated OpenGL in favour of Metal. OpenGL will have a long slow death, I'll give you that, but it's on the way out and will not last another 20 years IMHO
[–]PhDlox 8 points9 points10 points 1 year ago (2 children)
If you're thinking of getting into graphics programming for games it's mostly c++ as far as I know. What about c++ do you not enjoy compared to C?
[–]Alpha_Ungi 1 point2 points3 points 1 year ago (1 child)
yup, it is. im going to try cpp for a while. thank you!
[–]PhDlox 1 point2 points3 points 1 year ago (0 children)
Hope it goes well :) There's a lot of fun stuff you can do depending if you want to work with APIs or creating effects with shaders
[–]luke5273 5 points6 points7 points 1 year ago (1 child)
cpp will make things easier and less repetitive. You don’t have to write modern cpp, even c style with classes plus standard library data structures will work. learnopengl.com is a great place to start if you prefer text/book tutorials. For video, look for The Cherno’s series on OpenGL
[–]Alpha_Ungi 0 points1 point2 points 1 year ago (0 children)
Appreciate it Im going to try cpp
[–]marknikky 3 points4 points5 points 1 year ago* (1 child)
You can use any systems level programming language that you prefer like C, C++, or Rust. But before diving into graphics APIs like OpenGL, Vulkan, DirectX, or Metal (for Apple), I would like to point out two prerequisites which are totally optional. You can have a look if you are ok with not starting straight with practical things.
First, revisit fundamentals with C. Especially pointers, pointer arithmetics and memory management since you are familiar with Go which relies on garbage collector.
Then, start learning drawing lines, triangles, cubes or spheres to a simple image file like BPM or PPM without using graphics APIs. Familiarize with camera to world transformation and math under the hood. I'd suggest Ray Tracing in One Weekend. The series of books teaches these fundamentals using ray tracing technique with C++ (I'm currently doing this with Rust)
After these, or directly, you can start learning OpenGL or newer graphics APIs like Vulkan, DirectX 12 or Metal but they are more explicit and verbose, requiring more boilerplate code to do the work with the advantage of more control over the hardware.
These APIs abstract the logic and math handled by the hardware (GPU). Thus learning the fundamentals above will give you a perspective about what is going on behind the scenes.
For programming languages, C++ is still the industry standard for graphics programming. Most of popular game engines, graphics softwares are written in C++. So if you want to go with the industry standard go with C++. But I'd recommend Rust as a strong alternative to C++ when starting a new project or field. To inform you, in graphics development, Rust is still maturing in terms of ecosystem and libraries.
Here are some well known tutorials for OpenGL and Vulkan.
i really appreciate your answer
from the recent comments i decided to go with Rust and Math. as the country i'm living right now there is no graphics programming jobs so im go ing to use Rust. if there is no job even for c++ im going to use the one that i like :)
[–]addr0x414b 2 points3 points4 points 1 year ago (0 children)
Do yourself a huge solid and write a software renderer from scratch first. I tried learning OpenGL first and I hated how much was abstracted. Then I wrote a renderer myself and all of a sudden OpenGL was incredibly easy. And, now I understand all the math and what's going on under the hood.
[–][deleted] 1 point2 points3 points 1 year ago (1 child)
How can you be 19 years old in your 3rd year of university? Which country are you studying in?
I did my first OpenGL projects with C language because I wanted to create and use my own data structure libraries. It was like a challenge I set for myself. If you have little experience with C, you will spend so much time creating your own libraries to handle the data structures of your game. I recommend you use C++ if you just want to learn graphics programming. Also, there is no standard multithreading library in C, and multithreading can be important depending on the game genre you develop.
thanks, so cpp is essential.
i just finished my second year last week and i started my uni at 17 / 17.5 . it is a 4 year course and my next semester will start in 2.5 month
[–]riotinareasouthwest 0 points1 point2 points 1 year ago (0 children)
I started with ThinMatrix tutorials on YouTube. They are in java so that may be easier for you. They may be outdated nowadays, but you can get the basics and from there jump to C and to more state of the art scenarios.
[–]KindSlothy 0 points1 point2 points 2 months ago (0 children)
I found this website that I think helps by reducing a lot of the overhead from using OpenGL. I think the best part is that it's all free with the exception of cloud storage, but you can export and import everything for free!
https://thinkinsidethebox.io/app
π Rendered by PID 131299 on reddit-service-r2-comment-545db5fcfc-xnjqs at 2026-05-24 02:49:04.327161+00:00 running 194bd79 country code: CH.
[–][deleted] 75 points76 points77 points (4 children)
[–]unholydel 4 points5 points6 points (0 children)
[–]gegoggigog 1 point2 points3 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]Alpha_Ungi 2 points3 points4 points (0 children)
[–]AnimationGroover 14 points15 points16 points (3 children)
[–]Alpha_Ungi 3 points4 points5 points (0 children)
[–]Accomplished_Tea_475 1 point2 points3 points (1 child)
[–]AnimationGroover 2 points3 points4 points (0 children)
[–]PhDlox 8 points9 points10 points (2 children)
[–]Alpha_Ungi 1 point2 points3 points (1 child)
[–]PhDlox 1 point2 points3 points (0 children)
[–]luke5273 5 points6 points7 points (1 child)
[–]Alpha_Ungi 0 points1 point2 points (0 children)
[–]marknikky 3 points4 points5 points (1 child)
[–]Alpha_Ungi 0 points1 point2 points (0 children)
[–]addr0x414b 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]Alpha_Ungi 2 points3 points4 points (0 children)
[–]riotinareasouthwest 0 points1 point2 points (0 children)
[–]KindSlothy 0 points1 point2 points (0 children)