Apply Excitment of OpenGL vs Direct3D Directly to Forehead

by Josh on September 1, 2008 · Comments

opengl versus directx3d comparison Oh, the tangled web of 3D CAD hardware and software. It spans between the cracks of ultimate compatibility for the software, ultimate confusion for the user and sticks to you right after walking through the door of deciding what computer to buy.

SolidWorks uses the OpenGL graphics API. Other CAD companies have decided to use Direct3D. It’s an issue we’ll get into, but take a look how the discussion came about and the difference of opinion in the 3D CAD community.

The story
I’ve just read one of the most impressive documented responses from a development perspective on OpenGL vs. Direct3D I’ve ever seen. Why does this matter to you as a SolidWorks user? SolidWorks uses OpenGL which means you pay more for a Graphics Processing Unit (GPU), which means paying more for a computer. But is this a bad thing?

It started from a question by an AutoDesk Inventor user in the mcadforums on if OpenGL was supported on Vista or XP64bit (PDF). Then, Peter Yodis posted a link to it in the SolidWorks Forums. Then, Charles Culp let everyone know about it on Twitter… THEN, Matt posted about SolidWorks and OpenGL on his blog.

It’s all made for some pretty interesting commentary on GPU technology and really shows how you can get involved in conversations about current technology very quickly with other SolidWorks users.

That being said, here is the SolidSmack version in all of it’s regurgitated glory, but with a few extra spicy aspects to ponder. At the very least check out these key points and tell us what you think in the comments. Does SolidWorks need to switch to the DirectX3d API?

Some key points:

  • Direct3D is a Microsoft Windows API typically used for gaming.
  • OpenGL is an open standards API compatible with Windows, Linux and Mac typically used for high-end graphics.
  • OpenGL Graphics Processing Unit (GPU) cost more than DirectX3D gaming cards.
  • You can soft-mod most Direct3D gaming cards (nVidia GT series) to get OpenGL (nVidia FX series) functionality.
  • SolidWorks is currently only compatible with Microsoft Windows.

Comparison of OpenGL and Direct3D

In general, Direct3D is designed to be a 3D hardware interface. The feature set of Direct3D is derived from the feature set of what hardware provides. OpenGL, on the other hand, is designed to be a 3D rendering system that may be hardware accelerated. These two APIs are fundamentally designed under two separate modes of thought. The fact that the two APIs have become so similar in functionality shows how well hardware is converging into user functionality.

Even so, there are functional differences in how the two APIs work. Direct3D expects the application to manage hardware resources; OpenGL makes the implementation do it. This tradeoff for OpenGL decreases difficulty in developing for the API, while at the same time increasing the complexity of creating an implementation (or driver) that performs well. With Direct3D, the developer must manage hardware resources independently – however, the implementation is simpler, and developers have the flexibility to allocate resources in the most efficient way possible for their application.Wikipedia: Comparison of OpenGL and Direct3D

In my opinion, side by side, I like the way OpenGL graphics look much better that the way Dierect3D graphics look. If SolidWorks was ever to be developed cross-platform for Mac, Linux and Windows, OpenGL would be the API to use. I don’t like paying more, which is why I’ve soft-modded some nVidia GT cards. If SolidWorks development decided to go with Direct3D, I doubt the software price would come down, even if there was less QA needed for the Direct3D compatibility. But we would be able to spend less on a GPU/computer.

————————
Highlights of Autodesk Inventor OpenGL to DirectX Evolution from “Norbert” – Autodesk Inventor Graphics Team

When we use OpenGL, we have found over the past many years (and still today) that we need to invest in a large, significant amount of QA… and use OpenGL almost on the level of 1997 graphics

With Direct3D, our QA team can focus on testing our code and finding defects in our graphics code, instead of having to spend all their time just verifying that the graphics HW vendors have done their job correctly to produce an OpenGL graphics driver that actually works.

Direct3D works identically on x64 as on x86

