As I was writing my series on 3D Graphics Performance, I was also discussing the topic with a few graphics experts in order to better understand the results I was seeing. I happen understand a thing or two about graphics, but not a lot. So I was also interested in learning from people who live and breathe graphics technologies. Some of these experts were Ron Fritz, Rob Mazeffa and Gavin Bridgeman of Tech Soft 3D, the company that develops the HOOPS 3D Framework, a development platform for professional grade 3D applications. Some of what we spoke was off the record. So I asked Ron to summarize our discussion so that I could post it here. This is what he sent me:
“The recent series of postings and videos regarding default graphics performance was interesting to us due to our involvement in so many graphical applications in the CAD/CAM/CAE market. Since we are so involved, we have an implicit NDA in place with every software company we ever talk to, so we can’t comment on any specific companies (other than those customers for whom we have used for case studies), but we do have some general observations that you and your readers may find interesting.
Your comparison highlights the fact that it is indeed quite possible for an application to differentiate itself in the marketplace (either positively or negatively) based on their 3D graphics speed and capabilities.
A handful of the large companies, and a couple of small ones, are really “raising the bar” in terms of what users are coming to expect in terms of 3D speed and quality. Those who don’t respond are apparently being left behind and exposed. With the proliferation of 3D in our lives through media and entertainment, the user expectation and what they perceive to be “quality” 3D is increasing dramatically. I think most sales people would tell you that it’s hard to sell a piece of engineering software, no matter how useful it may be, if it looks old.
Of the applications you reviewed, two use our HOOPS 3D Framework for their graphics. Happily, KeyCreator and IronCAD both received good marks, showing that a software company of any size can use components to keep pace with the industry leaders are doing – even without large R&D teams or extensive expertise.
The fact that only two of those reviewed use HOOPS currently shows that, (a) it is indeed plausible for a company to develop a 3D engine on their own (but it may or may not be up to market standards…as your report shows); and (b) that there is plenty of growth opportunity for us!
Why would they develop their own graphics engine? A company with the right resources that they can afford to apply to graphics (instead of other) development can indeed do it….and on rare occasions a company such as MOI can pull it off with very limited bandwidth. If their needs are specific enough, and their platform needs are well defined, some companies prefer to try to use a home-grown graphics engine to differentiate their software relative to competitors. As your report showed, sometimes companies can indeed positively differentiate and sometimes they manage to negatively differentiate themselves if they don’t get it right. What I think you’ll find is that companies can sometimes manage to get a leg up on competitors, but the gaps tend to get closed after a release or two and everyone ends up at a similar level. When there are “new” underlying technologies (well, new to engineering software) such as Direct3D and shader-based rendering, opportunities to differentiate open up for a time. The best of your report have done an excellent job of jumping on new technologies and giving their customers the best performance and visual quality available.
In general, it is not getting any easier to develop their own great graphics engine. The first question a developer asks themselves is, “should we write your graphics engine to talk to OpenGL (very popular in engineering applications these days) or Direct3D (a Microsoft technology that is quickly becoming more popular in engineering and great for lower-end cards)?” HOOPS 3D Framework actually supports both, so we can see how many people are sticking with our OpenGL driver, how many are moving to Direct3D, and how many want to move to mobile devices like the iPad. For our customers, most still default to OpenGL, with a Direct3D option (on Windows), but that is reversing pretty quickly to be Direct3D as the default (for Windows-focused apps, which still represents the majority), with OpenGL as another option if that particular user has hardware that happens to be better on OpenGL.
For those product groups doing graphics development on their own, we see most developers of windows-centric software going with Direct3D. The hardware is great (since it is being pushed by the gaming industry), but it is specific to Microsoft platforms. Those developers needing cross-platform support are opting to write to OpenGL since this is available on all platforms, and a form of OpenGL (OpenGL ES) is available on hand-held and tablet devices such as the iPAD.
Most of the nice looking effects you refer to are done with a technique called shader-based rendering. This is a fairly new paradigm in engineering software, but has been around for quite awhile in the gaming industry. To oversimplify, shader-based rendering pushes much of the computationally expensive operations to the GPU on the video card, which is very powerful. One can get some pretty stunning visual effects this way. It’s a new paradigm, though, and many engineering applications are being forced to make a complete overhaul to take advantage of it.
You also judged speed with some nod to the trade-off for visual quality. The best applications find a good default setting (as you noted), but also give the user options to make those speed/quality trade-offs. I should also mention that what makes for good graphics in a CAD system (or any engineering software) certainly includes speed and visual quality, but also lots of little things such as how crisply the fonts are rendered in drawings? How does the mark-up data or PMI symbols look? Is hard-copy crisp and accurate? Can you mix 2D lines and 3D models in a scene without sacrificing performance? How responsive is the system during geometry creation or selecting/editing? I guess I am saying that the role of display in a piece of engineering software is multi-faceted and to judge which application has the truly “best” graphics would involve quite a bit of detailed comparison, some quantitative and some qualitative.
Another issue that all developers of 3D software know about all-too-well is graphics card support. The card you were testing on is a good one, no doubt, but most developers of engineering software have little or no control over what hardware their customers are going to be using. As a result, they need to either optimize for certain cards (and hope for the best on the rest) or do a remarkable amount of testing and tweaking to run well everywhere. The number of different cards, chip configurations and driver versions is dizzying and can create quite a challenge.
Finally, in defense of some of those who may not have been as good in terms of speed – the translator can make a difference. When the CAD system pulls in that STEP file, the assembly could be organized in such a way that is optimal for graphics performance….or not. In some cases if the CAD system has some inkling that the data won’t change, they can re-organize the data “under the hood” for fast rendering, but that would almost never be the default setting in a graphics system, which generally would assume that the user is starting with a blank screen and creating something….or bringing in a model and editing. I bring it up just to make the point that the way the data is organized can make a big difference in rendering speed.”