- Jul 7, 2008
- 5,558
- 25
- 91
He also talks about their proprietary Asura engine, tesselation, shaders, and some other neat stuff. Thought this would be interesting to some of you, especially if you enjoy the Sniper Elite games. I'll copy and paste some of the technical bits.
http://www.dsogaming.com/interviews...dx12-multicore-cpus-obscurance-fields-shader/
http://www.dsogaming.com/interviews...dx12-multicore-cpus-obscurance-fields-shader/
DSOG: Sniper Elite 3 will be powered by the Asura engine if we are not mistaken. Can you share some tech details about the engine and its features?
Kevin Floyer-Lea: The Asura engine has been under constant development for over 14 years now were continually adding, removing and refining. We went to a fully deferred approach about 8 or 9 years ago, and our rendering tech has been steadily improving over that time, based on the needs of the games were developing. For Sniper Elite 3 for example, we needed a system that could cope with dynamic shadows and bounced light from a bright, desert sun. In day levels the sun and sky are pretty much the only light sources, with everything lit procedurally. In night time settings the deferred approach means we can have hundreds of light sources dotted around as well as the gentle moonlight. I dont think we actually have any hard limit to the number of light sources; its left to the artists discretion!
DSOG: With Sniper Elite V2 we noticed that there wasnt any performance difference with the number of CPU cores. In our analysis of Sniper Elite 3 we saw performance differences between dual-cores, tri-cores and quad-cores. Hell, the game even benefits from penta-cores, something that really surprised us. Whats changed?
Kevin Floyer-Lea: Yes, Sniper Elite 3 should definitely scale to any number of CPU cores. We have a task system that creates as many worker threads as the machine has logical processors. Work for culling, rendering, animation, AI, physics and so on is split into smaller jobs and all thrown at the task system. So as long as the number of tasks is high enough, the engine should in theory just keep scaling as you add more and more cores. On Sniper Elite V2 a lot of the AI and animation work was to a large extent single-threaded now on Sniper Elite 3 its multithreaded via the task system. That makes a huge difference, and was a definite requirement now we have bigger, more open levels where 60 to 80 NPCs may be roaming around simultaneously.
DSOG: Sniper Elite 3 will take advantage of the new API, Mantle. Can you share your thoughts on this API? Why did you decide to support it? Is the performance boost significant? Did you have any trouble programming for that particular API and how different is it compared to Direct 3D?
Kevin Floyer-Lea: Were always keen to be on the forefront with our technology we shipped one of the very first D3D11 games for example. For years wed been asking for a lower level approach to PC graphics much like we have on consoles, so Mantle fits the bill perfectly.
The speed difference on CPU is startling the driver overhead were used to has disappeared. We can now easily construct command buffers multithreaded and then submit them to the GPU with the minimum of fuss, which makes us even more multi-core friendly and scaleable.
Its also made apparent just how much work was going on behind the scenes with Direct3D and the associated drivers memory being copied around, duplicate buffers holding data as its moved into different areas of VRAM, that sort of thing. Suddenly we have direct control over that and that leads on to new optimisations which wouldnt have occurred to us before. Its not so much the immediate improvements that excite us as the potential for future advances.
DSOG: Whats your opinion on OpenGL and Direct 3D? OpenGL is said to support a lot of low-level access commands. On the other hand, MS introduced DX12 (an API that will most probably allow low-level access) at this years GDC. Do you feel that Mantle is in danger from the get-go?
Kevin Floyer-Lea: Whilst weve always used Direct3D on our PC titles, were very familiar with OpenGL as Asura uses it on other platforms such as mobile. Because we have a very flexible engine architecture and are very experienced at supporting new platforms, new rendering APIs on PC dont faze us. The bottom line is that well support and use whichever APIs give our players the best performance. D3D12 is definitely a step in the right direction in that regard. As it currently stands there is no reason to see why D3D12 and Mantle cant co-exist especially if it turns out that D3D12 is limited to newer versions of Windows. If nothing else Mantle is establishing the importance of low-level, minimal APIs, for which were very thankful.
DSOG: Will Sniper Elite 3 support tessellation? And if so, have you experimented with it (adaptive tessellation) in order to eliminate the pop-up/pop-in of distant objects?
Kevin Floyer-Lea: Tessellation is something I think were finally doing properly. Its taken a few years to get a working art pipeline and a rendering approach were happy with, but for Sniper Elite 3 we have a form of adaptive silhouette tessellation which only tessellates those polygons that cause a visual difference. Its all too easy to subdivide something into millions of tiny triangles and say you support tessellation, but youll find that wont run very well on any GPU! Our approach dynamically tessellates based on distance, surface curvature and orientation relative to the camera it makes a huge difference on obvious things like wheels and gun barrels, but also on organic shapes like human faces.
DSOG: Whats your opinion about Windows 8 and DX11.2? Have you experimented with DX11.2 and can we expect your future games to natively support 64-bit systems?
Kevin Floyer-Lea: Windows 8 is fine, but D3D11.2 is not really of interest to us. Were likely to keep supporting D3D11 (and therefore Vista and Windows 7) and jump straight to D3D12 when the time comes.
The engine happily compiles in 32 or 64 bit configs, and wed love to *only* support 64-bit internally we all use 64-bit builds simply because we need access to as much memory as possible. However there are a surprising number of people out there with 32-bit versions of Windows, so for now we need to keep supporting them.
