As part of NVIDIA’s launch of the second generation Maxwell based GeForce GTX 980 graphics card, Max McMullen, Direct3D Development Lead at Microsoft, provided more on what the company's plans for Direct3D 12.
First of all, there will be a new version of Direct3D 11 (Direct3D 11.3) coinciding with Direct3D 12. Direct3D 11.3 is a continuation of the development and evolution of the Direct3D 11 API will add API support for features found in upcoming hardware.
Have in mind that Direct3D 12 is a low level API, meaning it is not suitable for everyone. Only a few programmers will be able to write the engines and renderers that target the new API. Everyone else will build on top of these engines. Direct3D 11 already exists and makes development easier and more accessible as well.
Direct3D 12 will also allow developers to target multiple generations of hardware. But from the gamer's perspective, hardware that is Direct3D 12 compatible does not mean it supports all of the latest feature sets.
Microsoft's Max McMullen provided a briefing on some of the rendering features that will be coming to Direct3D 11.3 and 12. These are the following:
- Rasterizer Ordered Views
- Typed UAV Load
- Volume Tiled Resources
- Conservative Raster
Raster Ordered Views (ROVs) gives developers control over the ordering of pixel shader operations. ROVs can be used to implement functions such as custom blending as well as algorithms for transparency.
ROVs will allow developers set the order that elements are rasterized in a scene, so that elements are drawn in the correct order. ROV applies to Unordered Access Views (UAVs) being generated by pixel shaders. It enables cunstom blending, order independent transparency and controlled pixel blending such as antialising. In addition, it offers repeatability.
Order Independent Transparency (OIT) allows for elements to be rendered in any order and still blended together correctly in the final result. The implementation with ROVs is faster and correct than previously (Direct3D 11).
The new Direct3D also brings the Typed UAV Load. Unordered Access Views (UAVs) are a buffer that allows multiple GPU threads to access the same buffer simultaneously without generating memory conflicts.
Typed UAV Load deals with cases where UAVs are data typed, and how to better handle their use.
The third feature coming to Direct3D is Volume Tiled Resources (VTR). It actually extends the tiled resources -- a teqnique in which you don't nedd to texture everywhere and thus, save memory resources by using the same memory in multiple places.
VTRs will be manily used with volumetric pixels (voxels), with the idea of again saving memory by not tying up memory in tiles that will not be accessed. For instance, the 1.6GB texture 3D picture below can be represented with an equivalent 156GB Tiled texture3D picture.
Finally, we have conservative rasterization, which is actually a more accurate solution to figuring out whether a polygon covers part of a pixel.
Useful in algorithms from voxelization to memory allocation and occlusion culling, conservative raster tests a primitive against the area of the pixel. It checks whether the pixel covers the polygon by testing it against the corners of the pixel. This approach is more accurate than standard rasterization. Conservative rasterization can be used to build a voxel and also can be used for more accurate tiling and even collision detection.
Last week, at the NVIDIA Editor's Day keynote, Max McMullen, unveiled the result of a partnership between Epic, NVIDIA, and Microsoft. The companies will work on a DirectX 12 version of Epic's Unreal Engine 4, in an open manner using the GitHub community.
Epic's Unreal Engine 4 is more powerful, scalable, and accessible than the Unreal Engine 3. Also, it features an entirely new open model of development.
NVIDIA supports the effort. NVIDIA’s engineers worked with Microsoft's direct X team in a zero-latency environment, providing debugging and new driver features to make something run.
UE4 subscribers who are accepted into the DX12 early access program will receive source access to the alpha DX12 version of UE4.
Here you can see a tech demo created by Lionhead showcases the rich graphics of Albion that are possible with DX12 and Maxwell.The demo was running on a DX12-based version of UE4:
You can see the full video here.