DirectX versus OpenGL

761 0

Later this year Microsoft will be launching Windows Vista, its long awaited next generation operating system. With Vista actively promoting DirectX, Robert Jamieson asks what is the future of OpenGL, the 3D API used by most CAD applications?

Microsoft Vista will support ICDs (installable client driver) from vendors like ATI and Nvidia but MicrosoftÝs new toy is favouring DirectX, and several CAD vendors have already switched to DirectX. However, OpenGL is still used by many current CAD applications, so what is the future support going to be like on this 3D OS?

" WHQL tests are good but they test against standard Windows functions and some Microsoft software but not against your CAD application to see if it draws lines correctly on the screen! "

I think a history lesson on the 3D API standards is needed to get a clear understanding of some of the issues. The OpenGL API was developed by SGI as a way of giving developers access at a low level with a high degree of control to generate real time rendering. It can be used for precise CAD type models or covered in textures and used in games so itÝs classed as a general purpose API. SGI started this development with IRIS GL (GL referring to graphics language). This was proprietary to SGI hardware and not an open standard. SGI wanted to introduce more people to their available skills and hardware and developed OpenGL as a portable API for ýlower end¯ hardware with the ability to upgrade to SGIÝs exotic stuff later. An ýArchitecture Review Board¯ was established with then key players like DEC and IBM to maintain standards. This has been passed on to new members now, but OpenGL spent many years with the same standards and some people stating it had stagnated.

The move to Windows

In 1992 Microsoft announced Windows NT with a 32-bit API to compete with Unix in the professional space. OpenGL was eventually ported to Windows NT version 3.5 two years later. MicrosoftÝs software implementation had its problems with performance not being as good as expected and taking a lot of resources. A lot of IT mangers would run 3D OpenGL screen savers which would take so much power it would slow the servers down, and Microsoft sent out a document not recommending it to be used. Version 1.1 of OpenGL in NT4 and Windows 95 was a lot better. This opened the door to graphics card manufactures to implement ICDs and therefore improve the performance dramatically. Once performance in 3D was attained all the ýmid range¯ solid modeling software applications (SolidWorks, Mechanical Desktop ± AutoCAD etc) had a user-friendly platform to promote their wares on. Autodesk was given an award by Microsoft for helping to make Windows NT a success, for example.

While Microsoft was gaining some success on its professional platform, the humble Windows 3.1, then Windows 95, needed a boost into 3D to get people away from MSDOS. They started with WinG API but after purchasing RenderMorphics and exposing the API, DirectX emerged. This has become a dominant API in the games world but in the beginning the games manufacturers were getting better performance with their own specialised 3D engines. As support for DirectX grew from the hardware manufacturers, the software developers followed the DirectX route as it became easier to do this than write their own 3D engines. Today there are two main hardware competitors in the DirectX (and OpenGL) space – ATI and Nvidia. Other players are around but there is a massive learning curve to cap the performance of these two.

DirectX and the future

Microsoft controls DirectX, and with the demise of SGI (itÝs in Chapter 11) OpenGLÝs future is left to the big warring hardware players to support it. On the Linux platform OpenGL is a popular 3D standard but in the numbers game for units Microsoft rules. Of course, OpenGLÝs open nature is not something we normally associate with Microsoft. Windows Vista implements DirectX 10 for games and applications and requires full DirectX 9 support to get the ýfull¯ Aero interface of the OS. Developers are going to need to code for this and if they use OpenGL today either port their software to DirectX or use one of the ICDs from ATI or Nvidia to run on Vista. Microsoft states that current Windows ICDs will work today, but they are not allowed to talk directly to the hardware and have to go through another layer.

What is an ICD?
Legacy ICDs (Installable Client Drivers) are used with Windows XP today. In Windows Vista they will likely disable the DWM (Desktop Window Manager) when loaded to try to talk to the hardware directly. This will probably remove the Aero interface. Windows Vista ICDs will go through another layer that is compatible with Aero interface and will be composed on the fly with the DWM.
Advertisement
Advertisement

CAD on DirectX

Bentley and Autodesk have already provided solutions on DirectX. What is quite interesting is their view to supporting these platforms. In AutodeskÝs Inventor 11 the OpenGL driver is faster than the current DirectX driver, but the view from the support site says that the performance will improve on the next release. One of the venders stated that the reason they went this way was because of WHQL testing. This is the Microsoft hardware labs performing tests on drivers before they are released, and increases the stability of drivers. The point they were making was that, if Microsoft was testing them, they didnÝt need to. This is quite interesting as it is quite clear that WHQL tests are good but they test against standard Windows functions and some Microsoft software but not against your CAD application to see if it draws lines correctly on the screen! If the CAD support teams are hoping Microsoft is going to do the work for them itÝs going to be interesting! DirectX development moves at a fast pace. With all the new stuff coming through DX10 etc IÝm not sure how consistent it will be.

WHQL certification

Microsoft is closing holes in driver support now to be ready for Vista and I fell into one recently. Doing some updates to my mother in lawÝs PC, I unplugged a working scanner. Some Windows updates were applied and when I was finished I plugged it back in. Windows complained that the driver was not WHQL approved and would not let it be installed. There was no listed Microsoft update I could uninstall, and the scanner manufacture stated that it did not do WHQL drivers as it cost money to get them tested. It is a large manufacturer as well! Now it looks as if IÝm buying a new scanner as a Christmas present for the mother in law now. I know other similar updates are being applied to XP in preparation for Vista as a lot of drivers will be moved over to the new OS. It looks as if big things are happening whether we like it or not. Just make sure that any hardware purchases you make are from good manufacturers who will support you in the future or you could get into more trouble than me with the mother in law because she canÝt scan her photos in.

Robert Jamieson works for workstation graphics specialist, ATI.

rjamieson@ati.com

Advertisement