The future of CAD graphics

SolidWorks design session with RealView effects. Materials are represented more accurately, and real-time reflections are in place.
In the past the typical mechanical designer has shown little interest in designing components with high quality shadows and reflections inside the viewport of their CAD application. This was because it generally slowed down performance or simply wasn’t available in their ‘mid range’, or even ‘high-end’ modeller. Now though, as aesthetic appearance becomes more important across more sectors and “scan line” rendering (CPU bound rendering) takes time to setup and render, real time interactive visualisation looks to be the way to go.
Solid modellers, by their nature, face changes to the model or assembly which means the screen needs to be constantly updated. This could be because you have edited a feature or animated parts in an assembly. This actually takes time via CPU cycles to regenerate the screen, but CPU cycles are also needed to do the mathematic calculations for features. Of course, with all this going on at the same time this results in a performance hit. As one process is waiting for another it is not always easy to apply these functions to separate CPU cores. If you can offload these calculations to the graphics card where several operations can be done at once you can have the best performance and visual quality in real time.
Enhancing the user experience
Lighting and shadows, one of the heaviest calculations for any system, not only adds realism but has a great benefit in many aspects of design. A typical application of where lighting is important is where there is human interaction and it’s not so much about where there is light, but where there isn’t. In the real world, for example, I have an old laptop where I never noticed that it had a firewire port as it was in a recess at the side and in shadow.
In SolidWorks 2008, the developers have implemented lighting and shadows but also taken this to the next level by using more advanced calculations of per pixel lighting instead of vertex lighting. The resulting image is of a higher quality and therefore more realistic in appearance. Self shadowing is also employed where one component casts a shadow onto itself or onto other components in the assembly. This adds to a great degree of authenticity but could also slow down the calculations so PCF (Percentage Closest Filtering) has also been implemented to limit the required calculations in areas you can’t see or are too far from the sight plane. In essence, if you are not going to see it, the system doesn’t waste time trying to calculate it.
If you design highly reflective components then the environment mapping (using an image to reflect in the parts) adds to the realism as it shows the components in a real scene. Applying high quality materials is a given today but adding bump maps gives the appearance of a surface texture. This is more efficient than modelling a surface texture, which can be very heavy in the polygon count. And often the texture objects are random, such as leather or bricks, and hard to model anyway. An enhancement to this is Parallax mapping where it produces its own self shadows which give the perception of depth to the texture. All the edges of the components can be shown to ‘glow’ like when a edge catches the light, all adding to the realism.
All of these enhancements mean that your model more closely resembles real life. I always find it’s easier to spot mistakes if what you are looking at is as close to real life as possible. The best news is you can apply all of these effects at once, which is fairly unique, unless you’re using a dedicated styling application. One of my lecturers was an ex-Jaguar designer (of course a few years before my time) who described how once he worked on 3D wireframe suspension model for a whole day before he realised it was inside out and the day was wasted.
Improving performance
As you increase your assembly size, you are effectively increasing the amount of lines and surfaces you have to display on screen so the slower it will go. There are several ways to fix this to gain performance. You can throw a high performing graphics card at it, write optimised code, or write support via one of the high level languages. With SolidWorks 2008, VBO’s (Vertex Buffer Objects) have been implemented in the OpenGL graphics engine that SolidWorks uses. These allow geometry to be stored in the graphics card memory and even updated without using many CPU cycles. The more graphics memory (Frame Buffer) you have then the larger the models are than can be manipulated without taking a performance loss. If you have massive models then a faster card is still required but the combination of fast GPU (Graphics Processing Unit) big frame buffer and a card that supports advanced OpenGL will allow a new level of assembly size to be edited interactively. Of course I’d say an ATI FireGL card is the ideal choice.
In summary, as the native screen image of SolidWorks can now be of such a high quality then the need to scan line render is diminished - all you need to do is take a screen grab. It is even better if you need to demonstrate your design to a customer as you can show interactively a 3D real object. With all the realism effects and performance available with the advanced graphics and OpenGL functions in SolidWorks 2008, this is a major step forward for mid range modelling software - if that term can be applied anymore!
Comments
Nice article. I learned a few new things about how the GPU memory works in CAD, just what ive been looking for. If you can point out any other sites that mention this id be very happy. Thanks.
By Eson on 2008-08-08
Can we have one on Inventor?
By Viking on 2008-08-18
Add your comment
Note: All comments are moderated for spambots so there will be a posting delay.
Your email address will not be published.