Metro Last Light PC aims for the technology throne: Developer talks about DirectX 11, Tessellation, GPU-Physx & Co.
With Metro 2033 the ukrainian developer 4A Games pushed the limits of graphics. The prequel to Metro 2003, Last Light, aims for the technology throne again. PC Games Hardware had the chance to talk with Oles Shishkovtsov, Chief Technology Officer at 4A Games.
4A Games talks tech: PC Games Hardware spoke to Oles Shishkovtsov, CTO at 4A Games, to give you information about Metro Last Light's rendering technology. Last Light is the successor of the 2010 game Metro 2033 that already made use of DirectX 11 and Tessellation, GPU Physx, 3D Vision and Morphological Anti-Aliasing. Metro Last Light refines all of these features - but read for yourself:
PC Games Hardware: Content-wise Metro Last Light will be a prequel of the story presented in Metro 2033 as far as we know. On the technical side have you made enhancements, improvements modifications or revisions you can explain to us?
Oles Shishkovtsov: In general we have greatly improved the looks of outdoor locations, monsters, humans, lighting model (including precise reflections), cinematic effects like DOF, color corrections, etc. The full list would be several pages long …
PC Games Hardware: Will you keep the strategy that the PC version will look better and will allow technical/visual features that cannot be realized with console Hardware, e.g. higher texture resolution and better lighting? Can we once again expect Multisampling and Analytical Antialiasing in the PC version?
Oles Shishkovtsov: Definitely. The PC version will have much better visuals than before. And antialiasing is much much better than before (smile).
PC Games Hardware: Do you try to optimize the technology used in Metro Last Light for multithreading? If this is the case can you go into detail here: What different engine modules can be calculated in a separate thread? How does the work job structure look like? Do you use a thread scheduler? How do you handle the fact that in Metro 2033 the GPU had a very heavy workload?
Oles Shishkovtsov: Metro 2033 was already heavily multithreaded, which resulted in 100% load on all cores unless we are GPU bound. We don't run different modules on different threads because that's the inherently non-scalable way. Instead we use tasks (or jobs) and in this way 2033 (and Last Light) can scale to insane amount of cores (although we have only tested up to 16 cores/threads). During heavy workloads we can have several thousand of tasks per frame, which are spawned in a tree-like fashion, without any dependencies. There is no such thing as special thread scheduler, - worker threads just steal and execute any task they can.
PC Games Hardware: It was rumored that Metro Last Light will also offer support for 3D Vision/stereoscopic 3D support. If yes how will you handle the problem that 3D visuals could demand a lot of GPU power? - keeping in mind that especially the DX11 visuals in Metro 2033 could only be rendered by high end video cards.
Oles Shishkovtsov: As you probably know, 2033 shipped already supporting Nvidia 3D Stereo. And it was the only game of that time which was designed with 3D in mind resulting in highest possible "3D Vision Ready" status. Last Light improved and tuned 3D perception to new levels. We believe that it will be in a class of its own (smile).
PC Games Hardware: You keep the support for GPU PhysX in Metro Last Light. If so can we expect some improvements or enhancements compared to Metro 2033 (e.g. soft bodies, debris, and destructible environments)? What graphics card do you recommend for maxed details in Full HD with Antialiasing? An upcoming Nvidia Kepler-based Geforce for example? ;-)
Oles Shishkovtsov: Yes, you can expect a lot of improvements, especially in destruction and debris. The upcoming Geforce cards will be fully supported.
PC Games Hardware: When benchmarking Metro 2033 we found out that the engine utilized more than four cores of multicore CPUs if we were using the advanced PhysX effects on CPU, so you are utilizing Nvidias PhysX SDK 3.x? Will all the advanced PhysX effects only be available in PC version?
Oles Shishkovtsov: That's the common misconception that PhysX 2.X cannot be multithreaded. Actually it is internally designed to be multithreaded! The only thing – it takes some programmer time to enable that multi-threading (actually task generation), mostly to integrate with engine task-model and ensure proper load-balancing. So, 2033 used PhysX 2.8.3, and Last Light uses similar, a slightly modified version at the time of writing. And yes, advanced PhysX effects will be available only on PC.
PC Games Hardware: As above mentioned in Metro 2033 especially the DX11 render path took even high end cards to their limit of performance. Have you as a consequence of this tried to optimize the graphics part of the engine for speeding up the rendering with the help of DX11 features (e.g. computer shader or driver multithreading)? Can you already tell us if Metro Last Light will offer new DX11-Features that were not integrated in the renderer of the predecessor? Can you give us an overview which visual features will be only rendered with DX11?
Oles Shishkovtsov: We utilized compute shaders in one more place (2033 already used compute shaders). Regarding the performance, the interesting thing is that we have improved graphics in almost all places, but the performance is still on 2033-level, and even better in many places. Actually, until you turn on tessellation/displacement it is the same. That's because a lot more content is tessellated and displaced comparing to 2033. Regarding features, I'd rather say that we improved all the features like added Bokeh for DOF, implemented physically based SSAO or much better reflections.
PC Games Hardware: In Metro 2033 you can choose between DX9, DX10 and of course DX11. What visual and performance differences exist among these APIs and which effects are possible or not? Last but not least: Please tell us your favorite optical highlight.
Oles Shishkovtsov: DX9 mode disables a lot of stuff, and it is fastest by default. But if you turn off all API specific effects, all APIs will run at similar framerates on equal hardware, except that DX11 will be slightly faster. Regarding the effects, around 50% of all improvements will be visible in DX9 mode, +30% in DX10 and another +20% in DX11.