GPU-Accelerated Transparency for 3D CAD with Creo Parametric 2.0 and AMD FirePro
Order Independent Transparency (OIT) in computer graphics programming terminology denotes any technique that can correctly render overlapping semi-transparent objects without having to sort them before they are being rendered. Rendering semi-transparent objects has always been a problem because the blending operation is order dependent: when a semi-transparent fragment is rendered, the underlying color (i.e. the background) is crucial for the final color to be correct.
OIT is a new option that can simply be enabled in Creo Parametric 2.0. With OIT, Creo Parametric 2.0 allows for pixel accurate rendering of overlapping semi-transparent objects without having to sort them before they are being rendered, providing up to 10 times performance of blended rendering in PRO/Engineer Wildfire 5.0 compared to when rendering transparency in Creo Parametric 2.0. This translates into less time waiting for your model to render and increased productivity over the long run.
This technique is easy to implement and add to an existing rendering pipeline: everything can be rendered as usual, semi-transparent or not. The technique here is fully implemented on the AMD FirePro professional graphics board, which totally frees the CPU from multiple render passes or face sorting. OIT only works with FirePro cards.
OIT assembles a pixel-accurate representation of the model and its surrounding geometry while maintaining user interactivity and visual quality. This creates a more practical transparent 3D viewpoint to continuously work within, helping improve the sense of design intuition and aid in better decision-making throughout the product development stages. It is also very accurate since the actual sorting that happens on the GPU is done per fragment.
The technique has a very low impact on the existing rendering pipeline and is therefore very easy to integrate in an existing rendering engine. As far as performance goes, the results speak for themselves: it achieves up to 10x faster frame rate compared to face sorting and regular blending.
How It Works
The technique is based on the usage of an A-buffer, a simple list of fragments per pixel, in its simplest form as a linked list of fragments per pixel. First, all primitives are rasterized to the A-Buffer, writing some color value and some depth value (Red-Green-Blue-Alpha-Depth), one index buffer (RAT) is used to keep the number of fragments in this pixel. Finally, a full screen shader pass will sort that A-Buffer according to the depth value and do the blending for each fragment according to their sorted indices.
Viewport performance with OIT enabled has been measured to increase up to ten times versus OIT disabled with transparency visual quality dramatically improved with pixel-accurate transparency rendering, solving visual artifact problems and z-ordering issues seen without OIT enabled. AMD developed the OIT implementation for PTC and the Creo Parametric 2.0 community, showing the company’s commitment to the market as an innovator – not just a product company.