07-08-2018, 11:38 AM
@ab1jx: I advise you to take a look at Nehe's OpenGL tutorials, they're great, with a gentle progress curve (AFAIR, I've play with them quite 14 years ago).
And for the shaders, if you are not too much in a rush, the best may be to learn shaders using DX9 and XNA/MonoGame as explained by RB whitaker in his wiki. You may have ot learn C# in the process . I've learn this way and it could be easier and better in the long run, as DX9 have only 2 programmable steps in the rendering pipeline: vertex and pixel shaders (allowing moving vertices and altering colours using the GPU power), DX11 and up add more shaders like a geometry shader which gives more opportunity to play but needs also more to learn first.
The important point about shaders to remember is they lie inside the GPU, which mean there is no feedback to the CPU(*) (shaders are in the rendering step, almost the last in frame generations for games), so they can't be use as a game feature like knowing if an object is under a shadow or not. They still hold a very great power as bloom filtering, all/many sampling (FXAA, Anisotropic, etc they are so much these days), light & shadows, motion blur, reflections, and so on.
(*) not 100% true as texture sampling allow to generate results from calculations and get the result from the generated colour reading the frame buffer data.
And for the shaders, if you are not too much in a rush, the best may be to learn shaders using DX9 and XNA/MonoGame as explained by RB whitaker in his wiki. You may have ot learn C# in the process . I've learn this way and it could be easier and better in the long run, as DX9 have only 2 programmable steps in the rendering pipeline: vertex and pixel shaders (allowing moving vertices and altering colours using the GPU power), DX11 and up add more shaders like a geometry shader which gives more opportunity to play but needs also more to learn first.
The important point about shaders to remember is they lie inside the GPU, which mean there is no feedback to the CPU(*) (shaders are in the rendering step, almost the last in frame generations for games), so they can't be use as a game feature like knowing if an object is under a shadow or not. They still hold a very great power as bloom filtering, all/many sampling (FXAA, Anisotropic, etc they are so much these days), light & shadows, motion blur, reflections, and so on.
(*) not 100% true as texture sampling allow to generate results from calculations and get the result from the generated colour reading the frame buffer data.