In …all defects that we see with the use of Direct3D…the problem is in our Inventor graphics layer code and the way we are using Direct3D in Inventor, not in the graphics HW vendor’s Direct3D graphics driver.

when we use OpenGL, we never use the graphics HW for the rendering of any offscreen images…we are using the Direct3D graphics HW for all offscreen rendering.

we have decided to focus on supporting Direct3D where we can focus the QA efforts on testing our own code and actually redirect some of the people currently spending all their time testing OpenGL graphics drivers to start testing our own graphics layer code

we can add new graphics features and functionality because we know that we will have the QA resources available to test the new features … and we know that offscreen rendering will match onscreen rendering.

where OpenGL graphics drivers actually disable some OpenGL functionality on consumer, game, laptop, and chipset HW so you are forced to purchase the more expensive workstation graphics HW, just so your OpenGL graphics works correctly. For example, if you are no longer required to spend $1000 to $2000 to simply have graphics HW that works, but can instead purchase a $100 to $350 game card … then you can take the $900 to $1650 you saved and spend it on other system aspects that might have a much more significant impact on your user experience with Inventor, such as having 8 GB of RAM instead of 4 GB (a real 64-bit system!)

I think I can stop right there. He goes on to explain some of the differences and performance issues. But I’d like to get your take on it. Does it matter to you?

