20.04.2013 Views

Order Independent Transparency (OIT) in PTC Creo ... - AMD

Order Independent Transparency (OIT) in PTC Creo ... - AMD

Order Independent Transparency (OIT) in PTC Creo ... - AMD

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!