The Khronos Group has just such technology, called WebGL. It accesses OpenGL, technology that many 3D CAD vendors employ to display those spiffy real-time graphics we now take for granted. The catch is that OpenGL and WebGL require the software and operating system to have OpenGL drivers and for your computer operate an OpenGL-compatible graphics board.
Boards from AMD ATi and nVidia support OpenGL, so that's not the problem. The problem lies with convicted-monopolist Microsoft, who is continuing it do all it can to junk openness by imposing its own Direct9 and Direct3D graphics API on licensees of its operating systems.
To cut costs, most 3D games work only with DirectX, and so they could not work inside a browser with WebGL. (Most 3D CAD works with two or more graphics subsystems, such as DirectX, OpenGL, and/or proprietary drivers.)
Google is now linking WebGL with DirectX through ANGLE ("Almost Native Graphics Layer Engine") -- it even has a CAD-oriented name! Angle allows WebGL to work with hardware and software that suffers from the DirectX 9c limitation. Now in alpha, the API will also allow WebGL graphics to work on handheld devices.
Source.
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?
Posted by: Kevin E | Mar 22, 2010 at 08:37 AM
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.
Posted by: DF | Mar 23, 2010 at 07:09 AM
@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.
Posted by: Kevin E | Mar 23, 2010 at 09:35 AM
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.
Posted by: DF | Mar 23, 2010 at 12:06 PM
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?
Posted by: DF | Mar 23, 2010 at 12:08 PM
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.
Posted by: Kevin E | Mar 23, 2010 at 01:35 PM
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.
Posted by: DF | Mar 23, 2010 at 06:16 PM
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.
Posted by: Kevin E | Mar 24, 2010 at 06:47 AM
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
Posted by: ged | Jun 15, 2010 at 08:22 AM