I’m really anxious to read a book about OpenGL but I’m scared that when Vulkan will be released the syntax and functions will be completely different.
Vulkan won’t share a single function with OpenGL, aside from shader language. Nevertheless, I’d advice you to learn some OpenGL 3.3/4 or Direct3D 10+ (Direct3D could even be more preferrable due to its cleanliness) to get yourself comfortable with the general concepts of Computer Graphics.
Thanks for the quick reply, I’ll go start reading.
Technically it won’t even share the shader language. Though there is a tool to translate glsl into spir-V and an opengl extension is rumored to come out soon after vulkan to allow openGL to accept spir-V directly.
If you want to learn DirectX then
keep in mind that very soon a DirectX 12 book will be published.
Here’s the link:
(DirectX 12 is actually more similar to Vulkan than previous versions of DirectX (11 and below) since it is more lower level and has things like command-queues, descriptor-heaps etc.).
Things that Vulkan will have in common with OpenGL
The overall structure of the rendering pipeline. That is, they’ll both have all the same rendering stages which will execute in the same order. Vulkan may change certain details, but the basic structure will be the same.
The general limitations on shaders. Vulkan won’t take GLSL directly (though it will be able to through SPIR-V indirectly), but the general ideas will still be there. Shader stages will have inputs and outputs. Shader stages will have specific ways to interact with globally accessible data. And so forth. While certain details will be different, the overall concepts will remain.
The existence and general nature of textures and buffers. That is, Vulkan will have textures and buffers, and the rendering pipeline uses them to do more or less the same things (Vulkan may not have transform feedback, but you can code that one manually yourself). Now, managing textures and buffers will be very different, and the specific way you’ll use them will be different. But both APIs will have them.
Yes, there’s a lot you can learn about Vulkan by learning OpenGL. And the learning curve will be far, far less steep.