« How to print documents when Word won't | Main | This is the kind of GPS we need »

Mar 22, 2010

Comments

Kevin E

With the switch to DirectX by companies like Autodesk and SolidWorks, we can now buy graphics cards that are far cheaper than the FireGL and Quadro cards that we used to buy, with equal or better performance.

How is DirectX a bad thing?

DF

With the switch to DirectX by companies like Autodesk and SolidWorks, we can now buy graphics cards that are far cheaper than the FireGL and Quadro cards that we used to buy, with equal or better performance.

How is DirectX a bad thing?

(i) the obvious; 'DirectX' is a technology proprietary to Microsoft, which they keep for their own OS. Going with DirectX means that MS get to tie yet another leash to you (in more ways than one; they openly admitted that they could have put DX10 on WinXP, but chose not to do so for sales reasons).

By contrast, OpenGL - which is what we're talking about these days as the alternative to DirectX (GLide being long gone) - is open, royalty-free, platform-agnostic, and not tied to the marketing plans of a particular OS vendor. The latest OpenGL runs just fine on Windows XP, no doubt to Microsoft's chagrin (they'd dearly love us all to be forced into OS upgrades). You'll note that Google Earth and SketchUp both use OpenGL.

(ii) DirectX is a gaming API, not a CAD or 3D modeling one. This has important consequences when it comes to *quality* - DX is designed to have speed in showving out pixels for games, but that's not the same thing as accuracy/fidelity - which is what you want for your model, presumably. OpenGL has an impeccable pedigree in this regard (it originated at Silicon Graphics, and even today has a strong presence in academia).

Going back to the proprietary nature of DX, Microsoft gets to set the direction - and the games market dwarfs the CAD market in terms of financial importance. Hence the 'speed' emphasis for it will never change. OpenGL, in contrast, has to acommodate both the CAD and gaming industries due to no one company having ownership, and so strikes much more of a balance.

A very practical example of this is MicroStation, which we use ourselves. We had two decades of MicroStation using OpenGL, which delivered excellent fidelity and acceptable performance (as well as OS-independence, if we wanted it). Bentley became a Microsoft Gold Certified Partner a couple of years back, which meant that they then dropped open technologies like OpenGL (and Java)) and went with Microsoft proprietary equivalents such as DirectX, which now tie the software to Windows.

