Order Independent Transparency (OIT) in PTC Creo ... - AMD
Order Independent Transparency (OIT) in PTC Creo ... - AMD
Order Independent Transparency (OIT) in PTC Creo ... - AMD
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
White Paper |<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong><br />
(<strong>OIT</strong>) <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0
Overview:<br />
<strong>OIT</strong> Def<strong>in</strong>ition: <strong>Order</strong> <strong>in</strong>dependent transparency or “<strong>OIT</strong>” <strong>in</strong> computer graphics programm<strong>in</strong>g term<strong>in</strong>ology denotes any<br />
technique that can correctly render overlapp<strong>in</strong>g semi-transparent objects without hav<strong>in</strong>g to sort them before they are be<strong>in</strong>g<br />
rendered.<br />
Render<strong>in</strong>g semi-transparent objects has always been a problem because the blend<strong>in</strong>g operation is order dependent: when a<br />
semi-transparent fragment is rendered, the underly<strong>in</strong>g color (i.e. the background) is crucial for the f<strong>in</strong>al color to be correct.<br />
Previous known method <strong>in</strong>clud<strong>in</strong>g face sort<strong>in</strong>g, triangle sort<strong>in</strong>g or depth-peel<strong>in</strong>g (multi-pass) are not totally accurate and have<br />
a huge burden on the render<strong>in</strong>g pipel<strong>in</strong>e and requires preparation on the CPU side. In addition, this work is view orientation<br />
dependent and need to be redone every time the view po<strong>in</strong>t changes.<br />
The <strong>OIT</strong> technique implemented <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 allows for pixel accurate render<strong>in</strong>g of overlapp<strong>in</strong>g semi-transparent<br />
objects without hav<strong>in</strong>g to sort them before they are be<strong>in</strong>g rendered, provid<strong>in</strong>g up to 10 times performance of blended render<strong>in</strong>g<br />
<strong>in</strong> PRO/Eng<strong>in</strong>eer Wildfire 5.0 compared to when render<strong>in</strong>g transparency <strong>in</strong> <strong>Creo</strong> Parametric 2.0.<br />
With <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 the <strong>OIT</strong> feature means much less time wasted wait<strong>in</strong>g for your model to render and <strong>in</strong>creased<br />
productivity over the long run.<br />
Feature Description End User Experience Workflow Benefit<br />
<strong>OIT</strong><br />
“<strong>Order</strong><br />
<strong>in</strong>dependent<br />
transparency”<br />
<strong>OIT</strong><br />
“<strong>Order</strong><br />
<strong>in</strong>dependent<br />
transparency”<br />
Provides GPU<br />
accelerated<br />
transparency <strong>in</strong> <strong>Creo</strong><br />
Parametric 2.0 when<br />
runn<strong>in</strong>g on <strong>AMD</strong><br />
FirePro professional<br />
graphics<br />
Provides GPU<br />
accelerated “Pixelaccurate”<br />
depth<br />
sort<strong>in</strong>g<br />
Up to 10 times frame rate with<br />
“<strong>OIT</strong>” transparency mode<br />
enabled with <strong>AMD</strong> FirePro<br />
professional graphics<br />
Helps ensure that assemblies<br />
and components are<br />
accurately represented <strong>in</strong><br />
context of the surround<strong>in</strong>g<br />
geometry<br />
Smooth viewport <strong>in</strong>teractivity helps <strong>in</strong>crease<br />
designer productivity<br />
”Holistic” design awareness that can improve<br />
designer <strong>in</strong>tuition and overall decision-mak<strong>in</strong>g<br />
effectiveness<br />
Fully-Interactive transparency mode opens<br />
the door for <strong>in</strong>novative, novel 3D CAD<br />
workflows<br />
”Holistic” design awareness can improve<br />
designer <strong>in</strong>tuition and overall decision-mak<strong>in</strong>g<br />
effectiveness<br />
Proximity and collision analysis are simplified<br />
and made more efficient<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong> <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 2
<strong>Transparency</strong> Performance<br />
Blended vs. <strong>OIT</strong> <strong>Transparency</strong> (medium sized dataset, shaded mode)<br />
<strong>Transparency</strong> Performance (medium sized dataset, shaded mode)<br />
measured <strong>in</strong> frames per second - higher scores = better user <strong>in</strong>teractivity<br />
FPS<br />
35<br />
30<br />
25<br />
20<br />
15<br />
10<br />
5<br />
0<br />
6.0 5.9 5.6<br />
2.5 2.8 2.7 3.0 3.2 3.2 3.0<br />
Benefits: easy, accurate and fast<br />
Pro/ENGINEER Wildfire 5.0 - Blended<br />
<strong>Creo</strong> Parametric 2.0 - Blended<br />
<strong>Creo</strong> Parametric 2.0 - <strong>OIT</strong><br />
7.1 7.3 7.4 7.3<br />
<strong>PTC</strong> Motorcycle assembly<br />
Dell T3500, Intel Xeon W3690 3.47Ghz 6-Core, 12GB,W<strong>in</strong>dows 7 x64,<br />
1920x1200<br />
<strong>Creo</strong> Parametric 2.0 F000, Pro/E Wildfire 5.0 M060<br />
Drivers: <strong>AMD</strong> FirePro 8.911.3.3, Nvidia Quadro 295.73<br />
This technique is easy to implement and add to an exist<strong>in</strong>g render<strong>in</strong>g pipel<strong>in</strong>e: everyth<strong>in</strong>g can be rendered as usual, semitransparent<br />
or not. The technique exposed here is fully implemented on the <strong>AMD</strong> FirePro professional graphics board, it totally<br />
frees the CPU from multiple render passes or face sort<strong>in</strong>g.<br />
It is also very accurate s<strong>in</strong>ce the actual sort<strong>in</strong>g that happens on the GPU is done per fragment.<br />
That technique has a very low impact on the exist<strong>in</strong>g render<strong>in</strong>g pipel<strong>in</strong>e and is therefore very easy to <strong>in</strong>tegrate <strong>in</strong> an exist<strong>in</strong>g<br />
render<strong>in</strong>g eng<strong>in</strong>e.<br />
Note some triangles not blended correctly With <strong>OIT</strong> technique, it is pixel perfect<br />
As far as performance goes, the results speak for themselves: it achieves up to 10x faster frame rate compared to face sort<strong>in</strong>g<br />
and regular blend<strong>in</strong>g.<br />
15.0<br />
Quadro 600 Quadro 2000 Quadro 4000 <strong>AMD</strong> FirePro<br />
V3900<br />
18.2<br />
<strong>AMD</strong> FirePro<br />
V4900<br />
18.8<br />
<strong>AMD</strong> FirePro<br />
V5900<br />
Over 1000%<br />
as fast<br />
30.9<br />
<strong>AMD</strong> FirePro<br />
V7900<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong> <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 3
Technique:<br />
The technique is based on the usage of an A-buffer, a simple list of fragments per pixel, <strong>in</strong> its simplest form as a l<strong>in</strong>ked list of<br />
fragments per pixel. First, all primitives are rasterized to the A-Buffer, writ<strong>in</strong>g some color value and some depth value (Red-<br />
Green-Blue-Alpha-Depth), one <strong>in</strong>dex buffer (RAT) is used to keep the number of fragments <strong>in</strong> this pixel. F<strong>in</strong>ally, a full screen<br />
shader pass will sort that A-Buffer accord<strong>in</strong>g to the depth value and do the blend<strong>in</strong>g for each fragment accord<strong>in</strong>g to their sorted<br />
<strong>in</strong>dices.<br />
Result:<br />
Without <strong>OIT</strong>, note the <strong>in</strong>correct depth of the seats<br />
With <strong>OIT</strong> applied<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong> <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 4
Some new effects that used to be very difficult to render correctly are now be<strong>in</strong>g made easy like glass effect with Fresnel for<br />
example:<br />
Without <strong>OIT</strong><br />
With <strong>OIT</strong> applied<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong> <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 5
Summary<br />
<strong>AMD</strong> FirePro professional graphics accelerates transparency render<strong>in</strong>g <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 us<strong>in</strong>g <strong>OIT</strong>. <strong>AMD</strong> Eng<strong>in</strong>eers<br />
worked closely with <strong>PTC</strong> Eng<strong>in</strong>eers on the order <strong>in</strong>dependent transparency support released <strong>in</strong> <strong>Creo</strong> Parametric 2.0.<br />
Viewport performance with <strong>OIT</strong> enabled has been measured to <strong>in</strong>crease up to ten times versus <strong>OIT</strong> disabled with transparency<br />
visual quality dramatically improved with pixel-accurate transparency render<strong>in</strong>g, solv<strong>in</strong>g visual artifact problems and z-order<strong>in</strong>g<br />
issues seen without <strong>OIT</strong> enabled.<br />
To learn more<br />
Contact your country/regional <strong>AMD</strong> representative or go to http://www.amd.com/us/products/workstation/Pages/workstation.aspx<br />
DISCLAIMER<br />
The <strong>in</strong>formation presented <strong>in</strong> this document is for <strong>in</strong>formational purposes only and may conta<strong>in</strong> technical <strong>in</strong>accuracies,<br />
omissions and typographical errors. <strong>AMD</strong> MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE<br />
CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY<br />
APPEAR IN THIS INFORMATION. <strong>AMD</strong> SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, NON-<br />
INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL <strong>AMD</strong> BE LIABLE TO ANY PERSON FOR<br />
ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION<br />
CONTAINED HEREIN, EVEN IF <strong>AMD</strong> IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.<br />
<strong>Order</strong> <strong>Independent</strong> <strong>Transparency</strong> <strong>in</strong> <strong>PTC</strong> <strong>Creo</strong> Parametric 2.0 6