(1) Can you start please with some background on how you are using DirectX 11 in the Frostbite 2 engine? What made you decide to jump onboard with DirectX 11?
There are 2 different areas where we are using DirectX 11 in Frostbite 2. The first is to streamline and optimize the CPU performance; how our engine & games communicate with D3D to take advantage of multiple CPU cores. This has become a bigger and bigger problem with previous D3D versions as GPU performance has been scaling and the CPUs have gotten more cores, but without us being able to utilize them for rendering with D3D.
Now in DirectX 11, with the new support for multi-threading in the API, we can render objects and submit it to the GPU in parallel on all available CPU cores (we’ve tested up to 16 virtual cores). This will be a big performance improvement and allow us to have much more variation and detail on our levels while costing less than before.
The second area of DirectX 11 that we are using includes some of the new hardware features such as compute shaders. We use compute shaders for deferred shading, which enables us to have many more all-dynamic light sources than we’ve been able to have before. We also see a big potential for using compute shaders for other future effects and optimization techniques.
(3) The other big new hardware feature of DirectX 11 is the tessellator. Can you tell us about your plans for that and is it really a big deal?
Tessellation is a new big piece of technology in DirectX 11 and something that we are excited about. Tessellation combined with displacement mapping is a very powerful tool that can dramatically increase the detail of our objects and still render them very efficiently by varying the level of detail dynamically.
The primary areas that we are looking into using tessellation in the future are:
Smooth / round objects (for example vehicles and their wheels)
Very bumpy objects such as cobblestones and rocky terrain
One difficulty however with tessellation and esp. displacement mapping is that it requires changes to the whole content authoring pipeline step and how our artists build objects. So it isn’t as easy to use as some of the other DX11 features, but definitely one of the more powerful features going forward.
(4) Take up of DirectX 10 in games was pretty slow – do you think the same might be true this time around with DirectX 11? [Please give your reasons for your answer.]
Yes I agree that the transition to DirectX 10 was slow. One of the main reasons for this, in my view, was that it was tied into Windows Vista which unfortunately had lower adoption than one would have hoped for (from our perspective).
This tie in was, however, necessary for technical reasons, as DirectX 10 got a much needed clean slate implementation and a new driver model which was required to continue on.
Now with DirectX 11 and Windows 7 we have a very different, and much better, situation for 3 reasons:
DirectX 11 isn’t limited to Windows 7, it will also work on Windows Vista so everyone that is already using Vista will be able to use it. This is a huge benefit for everyone involved.
Windows 7 is an excellent OS for gamers (but please use the 64-bit version!) and I predict a vast amount of the gamers that are still on Windows XP, which is now a 8 year old operating system, will upgrade to Windows 7 and as such go directly from DirectX 9 to DirectX 11 awesomeness.
Thirdly, many game developers have also been “stuck” on DirectX 9 and Windows XP as this have been the primary and very large user base that they have been developing for. This created a Catch-22 situation as many gamers didn’t see the benefit of upgrading to Windows Vista & DirectX 10 as there were few games that supported it fully.
Now with Windows 7 and DirectX 11, it feels like there are a lot of developers that are planning to make the jump directly from DirectX 9 to DirectX 11, which will help solve this Catch-22 situation and provide gamers with another great reason to upgrade.