The consequences for us (and for many others as well) has been that two-screen CAD is now out (DirectX, being a game-oriented API, doesn't work well with such), we've had to invest in much beefier graphics cards to get back acceptable performance in the display, and there are very noticeable visual 'glitches' under Windows XP/DirectX 9 - and the organisation is unlikely to be going to Win7/DX10 in the near future just for us. A definite loss for us from a forced change to DX.

(iii) 'Pro' cards differ from gaming cards in two ways - hardware and drivers. The hardware differences lie in such things as greater colour depths, 3D stereoscopic capabilities, multi-screen operation, data throughput (see GPGPU operations as well) etcetc. These may not be something that affects you, but each capability is a requisite for someone, somewhere to get the job done right.

Drivers. Firstly, 'Pro' cards are, as already mentioned, focused on accuracy rather than speed, and this is reflected in the quality of their drivers, which have an accomapnying list of the (expensive) CAD and 3D packages which they are guaranteed to work with (unlike their consumer gaming counterparts). Secondly, there are 'pro'-level software features programmed into these as well (usually matching the 'pro' hardware features). All of this is a world away from the high-volume, low-expectation gaming card market.

HTH.

Kevin E

@DF

I have seen no issues using Inventor with DirectX. One of the developers working on the Inventor team has talked about the difficulty in using OpenGL in regards to creating spealized drivers for each of the cards that Autodesk certified using OpenGL. Some areas of Inventors performance have increased as a result of DirectX. And the biggest win is the cost savings of not having to use Quadro cards.

DF

One of the developers working on the Inventor team has talked about the difficulty in using OpenGL in regards to creating spealized drivers for each of the cards that Autodesk certified using OpenGL. Some areas of Inventors performance have increased as a result of DirectX. And the biggest win is the cost savings of not having to use Quadro cards.

Hi Kevin,

I don't understand what you mean by "spealized drivers for each of the cards that Autodesk certified using OpenGL". ATi and nVidia are the ones who write the (universal, these days) drivers for their own cards, which includes both the DirectX and OpenGl portions. Does Autodesk write graphics card drivers? I wasn't aware of that.

In our usage of MicroStation, going to DirectX has led to the need for much beefier cards, and necessitated a switch away from our traditional dual-screen operations (and other unresolvable bugs coming from the WinXP/DX9 tie).

And as to consumer/gaming graphics cards, you get what you pay for in my opinion. As I note, though, YMMV.

DF

Some areas of Inventors performance have increased as a result of DirectX. And the biggest win is the cost savings of not having to use Quadro cards.

Ah, I think that I see a possible source of confusion here. You do know that consumer/gaming cards also have OpenGL, right?

Kevin E

No confusion. When using Inventor with Vista or Win 7 there is no OpenGL. Excuse the long posting, but the following was posted in the Autodesk Inventor discussion group by an Autodesk employed named Norbert. He explains the issues they had with OpenGL and the reasons for them to switch to DirectX back when Autodesk first offered the choice to run Inventor using DirectX

Go to this link and read the postings from Norbert. Here is one of them.

http://bit.ly/b47AsY

"This is a somewhat "official" response to your question ... (grin) ... or at least a response from a person on the Autodesk Inventor team who actually works with and writes the code that connects to Direct3D and OpenGL ... (grin)

I have posted replies to similar questions before and I will summarize again, because your subject raises the question directly.

There is one huge difference between Direct3D and OpenGL regarding graphics drivers. Direct3D API usage and functionality support is tested by Microsoft as part of the Windows Hardware Quality Lab (WHQL) graphics driver testing and certification process. OpenGL usage has never been and is not now part of the WHQL certification.

We are using the Direct3D API in a standard way, using the functionality in the Direct3D spec which is tested by WHQL. Therefore, the normal assumption which should be reasonable is that if your graphics driver is WHQL certified, the chances are very good that Autodesk Inventor R11 will work using Direct3D.

This is not true for OpenGL. The reason we have such an extensive Hardware Library of graphics card certifications for OpenGL is because the OpenGL community has no equivalent conformance and certification process apart from accepting the word of the graphics HW vendor that the driver works. Based on our many years of experience, this is something we cannot do so we must spend a significant amount of effort testing and certifying OpenGL graphics drivers ourselves.

This is our first release using Direct3D. While we occassionaly encounter mistakes on our part in terms of Direct3D API usage, Direct3D itself seems to work fine. The opposite is true of OpenGL. We have been using OpenGL for many years and have very few new changes in our OpenGL API usage. In spite of this, we continue to encounter new graphics drivers from HW vendors that fail our testing and certification, even though our code may not have changed at all in terms of where the problems appear.

If OpenGL works fine for you, that is great and you can use it. On the other hand, while we have had over ten years of using OpenGL, which should be time for the OpenGL HW vendors to "get it right" (grin), they haven't been able to do that, as I mention above. We are no longer willing to be so tolerant of crash-to-desktop situations that are _not_ caused by our code but are caused by bad OpenGL grapihcs drivers from graphics HW vendors. Given that Microsoft has the WHQL testing and certification program, we are now working with Direct3D under the assumption that we will not have the same level of catastrophic failures we have seen all too frequently with OpenGL graphics drivers.

As I mentioned above, this is our first release using Direct3D and given that we have had over ten years to make our usage of the OpenGL API "correct", we expect that we will have a few Direct3D API usage items to sort out and may not have found every possible problem in this initial release. The hope is that with continued use of Direct3D, we will solve any outstanding Direct3D API usage items that we may have and we will provide an experience using Inventor across all graphics HW that is reliable, conformant to the "correct" display, has optimal performance, and allows us to use advanced 3D graphics HW features and functionality in a way that you can benefit from as opposed to tentatively trying out new features to see if the graphics driver will crash under you, which has been the all-too-frequent experience with OpenGL graphics drivers for over ten years.

DF

Hi Kevin,

No apologies necessary, it was interesting to read. Three points:

(i) there's arguments on both sides of the OpenGL vs. DirectX debate. Here's ATi's Robert Jamieson:

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.

http://www.aecmag.com/index.php?option=com_content&task=view&id=99&Itemid=35

(ii) the computing world is more than just a big American software corporation called Microsoft. There's Macs, Unixes and Linuxes. DirectX (by design) is about locking ISVs to the Windows ecosphere, whereas OpenGL is essential as a real 'open' alternative to keep certain parties honest.

(iii) We're a big organisation (really big). And in the scheme of things, we have highly-skilled professionals and technicians utilising multi-thousand euro software packages on multi-million projects - so paying e1,500 for proper workstations (along with proper pro graphics cards that're certified by ATi, nVidia or however) is a no-brainer. Again (and I cannot emphasise this enough), YMMV.

Kevin E

Inventor 11 was released in 2006. Since then there has been IV 2008, IV 2009, IV 2010, and I expect within a few weeks there will be IV 2011. I haven't heard many complaints about any graphics problems with Inventor.

I understand how open can be better than closed, but in comparison of DirectX and OpenGL it seems that DirectX is innovating faster and giving better performance while offering users cheaper prices for hardware.

ged

I have been playing around with webgl.

The google Sketchup team are probably porting some of it to to NACL and webgl right now.

i find that doing certain operations at the javascript level is too slow for building aCAD application for thw web, hence why NACL solves that completly.

So as a coder you have choice:
a. Writing using the webgl API
b. Write using the NACL api.

For me i think that a viewer written in Webgl is fine and also enures it runs on desktops and phones.
NACL makes sense for a editor itself which will require far more intensive vector computations and mesh manipulation.

I see no reasons why CAD can not be done using the web technologies. However its not as easy as the mainstream traditional options, but far more reusable

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Comments are moderated, and will not appear until the author has approved them.

Your Information

(Name is required. Email address will not be displayed with the comment.)

Advertisements


Search This Blog


  •  

Translate

Thank you for visiting!