All 3D programs rely on an application programming interface (API). When combined with a 3D graphics card this is what makes real time 3D graphics possible. Most professional 3D applications use OpenGL, whereas most games use Microsoft’s DirectX. However, with DirectX 11 and supporting hardware and software now out in the market, details of what the API offers 3D CAD users are becoming more clear.
Direct X currently provides the 3D graphics engine for a few CAD applications including Autodesk Inventor and MicroStation. It is also the secondary graphics engine in Solid Edge. Currently Autodesk Inventor is mainly DX9 with some bits of DX10 used to release the 3D engine to do other tasks. It’s likely that Autodesk would introduce some of the new features of DX11 inside a future release of its 3D CAD software but what does DX11 offer?
For some time now we have been using multi core CPUs. However, the number of applications that can really exploit all of these cores are still limited and include rendering, plus certain software for Finite Element Analysis (FEA), Computational Fluid Dynamics (CFD) and CAM. Recently this has started to change with multithreaded software appearing in other areas, including graphics.
The DirectX 11 API also supports multithreading to handle things like display lists. This is information that is passed backwards and forwards between the computer’s system memory and the graphic card’s GPU and memory. By using spare CPU cores to control the graphics card, the workstation can dedicate specific CPU cores to work with the CAD application. This not only speeds up the CAD application, but can increase the physical 3D rotation speed of the model – in some cases as much as 20 to 50%.
The next thing that DX11 offers is “compute shaders”. These can perform post-processing operations including physics, Artificial Intelligence (AI) and particle systems. Most 3D animation software, including 3ds Max, support some of these features in one form or another and they use the CPU or GPU to handle this. DX11 has great access to the geometry that these operations use so it has a key importance and an advantage to make things happen quickly without the long wait that can be associated existing methods.
Physics are also of great interest to solid modellers to test if components collide when moving. A lot of modellers do this already using the CPU but when the assembly gets larger, the processing time can be huge. Using shaders could solve this.
Tessellation is the process of transforming data and adapting it for another purpose, on the fly. It can take an existing mesh and enhance certain sections of a model to give more detail. It can also be used the other way round to reduce detail in a scene. For example, in a landscape the far off detail is not required, so it can be reduced to increase real time 3D performance or reduce render times. In engineering, the technology could potentially be used to refine meshes for FEA.
3ds Max uses .fx shaders today to show depth of field and motion blur that can be taken to the final render. DX 11 enhances the use of these inside a viewport where there are options to interact with applying them. Studio GPU’s software Mach Studio Pro also has some of these capabilities in a rasteriser format. Roughly 85% of applications use a rasteriser approach including most 3D creation applications. There is often a lot of confusion between rasteriser and ray tracing when people see realtime shader effects. All of these functions add realism to any 3D application including CAD.
In order to make use of these new capabilities, a DirectX 11 compatible graphics card is required, but the raw hardware can also be utilised by OpenGL and OpenCL, which is used to execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors (tinyurl.com/D3DopenCL).
The recently announced OpenGL 4.0 includes a raft of new features bringing OpenGL in line with Microsoft’s DirectX specification. OpenGL 3.3 was also just released, providing as many of the new version 4 features as possible to older graphics hardware. (www.opengl.org has a list of all these new features).
OpenGL is still extremely important for CAD as 70% of CAD applications use it. It also has the advantage of working on multiple platforms, including Windows, Linux and Mac, whereas DX11 only works on Windows Vista and Windows 7.
Historically, when it comes to 3D, most CAD users have been primarily concerned with frame rates, visual quality and stability. However, with the advent of DirectX 11 there is the potential for benefits to go way beyond these standard metrics. And while OpenGL is likely to remain a strong foundation technology for CAD, the increased competition from DX 11 is certainly helping advance 3D technology in general, which can only be a good thing.
What does DX 11 have to offer the CAD Professional?