OpenGL Superbible
opengl.org
opengl.org
I'd wager that for this kind of people, even today, "graphics" is not a career. A career in these people's mind is something where you look like a stock photo executive, you'd do code for a couple years and move on to management.
For many people if you're 40+ and you're not higher up in the hierarchy, something is wrong.
“Graphics is an industrial field. There’s just no money in it.”
I shudder when I think about this outcome, despite its inevitability.
Another example I can think of is speech recognition systems (ASRs). Around 2007-08 again, I was told by researchers in the area that they are not coming to personal devices anytime soon - esp for Indian accents. A few years later you could dictate messages to hangouts on an Android phone :-)
... can you ? it's 2021 and on any top of the line phone I'm definitely unable to get speech recognition systems to understand sentences to an acceptable level. A few words work... kinda. Hell, even typing has become harder than a few years ago where it used to be a simple dictionary - now every other message the automatic correction is completely wrong, which is very frustrating.
Indian society and the love for meaningless numbers on a sheet of paper, name a better duo.
They have no OpenGL job reqs. They have tons of Vulkan job reqs that they can't fill.
Vulkan is mostly Android 10+ thing in games development, even on the Switch, there are other APIs to choose from, with Unity having a big piece of the pie, 50% of the titles according to the company numbers on 2020 Unite keynote.
"Reqs" is "requisitions" and not "requirements". Sorry about not clarifying that.
I feel like in the games space, if you’re not going through Unity or Unreal then it still makes a lot of sense to target OpenGL for most games rather than going to Vulkan. I definitely still get a bunch of error reports from folks whose computers don’t have OpenGL drivers capable of a context >2.1 on Windows, and I expect that sort of problem would be even more common for Vulkan. Mac hasn’t been a problem thus far, as long as you don’t need advanced 4.x features (I’m just using a 3.3 core context)
While the ‘average’ hardware shown in the Steam hardware surveys is pretty good (better than all of my dev machines, in fact), being the support contact for my game has definitely demonstrated that the standard deviation on that hardware goes down as well as up, and sometimes by quite a lot!
I’d love to play with Vulkan someday, but I worry about support, especially on really old hardware.
(Other thoughts: in indie spaces, it probably makes a lot more sense to use Unity or Unreal or Godot rather than rolling your own. And in AAA spaces, you’d be silly not to go Vulkan instead of OpenGL. It’s really only in my unusual “I happen to have already rolled my own engine and I’m using it to make an indie game” case where OpenGL makes a lot of sense to me)
For some reason, OpenGL still works, and very well, including doing gradients in 10bit colour space.
And it actually depends on what one calls "old".
I have a laptop i bought around late 2012 with a GeForce 660M. It can run a lot of stuff, including some recent games at very low settings - but Vulkan is not supported at all since Nvidia stopped releasing new drivers for it.
Similarly i have a GPD Win 1, it can only run lightweight games because it has an Atom CPU with integrated graphics - still for many smaller indie games (including some 3D games) that hardware should be enough. But under Windows there is no Vulkan support (the hardware can support it but Intel hasn't released any drivers). There is support under Linux, but then a lot of other stuff doesn't work.
In my new engine i was considering going with Vulkan or sticking with OpenGL (with which i am already comfortable anyway) and even made a binding generator for Free Pascal but then i noticed that aside of my main PC no other computer i have in my house supports Vulkan - and i'd like to have at least an Nvidia and AMD GPU to test. So i decided to stick with OpenGL for the time being as i really want to be able to run it on my portable PCs. I might consider a Vulkan renderer in the future but that would be after Vulkan is available even on whatever is considered old low end devices at the time.
https://developer.android.com/about/dashboards#Vulkan
And if one goes into the spaghetti extension soup that Vulkan carried on from OpenGL, the picture is even more sad.
https://www.vulkan.gpuinfo.org/listdevices.php?platform=andr...
On a platform where Vulkan is nowadays the main 3D API, with a roadmap to run OpenGL on top of it.
But IMO Vulkan is way too much for most indies, small studios and solo developers to work with. I doubt we'll see many games targeting Vulkan as "the" multi-platform API like we've seen with OpenGL in the last 15 years. Anyone having to target Vulkan will have to use Unreal/Unity3D. Or maybe someone will develop a wrapper that converts OpenGL calls into Vulkan calls.
Honestly I see Vulkan as akin to regulatory capture. It will only enrich the big players by forcing small companies to use big engines.
EDIT: To give a concrete example, we (part time indie team) have an unfinished renderer in Vulkan, and it's already almost 5x larger than the other (finished) ones. To use Vulkan effectively, even on small games means you need a substantially large abstraction layer. Sure, it doesn't matter on AAA or for commercial engines, but not everyone is on such large projects.
Despite the name, it is available as a native API, with multiple implementation. I think it is a quite good choice for an API to target today.
I would not say that at all. The biggest disadvantage of Vulkan is that it doesn't support old GPUs
I do, however, very much look forward to WebGPU, which seems heavily based on modern Vulkan, Metal and DirectX, but it's comperatively easy to set up and work with. Major downside is the lack of cutting-edge features because WebGPU is targeting the lowest common denominator (=smartphones, and also the lowest feature set that all backends (DirectX, Vulkan, Metal) offer), but I've got the impression that it's going to be what OpenGL and Vulkan were supposed to be but didn't really manage to become: A platform-independent modern graphics API.
Doing raw OpenGL as an indie instead of using an engine these days is unusual and likely to be ill-advised unless a big part of the point of the project is to learn more about low-level graphics programming, in which case you're not so much making games as studying programming through gamedev. It's like writing your own UI framework for your web app instead of using React / Angular / Vue. It's true that there are use cases that existing game engines don't cover perfectly, but the cost/benefit ratio just isn't gonna be there for a custom solution for most projects
OpenGL® SuperBible, Seventh Edition https://amazon.com/OpenGL-Superbible-Comprehensive-Tutorial-...
ps: why website is unmaintained ?http://www.openglsuperbible.com/
Even the red book only goes up to 4.5 and the one need to track down the Kronos documentation.
Then there is Vulkan as its successor (I doubt that there will ever be a new GL version), and mesh shaders are the future of GPGPU programming
No idea how it looks like in 2021.
Maybe 3.3 and 4.5 aren't actually that different, but they certainly feel very different to program.
I have moved on however towards the DX12/Vulkan like APIs. Currently using WebGPU as a stop-gap, it gives me an easy to use API (compared to Vulkan) with strengths of those explicit APIs. I think in 2021, even if people are writing OpenGL engines, they are already using the "RenderPipeline/RenderPass" abstraction to fit the new APIs better.
I read a second hand copy a long time ago of the red book when it covered the 1.x series, I am starting to have some time to learn graphics programming again and I know that the SuperBible and RedBook were good ones.
As opposed to the red book (reference guide)[1] and the orange book (shading language reference)[2] of which I got copies of the respective last versions before they merged into the newer "red-ish book" that combines both[3].
Just in case you ever wondered where that one Lego picture in the Windows 3D maze screen saver came from (the cover of the red book).
[1] http://www.opengl-redbook.com/
[2] https://www.amazon.de/OpenGL-Shading-Language-Randi-Rost/dp/...
[3] https://www.amazon.de/OpenGL-Programming-Guide-Official-Lear...