(No Ratings Yet)
Loading ... Loading ...
Comments
  • Ryan
    I am really new to all this information but had a question. Mac just introduced that on their new operating system the will allow an Open CL format if that is what you call it and I was wondering with this new format will Solidworks be able to run on my Nvidia GE Force graphics card.
  • Nope, as far as I know. No support for the Open CL format. You'll still ahve to softmod the geForce! fun hackery for you!
  • D Mytty
    It shouldn't be Open GL vs Direct X but rather Open CL vs Direct X. That C vs. a G makes all the difference.

    Solidworks will likely be looking to move into Open CL as it's both Open GL friendly (allowing for code reuse) and it brings the power of GPU's to Simulation analysis (FEA is GPU friendly).
  • Jonatas Esteves
    Well, look's like Microsoft is investing good resources on getting very qualified industry people to write senseless praises to their inferior products and APIs.
    Those Autodesk's member's quotes look like one of those joke posts you know.
    .
    We can see their marketing department's good work everywhere nowadays. Thought, this is their only department that actually does a good work.
    .
    [ ]'s
  • Mike
    While I don't doubt the validity the argument for Direct3D (who can't argue that money talks). This is strangely contrary to industry moment at the moment towards open source and portable solutions nearly universally.

    Portable platform independent standards are coming about in nearly all other sectors of software allowing users to store information in the 'cloud' and developers to create platform independent web and desktop apps allowing users to take their information anywhere on anything they want.

    Strangely enough CAD and 3D modeling developers have become the lame duck; following at a very protracted pace to the rest of the industry to embrace open standards (we still don't have an open source answer for DWG; which Autodesk controls ruthlessly).

    Honestly I view this as very bad for the industry as a whole. As users continue to switch in droves to alternative Operating Systems (Mac OSX, Linux, even a few UNIX) and methods of communication and work (smart phones, light laptops without the horsepower to run many things) fleeing the junk that is Vista, and Windows Mobile they will increasingly demand open standards so that they can access their own information anywhere and on anything.

    To illustrate the point, PC World (perhaps the most widely accepted 'geek' magazine by non-geeks) had an article this month about switching to Linux for small business to avoid the Vista and the ever increasing fees associated with Microsoft per-seat licensing for servers.

    As pointed out several places Direct3D is mainly used on computer games, for which there has been a declining demand on the actual PC. Portable (Nintendo DS) and console (Wii, PS3, XBox) games tend to, and have been, the path to big money in gaming for a long time. Much of the software development for these systems and for Direct 3D and OpenGL has been to support advanced quick-render, shader, and VR developments. While this does benefit CAD rendering with more realistic and quick rendering it does not focus on primary 'primitive' object modeling and parametric approaches rapidly gaining steam in the industry. Workstation graphics cards are tuned in this regard and call for a more expensive workstations
    as it is; despite using Direct 3D or OpenGL.

    Any way you slice it it seems that the CAD industry is just needs to pull their heads out of their own rear-ends and see what is happening all around.

    I'm in support of OpenGL but it would be equally beneficial if Microsoft just opened up it's Direct 3D and Direct X implementations.
  • for some good ol geeky story nonsense, have a poke at Renegades of the Empire about the three guys that cooked up Project Chrome at Microsoft (which eventually got, sort of bastardized into DirectX) and the shenanigans they got up to.. I think the authors name is somebody Drummound..
  • man, thanks Al, that's Chrome reference is a blast from the past. Weird, since today Google brought out their new browser technology called 'Chrome' - wonder if it's a play of what those hooligans were attempting to do with it. Still I think the browser should be shaped around 3D, instead of 3D worked into the browser. who's working on that stuff?
  • I dunno, I'm not convinced about 3D as a UI metaphor for everyday.. I like my desktop, I think it works, but then, I'm pretty anal about organization, folders and stuff.. I think I'm too old..
  • dude, I'm so over clean and organized I delete my files off my desktop and end up having to recreate them. I'll have to show you my folder organization in barca. ahhhhhhy.

    ***Al had to delete your post. it had all your contact info in it! you're right though. we can find much better stuff to do over there. what am I thinkin.
  • Pete Yodis
    Josh,

    A couple of points to re-emphasize. What intrigues me most about support of DirectX/Direct3D is the graphics hardware available that could run CAD software much better at a much lower price. Case in point is the new ATI 4850/4870 graphics engines. These are absolute performance monsters compared to the nVidia Qaudro line. Pound for pound they can compute much faster and have fatter lanes for transferring data back and forth. For around 200-300 dollars one of these can be had. To get the most comparable hardware solution for a "CAD workstation card" - you would have to spend thousands of dollars more - silly. It seems the OpenGL market is charging the CAD workstation market more - because it can. The bolded section in your post from the AutoDesk employee does confirm this idea.

    Secondly - it seems like SolidWorks may be married to OpenGL becuase of the Real View fluff. In my mind I would rather have acess to a 200-300 card that could best anything currently costing thousands of dollars versus having real view capability. Real view doesn't really provide much value to me. Others may disagree. As hardware gets better and we see programs like PhotoView 360 used more - it may get to a point where PhotoView 360 is being used all the time - and realview goes away and the benefit of OpenGL as far as graphics eye candy becomes moot.

    As far as MAC users are concerned... Charles Culp made an excellent point for MAC users running SolidWorks under dual boot. If SolidWorks did support DirectX - then MAC users would be able to use the card that came with their computer to properly drive SolidWorks. Now thats some irony - DirectX could actually help MAC users with running SolidWorks under dual boot.
  • Thanks for the re-points Pete. I'd love to be able to use those cards. I'm looking at laptops now and the FX cards drive up the cost. I've used GT cards and like them as well as the ATI, but the ATI are just awful of SolidWorks of course. It does seem like a "because they can" situation.

    That's a great point about the Mac users as well. Even did a post on modding a GT to Quadro on a Mac. Would be nice if they didn't have to do that.
  • craigsink
    It seems that this is best left up to the software provider (SolidWorks) because whatever decision is made, they must follow up with a correct approach. It does seem like there are benefits of DirectX with the apparently stricter standardization. Its always nice to eliminate variables as long as that doesn't cut into the performance and/or capabilities of the software. At the end of the day as a user, I want good graphics without having to spend a ridiculous amount of money, and get consistent results on multiple stations.
  • SmackReader
    Thanks for the article but the pile of acronyms makes it really hard for me to understand what you are saying. please use them less often.
blog comments powered by Disqus