You may frequently see us refer to technologies such as DirectX and OpenGL but what actually are these and why do they matter? If you’re not sure, here we’ll try to make it a little bit clearer.
Application Programming Interface
DirectX and OpenGL are what are known as APIs. APIs, or Application Programming Interfaces to give them their full name, are essentially the tools and protocols that are used to build apps and then integrate them with one another.
They can give developers access to pre-existing functionality from other software and services without necessarily needing to know exactly how that functionality works.
They define exactly how applications should interact and communicate with each other and can control access to hardware devices and software functions that an application may not necessarily have access to use otherwise.
So in the case of graphic APIs like DirectX and OpenGL, they are used for rendering 2D and 3D graphics, usually by allowing the application to interact with the computer’s GPU to take advantage of hardware acceleration to achieve maximum performance. The benefit of this is that, instead of having to worry about supporting a range of different graphics cards from different manufacturers, game developers can just focus on working with a specific API (or more if they choose) and then let the API do the hard work of supporting all the different hardware that is out there.
Video games are the most obvious use for graphic APIs like this but actually they are used for plenty of other purposes as well. CAD (computer aided design), image virtualisation and flight simulation are just some of the other uses tasks that they can help with.
The origins of OpenGL reach all the way back to the early 90s when a company named SGI, who were one of the leaders in 3D graphics for workstations, released an open source version of their state-of-the-art IrisGL API. This open source version was called OpenGL and a review board that consisted of a number of different companies was set up to maintain and expand OpenGL into the future.
Because OpenGL’s roots lay in the industrial sector, Microsoft decided to develop their own graphic API which had a more games focused approach (more on that in a minute). But as 3D gaming grew in popularity, OpenGL also developed better support for multimedia-style content giving game developers a genuine choice of which graphic API to use.
Overtime, OpenGL has continued to evolve with newer versions extending the API to add new features. So, unlike DirectX, there is not such a separation between discrete numbered versions making it a lot easier for us to just say “FBX supports OpenGL” without having to specify which versions that applies to. So if you want to record an OpenGL game from all the way back in 1995, no problem!
Oh, and unlike DirectX which was developed by Microsoft for Windows PCs,(and later also their Xbox consoles), OpenGL is a cross-platform API, meaning it is available on a range of different operating systems and platforms.
Must play games with OpenGL support: Doom, Minecraft (Java Edition), Half Life
Prior to the release of Windows 95, Windows had included OpenGL for 3D graphics but, since this was primary developed for industrical applications. Microsoft wanted to include something that was more games-focussed specifically for game developers to use. DirectX was their answer.
To be completely accurate, DirectX is not just a graphic API – it is a collection of rendering and audio APIs developed by Microsoft to handle multimedia in Windows. All of these individual APIs had names beginning with Direct (Direct3D, Direct2D, DirectDraw, DirectSound, DirectSound3D, DirectMusic and so on), so it made sense that a shorthand name for the collection would also begin with that. Microsoft simply then added the X at the end to replace the individual API name.
(A little bit of trivia – the X in DirectX was actually used as the basis of the Xbox name to indicate that the console used DirectX technology)
Following its original release, a number of discreet versions of DirectX have been released with the two most commonly seen versions today being DirectX 9 which was released all the way back in 2002 with Windows XP and DirectX 11 which appeared alongside Windows 7.
The most recent iteration, DirectX 12, was released in 2015 with Windows 10 but hasn’t been widely adopted by game developers, with many choosing to stick with DirectX 11. Not surprisingly, a big chunk of the games that do use DirectX 12 are ones developed by first-party Microsoft developers.
So why does FBX only support DirectX 9 and newer?
Games that use older versions of DirectX tend to require at least some game-specific code to ensure that they are fully supported, whereas games that use more recent versions of DirectX will ‘just work’. Given that any DirectX game released in the last 15 or so years probably uses at least version 9, it’s a bit of a no-brainer to focus on supporting those. (We’ve not mentioned it yet, but of course there is also a DirectX 10 as well, although that doesn’t tend to crop up too often)
That said, some games that use older versions of DirectX will also be detected by FBX but recording results may vary – depending on the game, it may record flawlessly or it might have some graphical anomalies. So even if FBX detects it, there’s no guarantee it will record well.
Must play games with DirectX support: League of Legends (DirectX 9), Counter Strike: Global Offensive (DirectX 9), GTA V (DirectX 10), Fortnite (DirectX 11), Apex Legends (DirectX 11), Gears of War 4 (DirectX 12)
In recent years, some games have also been adding support for a new graphic API called Vulkan. Essentially this is a next-generation version of OpenGL that provides higher performance with lower CPU usage.
This jump in performance is achieved by some pretty major changes to the way it works. Hence why Vulkan was created as a successor to OpenGL rather than just being a continuation of it. Of course, this also means that support for OpenGL does not automatically translate to support for Vulkan.
At the time of FBX’s original release, there were still very few games that used Vulkan so we made the decision not to spend time adding support for it until it was adopted by more game developers (instead we could focus on adding features that would get more far more usage).
But now that Vulkan is becoming more widely used, it seems that the time is right for us to reconsider this, so we do plan to add support for Vulkan at some point in the future.
Actually, if you use an NVidia graphics card, you may not even need to wait since they are capble of emulating Vulkan support using DirectX 11. We can’t say this will always happen but we’ve certainly had good results when trying out games like Rage 2 and Dota 2.
Must play games with Vulkan support: Doom, Rage 2, No Man’s Sky
Just a quick mention for Apple’s own graphic API, Metal. Released on iOS in 2014 and then also for MacOS in 2015, Metal support isn’t currently on our radar simply for the reason that FBX is only available for Windows so there is no point adding support for a graphic API that is specifically for Mac.
Why this matters for FBX
Simply put, if you are using Game capture mode, when you have an app open that uses one of the supported APIs, FBX will detect those processes and give you the option to record it via the overlay.
(That’s why you may sometimes see the overlay appear on non-gaming apps but we try to keep this to a minimum by telling FBX to ignore non-gaming apps that we know use these processes)
Of course, if you are using Fullscreen capture mode instead, there is no need to detect the game – that is all left up to you to choose what you want to record (yes, even if it isn’t a game). So even if the game you want to record is from the ‘good old days’ and uses an ancient version of DirectX, that capture mode has got you covered.