I have been wanting to learn graphics programming for a while now but don't really know where to start. My first time even seeing graphics code was in Skyrim ENB mods (hlsl) which I have played around with a bit now. Sadly you are only limited to changing a few postprocessing effects for the game like: depth of field, bloom, color corrections and tonemapping. Those are all available through .fx files, the real meat and potatoes of the program is hiding in a .dll file.
So far this site has helped me in learning c# but I would really like to start doing 3d rendering. Unfortunately, the research I have done suggests to me that c# isn't a good language for this. OpenGL and DirectX don't tie in to c# without third party libraries like OpenTK (OpenGL) and SharpDX (DirectX) which I don't think using would benefit me in the long run. Instead c++ (which was discouraged as a first language on this site) is used with both OpenGL and DirectX. Now that I have learned a bit of c#, I am considering learning c++ to learn OpenGL or DirectX but I don't really know where to start.
Maybe someone on this forum has some suggestions for what I should do.
Should I stick to c# for a while longer before attempting c++? (I don't really know the difference yet, I haven't looked into c++ much)
Should I start some c++ tutorials?
Should I start some GLSL/HLSL tutorials?
Should I learn c++ and GLSL/HLSL at the same time?