SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
TressFX 2.0 AND BEYOND
BILL BILODEAU, AMD
DONGSOO HAN, AMD
TressFX 2.0 AND BEYOND
AGENDA

 TressFX Overview
 TressFX Rendering
‒ TressFX 2.0 improvements

 TressFX Physics
 Future Work

2 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX OVERVIEW
TressFX OVERVIEW
WHAT IS TressFX?

 Realistic hair rendering and simulation
‒ Used in Tomb Raider
 Goes beyond simple shells and fins representation used in games

 Hair is rendered as thousands of strands with self shadowing, antialiasing and transparency
 Physical simulation for each strand using GPU compute shaders
 Very flexible to allow for different hair styles and different conditions

4 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX RENDERING
WHAT MAKES IT LOOK GOOD

 What goes into good hair?
‒ Anti-aliasing
‒ Volumetric self shadowing
‒ Transparency

Basic Rendering

Antialiasing

Antialiasing

+ Self Shadowing
5 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

Antialiasing

+ Self Shadowing
+ Transparency
TressFX RENDERING
TressFX RENDERING
LIGHTING MODEL
Secondary Highlights

 Kajiya-Kay Hair Lighting Model
‒ Anisotropic hair strand lighting model
‒ Uses the tangent along the strand instead of the normal
for light reflections
‒ Instead of cos(N, H) , use sin(T,H)

 Marschner Model
‒ Two specular highlights
‒ Primary light colored highlight shifted towards the tip
‒ Secondary hair colored highlight shifted towards the root
‒ TressFX uses an approximation of the Marchner
technique when rendering two highlights

7 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

Primary Highlights
TressFX RENDERING
ANTI-ALIASING

 Every hair strand is anti-aliased manually
‒ Not using Hardware MSAA!

 Compute pixel coverage on edges of hair strands and convert it
to an alpha value

8 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX RENDERING
SELF SHADOWING

 Self Shadowing
‒ Uses a simplified Deep Shadow Map technique

No Self Shadows

9 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

With Self Shadows
TressFX RENDERING
TRANSPARENCY

 Order Independent Transparency (OIT) using a Per-Pixel Linked Lists (PPLL)

 Fragments are stored in link lists on the GPU
 Nearest K fragments are rendered in back to front order

No Transparency

10 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

With Transparency
TressFX 1.0 RENDERING
How rendering was done in version 1.0

 TressFX 1.0 Rendering
‒ Render hair strand geometry into A-buffer
‒ Do lighting, shadowing, and antialiasing
‒ Store fragment color with depth and coverage in per-pixel linked list (PPLL)

‒ Render the K nearest fragments (K-buffer) in back to front order
‒ Blend nearest K fragments in the correct order with transparency
‒ Blend the remaining fragments without sorting

11 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX 1.0 RENDERING
A-BUFFER PASS

Coverage

Hair Geometry

Vertex Shader

Head UAV

Pixel Shader
Lighting
PPLL UAV

Shadows

depth
color
coverage

12 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

next
TressFX 1.0 RENDERING
PER-PIXEL LINKED LIST

 GPU implementation of order independent transparency (OIT)

 Head UAV
‒ Each pixel location has a “head pointer” to a linked list in the PPLL
UAV

Head UAV

 PPLL UAV
‒ As new fragments are rendered, they are added to the next open
location in the PPLL (using UAV counter)
‒ A link is created to the fragment pointed to by the head pointer
‒ Head pointer then points to the new fragment
// Retrieve current pixel count and increase counter
uint uPixelCount = LinkedListUAV.IncrementCounter();
uint uOldStartOffset;
// Exchange indices in LinkedListHead texture corresponding to pixel location
InterlockedExchange(LinkedListHeadUAV[address], uPixelCount, uOldStartOffset);
// Append new element at the end of the Fragment and Link Buffer
Element.uNext = uOldStartOffset;
LinkedListUAV[uPixelCount] = Element;

13 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

PPLL UAV
TressFX 1.0 RENDERING
K-BUFFER PASS

K-Buffer

Full Screen Quad

Vertex Shader

14 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

Pixel Shader

depth
depth
color depth
color depth
coverage color
coverage color
coverage
coverage

Transparency
TressFX 1.0 RENDERING
HOW CAN WE MAKE IT FASTER?

 Observation
‒ All fragments are lit and shadowed equally
‒ Even the ones buried under dozens of hair fragments that you can’t see

 Solution
‒ Defer the lighting and shadowing until the k-buffer pass
‒ Render the nearest K fragments with high quality
‒ Render the remaining fragments with lower quality (but faster)

15 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX 2.0 RENDERING
A-BUFFER PASS

Hair Geometry

Vertex Shader

Pixel Shader
Coverage

depth
coverage
tangent
next
16 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX 2.0 RENDERING
K-BUFFER PASS

K-Buffer

Full Screen Quad

Vertex Shader

Pixel Shader

Lighting

17 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

depth
depth
coveragedepth
coverage depth
tangent
coverage
tangentcoverage
tangent
tangent

Shadows
Transparency
TressFX 2.0 IMPROVEMENTS
CONTINUOUS LODs

 Distance to camera can be used for reducing the density of the hair
‒ Uniformly remove hair strands from the rendering
‒ To compensate for missing strands, thicken the hair
‒ Adjust the minimum pixel coverage with distance

Full Density Hair
18 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

Reduced Density Hair

Reduced Density with Thicker Strands
TressFX 2.0 IMPROVEMENTS
CODE RESTRUCTURING

 TressFX11 Sample Code is much more modular

 All of the necessary TressFX code in separate files
for
‒ Rendering
‒ Simulation
‒ Mesh management
‒ Asset loading

 Code for head rendering and sample framework
are completely separate

Main

TressFXSimulate

TressFXSimulate

TressFXRender

SceneRender

SceneRender

TressFXRender

TressFXMesh

Gaussian
Filter

‒ Take the “TressFX” files to get just what you need

 Better variable names
 Removal of dead code

19 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

DX11Mesh
TressFXAssetLoader

TressFX Code

ObjImport
TressFX 2.0 IMPROVEMENTS
MISCELLANEOUS IMPROVEMENTS

 Vertex shader optimizations for rendering
‒ Draw call for hair now uses an index buffer with a triangle list instead of looking up indices from a buffer

 PPLL head buffer uses a RWTexture2D for better caching (tiled)
 Hair shadow on model is softer and less blocky
 Various shader code optimizations
 Porting Guide
 Download the new TressFX 2.0 sample soon from our Radeon SDK :

http://developer.amd.com

20 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX 2.0 RENDERING
MEMORY CONSIDERATIONS

 A-Buffer
‒ 2 UAVs
‒ Size determined by resolution
‒ Head of the Linked List UAV

250.00
200.00

‒ Screen resolution RWTexture2D, DXGI_FORMAT_R32_UINT

‒ Per-Pixel Linked List UAV
‒ Structured Buffer, size = (number of pixels) x (avg hair layers) x
(sizeof(LinkedListStructure))
‒ Default average number of hair layers is 8
‒ Linked list structure is currently 3 DWORDs: depth, coverage, tangent

 Limited memory, but unbounded linked list
‒ This means too many fragments for a given pixel can overflow the PPLL
‒ Can cause artifacts
‒ Typically this only happens if the camera gets too close

21 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

150.00
720p
100.00

1080p

50.00
0.00
Total A-Buffer
Memory (MB)

Linked List Head

Per-Pixel Linked List
TressFX 2.0 RENDERING
PERFORMANCE RESULTS

3

2.5

2.5

2

2
1.5
TressFX 1.0
1

TressFX 2.0

1.5

TressFX 1.0
TressFX 2.0

1

0.5

0.5

0

0

Total Hair Render
Time (ms)

A-Buffer Pass

Total Hair Render
Time (ms)

K-Buffer Pass

R9 280x

R9 290x

> 2X performance increase!

22 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

A-Buffer Pass

K-Buffer Pass
TressFX SIMULATION
TressFX Simulation
Topics

 TressFX 1.0 Simulation Overview
‒ Main Interest
‒ Simulation Overview
‒ Constraints
‒ Global shape constraints
‒ Local Shape Constraints
‒ Edge length constraints

‒ Problems

 TressFX Beyond
‒ General Constraint Formulation
‒ Tridiagonal Matrix-free Formulation
‒ Solving Linear System
‒ Benefits

24 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
Main Interest
 Main interest of TressFX simulation
‒ Performance, performance and performance! – DirectCompute
‒ Styled hair – bending and twisting forces are important
‒ Stability – position based dynamics
- Conditions – wet, dry or heavy
- Wind – helps express dynamics even the character in the idle mode

25 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
Simulation Overview

load hair data
precompute rest-state values – can be offline

CPU

while simulation running do
apply gravity

integrate
apply GSC (Global Shape Constraints)

GPU – DirectCompute

apply LSC (Local Shape Constraints)
apply wind
apply ELC (Edge Length Constraints)

collision handling

vertex buffer

26 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

GPU – Rendering
pipeline
GLOBAL SHAPE CONSTRAINTS
 GSC(Global Shape Constraints)
‒ The initial positions of particles serve as the global goal positions
‒ The goal positions are rigid w.r.t character head transform.
‒ You can think the initial positions are some cage and vertices are trapped in that cage during simulation.
‒ Easy and cheap. Help maintain the global shape but lose the detailed simulation

initial goal position
current position
final position

27 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
LOCAL SHAPE CONSTRAINTS
 LSC(Local Shape Constraints)
‒ The goal positions are determined in the local frames.
‒ Still the goal positions are transformed in world frames and applied to vertex positions.

initial goal position
current position
final position

28 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
LOCAL SHAPE CONSTRAINTS – CONT’
 Local Transforms
‒ As in robotic arm, an open-chain structure has joints and each joint has parent-child relationships to its connected
joints.
‒ 𝑖−1 𝑇𝑖 is to transform (translate and rotate) child space(i) to its parent space(i-1)
‒ With local transforms in chain structure, we can get a global transforms.
𝑤

𝑇𝑖 =

𝑤

𝑇0 ∙ 0 𝑇1 … ∙

𝑖−2

𝑇𝑖−1 ∙

‒ Local frames should be updated at each particles

29 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

𝑖−1

𝑇𝑖
LOCAL SHAPE CONSTRAINTS – CONT’
 Initialize and update local and global transforms
‒ Initialization is performed in CPU or offline only once.
‒ Update is performed at each frame in GPU.
‒ Update is serial process but independent to other strands. We update multiple strands in massive parallel processes
in GPU.
‒ With local and global transforms, we can calculate target vertex positions for local shape constraints.
‒ Finally, update two neighboring vertices to get stable convergence.

Updating position
i

Computing on local transform

i-1

Zero

30 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
EDGE LENGTH CONSTRAINTS


how much
stretched or
compressed

0.5

31 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

unit edge vector
Problems
 Extreme acceleration
‒ When character makes a sudden move, it can generate extreme linear and
angular acceleration which stretch hair very long.
‒ Even with high iterations with Edge Length Constraints, hair doesn’t recover the
original length and as a result, hair can look too stretchy.
‒ Possible solution was to enforce Edge Length Constraints in the serial fashion
from the root to the end of hair with extra damping – used for Tomb Raider
‒ We need a better way! And we did research!

32 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
Problems
EXTREME ACCELERATION

33 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
Future TressFX Simulation
General Constraint Formulation


35 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
Tridiagonal Matrix Formulation
 Special Formulation for Chain Structure such as Hair
‒ We don’t want to solve a big matrix equation, especially in GPU!
‒ Let’s take advantage of linear topology and serial indexing
 General
case. We
don’t
want this!
 Known. Easy to compute them.
 Special
case. Much
simpler!
 Unknown and what we are solving for
36 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
SOLVING LINEAR SYSTEM
 Solving Linear System
‒ The formulation doesn’t require explicit matrix – Good for GPU!
‒ Diagonal, super and sub diagonal elements are non-zero - Sparse!
‒ The equation is diagonally dominant – Good for choice of direct solver!
‒ We can use tridiagonal matrix algorithm (Thomas algorithm)
‒ So we can solve it in GPU!

37 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
FUR CASTLE

38 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
FUR MUSHROOM

39 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
GRASS

40 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
BENEFITS
 No more iterations for Edge Length Constraints
‒ Needn’t have to guess number of iterations
‒ Fixed computation cost
‒ Fast convergence

41 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
TressFX 2.0
CONCLUSIONS

 TressFX 2.0 performance now makes hair rendering faster than the previous version
‒ More than 2X faster in some cases
 TressFX is now fast enough to use on consoles
 More modular code structure means easier porting to your game
 Realistic physics for hair simulation can now be extended to other objects
 Stay tuned for more!
‒ Ongoing research to improve and expand the use of this technology

42 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
REFERENCE
 Real-time Hair Simulation with Efficient Hair Style Preservation – Han, et al. VRIPHYS 2012

 Tridiagonal Matrix Formulation for Inextensible Hair Strand Simulation – Han, et al. VRIPHYS 2013

43 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
DISCLAIMER & ATTRIBUTION

The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors.
The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap
changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software
changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD
reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of
such revisions or changes.
AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY
INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.
AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE
LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION
CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

ATTRIBUTION
© 2013 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices,
Inc. in the United States and/or other jurisdictions. SPEC is a registered trademark of the Standard Performance Evaluation Corporation (SPEC). Other names
are for informational purposes only and may be trademarks of their respective owners.
44 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT

Mais conteúdo relacionado

Mais procurados

Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeWuBinbo
 
Campus_Network_Design_with_ArubaOS-CX_-_Leading_Practices
Campus_Network_Design_with_ArubaOS-CX_-_Leading_PracticesCampus_Network_Design_with_ArubaOS-CX_-_Leading_Practices
Campus_Network_Design_with_ArubaOS-CX_-_Leading_PracticesRoanVillalobos1
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your gameschangehee lee
 
Using DASH and MPEG-2 TS
Using DASH and MPEG-2 TSUsing DASH and MPEG-2 TS
Using DASH and MPEG-2 TSAlex Giladi
 
Deploying CloudStack with Ceph
Deploying CloudStack with CephDeploying CloudStack with Ceph
Deploying CloudStack with CephShapeBlue
 
Molex and Nvidia - Partnership to enable copper for the next generation artif...
Molex and Nvidia - Partnership to enable copper for the next generation artif...Molex and Nvidia - Partnership to enable copper for the next generation artif...
Molex and Nvidia - Partnership to enable copper for the next generation artif...Memory Fabric Forum
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
MC-LAG Configuration with BGP-base VPLS
MC-LAG Configuration with BGP-base VPLSMC-LAG Configuration with BGP-base VPLS
MC-LAG Configuration with BGP-base VPLSJohnson Liu
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
study Domain Transform for Edge-Aware Image and Video Processing
study Domain Transform for Edge-Aware Image and Video Processingstudy Domain Transform for Edge-Aware Image and Video Processing
study Domain Transform for Edge-Aware Image and Video ProcessingChiamin Hsu
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
Presentation_Internet_Business_Division-Lighting_EN.pdf
Presentation_Internet_Business_Division-Lighting_EN.pdfPresentation_Internet_Business_Division-Lighting_EN.pdf
Presentation_Internet_Business_Division-Lighting_EN.pdfVINETHR
 
Switching conditions in SDH protection schemes.
Switching conditions in SDH protection schemes.Switching conditions in SDH protection schemes.
Switching conditions in SDH protection schemes.MapYourTech
 
Cisco nexus series
Cisco nexus seriesCisco nexus series
Cisco nexus seriesAnwesh Dixit
 

Mais procurados (20)

Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with compute
 
Extreme Copper PCB Capabilities
Extreme Copper PCB CapabilitiesExtreme Copper PCB Capabilities
Extreme Copper PCB Capabilities
 
Campus_Network_Design_with_ArubaOS-CX_-_Leading_Practices
Campus_Network_Design_with_ArubaOS-CX_-_Leading_PracticesCampus_Network_Design_with_ArubaOS-CX_-_Leading_Practices
Campus_Network_Design_with_ArubaOS-CX_-_Leading_Practices
 
Ospf area types
Ospf area typesOspf area types
Ospf area types
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your games
 
IBM PowerVC Introduction and Configuration
IBM PowerVC Introduction and ConfigurationIBM PowerVC Introduction and Configuration
IBM PowerVC Introduction and Configuration
 
Open VPX Tutorial
Open VPX TutorialOpen VPX Tutorial
Open VPX Tutorial
 
Using DASH and MPEG-2 TS
Using DASH and MPEG-2 TSUsing DASH and MPEG-2 TS
Using DASH and MPEG-2 TS
 
Deploying CloudStack with Ceph
Deploying CloudStack with CephDeploying CloudStack with Ceph
Deploying CloudStack with Ceph
 
Molex and Nvidia - Partnership to enable copper for the next generation artif...
Molex and Nvidia - Partnership to enable copper for the next generation artif...Molex and Nvidia - Partnership to enable copper for the next generation artif...
Molex and Nvidia - Partnership to enable copper for the next generation artif...
 
GMSL in Linux
GMSL in LinuxGMSL in Linux
GMSL in Linux
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
MC-LAG Configuration with BGP-base VPLS
MC-LAG Configuration with BGP-base VPLSMC-LAG Configuration with BGP-base VPLS
MC-LAG Configuration with BGP-base VPLS
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
study Domain Transform for Edge-Aware Image and Video Processing
study Domain Transform for Edge-Aware Image and Video Processingstudy Domain Transform for Edge-Aware Image and Video Processing
study Domain Transform for Edge-Aware Image and Video Processing
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Presentation_Internet_Business_Division-Lighting_EN.pdf
Presentation_Internet_Business_Division-Lighting_EN.pdfPresentation_Internet_Business_Division-Lighting_EN.pdf
Presentation_Internet_Business_Division-Lighting_EN.pdf
 
Flash Array
Flash ArrayFlash Array
Flash Array
 
Switching conditions in SDH protection schemes.
Switching conditions in SDH protection schemes.Switching conditions in SDH protection schemes.
Switching conditions in SDH protection schemes.
 
Cisco nexus series
Cisco nexus seriesCisco nexus series
Cisco nexus series
 

Semelhante a GS-4147, TressFX 2.0, by Bill-Bilodeau

Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!Johan Andersson
 
Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14AMD Developer Central
 
GS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill BilodeauGS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill BilodeauAMD Developer Central
 
Xtext + Sirius = <3
Xtext + Sirius = <3Xtext + Sirius = <3
Xtext + Sirius = <3Cédric Brun
 
Oracle 12.2 Domain Services Cluster
Oracle 12.2 Domain Services ClusterOracle 12.2 Domain Services Cluster
Oracle 12.2 Domain Services ClusterMarkus Flechtner
 
Borderless Per Face Texture Mapping
Borderless Per Face Texture MappingBorderless Per Face Texture Mapping
Borderless Per Face Texture Mappingbasisspace
 
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias Zarick
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias ZarickTrivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias Zarick
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias ZarickTrivadis
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Markus Michalewicz
 
FlameWorks GTC 2014
FlameWorks GTC 2014FlameWorks GTC 2014
FlameWorks GTC 2014Simon Green
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glchangehee lee
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...AMD Developer Central
 
How oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalHow oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalAjith Narayanan
 
D3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performanceD3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performancemistercteam
 
D3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performanceD3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performancemistercteam
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And EffectsThomas Goddard
 
Trivadis TechEvent 2017 Oracle on azure by Michael Schwarzgorn
Trivadis TechEvent 2017 Oracle on azure by Michael SchwarzgornTrivadis TechEvent 2017 Oracle on azure by Michael Schwarzgorn
Trivadis TechEvent 2017 Oracle on azure by Michael SchwarzgornTrivadis
 
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014Philippe Fierens
 

Semelhante a GS-4147, TressFX 2.0, by Bill-Bilodeau (20)

Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!Your Game Needs Direct3D 11, So Get Started Now!
Your Game Needs Direct3D 11, So Get Started Now!
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
HDX 3D
HDX 3DHDX 3D
HDX 3D
 
Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
GS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill BilodeauGS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill Bilodeau
 
Xtext + Sirius = <3
Xtext + Sirius = <3Xtext + Sirius = <3
Xtext + Sirius = <3
 
Oracle 12.2 Domain Services Cluster
Oracle 12.2 Domain Services ClusterOracle 12.2 Domain Services Cluster
Oracle 12.2 Domain Services Cluster
 
Borderless Per Face Texture Mapping
Borderless Per Face Texture MappingBorderless Per Face Texture Mapping
Borderless Per Face Texture Mapping
 
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias Zarick
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias ZarickTrivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias Zarick
Trivadis TechEvent 2017 ACFS Replication as of 12 2 by Mathias Zarick
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
 
FlameWorks GTC 2014
FlameWorks GTC 2014FlameWorks GTC 2014
FlameWorks GTC 2014
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
 
How oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 finalHow oracle 12c flexes its muscles against oracle 11g r2 final
How oracle 12c flexes its muscles against oracle 11g r2 final
 
D3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performanceD3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performance
 
D3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performanceD3 d12 a-new-meaning-for-efficiency-and-performance
D3 d12 a-new-meaning-for-efficiency-and-performance
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And Effects
 
Trivadis TechEvent 2017 Oracle on azure by Michael Schwarzgorn
Trivadis TechEvent 2017 Oracle on azure by Michael SchwarzgornTrivadis TechEvent 2017 Oracle on azure by Michael Schwarzgorn
Trivadis TechEvent 2017 Oracle on azure by Michael Schwarzgorn
 
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
 

Mais de AMD Developer Central

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsAMD Developer Central
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesAMD Developer Central
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAMD Developer Central
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceAMD Developer Central
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellAMD Developer Central
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornAMD Developer Central
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevAMD Developer Central
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasAMD Developer Central
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...AMD Developer Central
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14AMD Developer Central
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14AMD Developer Central
 
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...AMD Developer Central
 
Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14AMD Developer Central
 

Mais de AMD Developer Central (20)

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
 
Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
 
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
 
Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14
 

Último

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

GS-4147, TressFX 2.0, by Bill-Bilodeau

  • 1. TressFX 2.0 AND BEYOND BILL BILODEAU, AMD DONGSOO HAN, AMD
  • 2. TressFX 2.0 AND BEYOND AGENDA  TressFX Overview  TressFX Rendering ‒ TressFX 2.0 improvements  TressFX Physics  Future Work 2 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 4. TressFX OVERVIEW WHAT IS TressFX?  Realistic hair rendering and simulation ‒ Used in Tomb Raider  Goes beyond simple shells and fins representation used in games  Hair is rendered as thousands of strands with self shadowing, antialiasing and transparency  Physical simulation for each strand using GPU compute shaders  Very flexible to allow for different hair styles and different conditions 4 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 5. TressFX RENDERING WHAT MAKES IT LOOK GOOD  What goes into good hair? ‒ Anti-aliasing ‒ Volumetric self shadowing ‒ Transparency Basic Rendering Antialiasing Antialiasing + Self Shadowing 5 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT Antialiasing + Self Shadowing + Transparency
  • 7. TressFX RENDERING LIGHTING MODEL Secondary Highlights  Kajiya-Kay Hair Lighting Model ‒ Anisotropic hair strand lighting model ‒ Uses the tangent along the strand instead of the normal for light reflections ‒ Instead of cos(N, H) , use sin(T,H)  Marschner Model ‒ Two specular highlights ‒ Primary light colored highlight shifted towards the tip ‒ Secondary hair colored highlight shifted towards the root ‒ TressFX uses an approximation of the Marchner technique when rendering two highlights 7 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT Primary Highlights
  • 8. TressFX RENDERING ANTI-ALIASING  Every hair strand is anti-aliased manually ‒ Not using Hardware MSAA!  Compute pixel coverage on edges of hair strands and convert it to an alpha value 8 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 9. TressFX RENDERING SELF SHADOWING  Self Shadowing ‒ Uses a simplified Deep Shadow Map technique No Self Shadows 9 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT With Self Shadows
  • 10. TressFX RENDERING TRANSPARENCY  Order Independent Transparency (OIT) using a Per-Pixel Linked Lists (PPLL)  Fragments are stored in link lists on the GPU  Nearest K fragments are rendered in back to front order No Transparency 10 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT With Transparency
  • 11. TressFX 1.0 RENDERING How rendering was done in version 1.0  TressFX 1.0 Rendering ‒ Render hair strand geometry into A-buffer ‒ Do lighting, shadowing, and antialiasing ‒ Store fragment color with depth and coverage in per-pixel linked list (PPLL) ‒ Render the K nearest fragments (K-buffer) in back to front order ‒ Blend nearest K fragments in the correct order with transparency ‒ Blend the remaining fragments without sorting 11 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 12. TressFX 1.0 RENDERING A-BUFFER PASS Coverage Hair Geometry Vertex Shader Head UAV Pixel Shader Lighting PPLL UAV Shadows depth color coverage 12 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT next
  • 13. TressFX 1.0 RENDERING PER-PIXEL LINKED LIST  GPU implementation of order independent transparency (OIT)  Head UAV ‒ Each pixel location has a “head pointer” to a linked list in the PPLL UAV Head UAV  PPLL UAV ‒ As new fragments are rendered, they are added to the next open location in the PPLL (using UAV counter) ‒ A link is created to the fragment pointed to by the head pointer ‒ Head pointer then points to the new fragment // Retrieve current pixel count and increase counter uint uPixelCount = LinkedListUAV.IncrementCounter(); uint uOldStartOffset; // Exchange indices in LinkedListHead texture corresponding to pixel location InterlockedExchange(LinkedListHeadUAV[address], uPixelCount, uOldStartOffset); // Append new element at the end of the Fragment and Link Buffer Element.uNext = uOldStartOffset; LinkedListUAV[uPixelCount] = Element; 13 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT PPLL UAV
  • 14. TressFX 1.0 RENDERING K-BUFFER PASS K-Buffer Full Screen Quad Vertex Shader 14 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT Pixel Shader depth depth color depth color depth coverage color coverage color coverage coverage Transparency
  • 15. TressFX 1.0 RENDERING HOW CAN WE MAKE IT FASTER?  Observation ‒ All fragments are lit and shadowed equally ‒ Even the ones buried under dozens of hair fragments that you can’t see  Solution ‒ Defer the lighting and shadowing until the k-buffer pass ‒ Render the nearest K fragments with high quality ‒ Render the remaining fragments with lower quality (but faster) 15 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 16. TressFX 2.0 RENDERING A-BUFFER PASS Hair Geometry Vertex Shader Pixel Shader Coverage depth coverage tangent next 16 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 17. TressFX 2.0 RENDERING K-BUFFER PASS K-Buffer Full Screen Quad Vertex Shader Pixel Shader Lighting 17 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT depth depth coveragedepth coverage depth tangent coverage tangentcoverage tangent tangent Shadows Transparency
  • 18. TressFX 2.0 IMPROVEMENTS CONTINUOUS LODs  Distance to camera can be used for reducing the density of the hair ‒ Uniformly remove hair strands from the rendering ‒ To compensate for missing strands, thicken the hair ‒ Adjust the minimum pixel coverage with distance Full Density Hair 18 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT Reduced Density Hair Reduced Density with Thicker Strands
  • 19. TressFX 2.0 IMPROVEMENTS CODE RESTRUCTURING  TressFX11 Sample Code is much more modular  All of the necessary TressFX code in separate files for ‒ Rendering ‒ Simulation ‒ Mesh management ‒ Asset loading  Code for head rendering and sample framework are completely separate Main TressFXSimulate TressFXSimulate TressFXRender SceneRender SceneRender TressFXRender TressFXMesh Gaussian Filter ‒ Take the “TressFX” files to get just what you need  Better variable names  Removal of dead code 19 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT DX11Mesh TressFXAssetLoader TressFX Code ObjImport
  • 20. TressFX 2.0 IMPROVEMENTS MISCELLANEOUS IMPROVEMENTS  Vertex shader optimizations for rendering ‒ Draw call for hair now uses an index buffer with a triangle list instead of looking up indices from a buffer  PPLL head buffer uses a RWTexture2D for better caching (tiled)  Hair shadow on model is softer and less blocky  Various shader code optimizations  Porting Guide  Download the new TressFX 2.0 sample soon from our Radeon SDK : http://developer.amd.com 20 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 21. TressFX 2.0 RENDERING MEMORY CONSIDERATIONS  A-Buffer ‒ 2 UAVs ‒ Size determined by resolution ‒ Head of the Linked List UAV 250.00 200.00 ‒ Screen resolution RWTexture2D, DXGI_FORMAT_R32_UINT ‒ Per-Pixel Linked List UAV ‒ Structured Buffer, size = (number of pixels) x (avg hair layers) x (sizeof(LinkedListStructure)) ‒ Default average number of hair layers is 8 ‒ Linked list structure is currently 3 DWORDs: depth, coverage, tangent  Limited memory, but unbounded linked list ‒ This means too many fragments for a given pixel can overflow the PPLL ‒ Can cause artifacts ‒ Typically this only happens if the camera gets too close 21 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT 150.00 720p 100.00 1080p 50.00 0.00 Total A-Buffer Memory (MB) Linked List Head Per-Pixel Linked List
  • 22. TressFX 2.0 RENDERING PERFORMANCE RESULTS 3 2.5 2.5 2 2 1.5 TressFX 1.0 1 TressFX 2.0 1.5 TressFX 1.0 TressFX 2.0 1 0.5 0.5 0 0 Total Hair Render Time (ms) A-Buffer Pass Total Hair Render Time (ms) K-Buffer Pass R9 280x R9 290x > 2X performance increase! 22 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT A-Buffer Pass K-Buffer Pass
  • 24. TressFX Simulation Topics  TressFX 1.0 Simulation Overview ‒ Main Interest ‒ Simulation Overview ‒ Constraints ‒ Global shape constraints ‒ Local Shape Constraints ‒ Edge length constraints ‒ Problems  TressFX Beyond ‒ General Constraint Formulation ‒ Tridiagonal Matrix-free Formulation ‒ Solving Linear System ‒ Benefits 24 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 25. Main Interest  Main interest of TressFX simulation ‒ Performance, performance and performance! – DirectCompute ‒ Styled hair – bending and twisting forces are important ‒ Stability – position based dynamics - Conditions – wet, dry or heavy - Wind – helps express dynamics even the character in the idle mode 25 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 26. Simulation Overview load hair data precompute rest-state values – can be offline CPU while simulation running do apply gravity integrate apply GSC (Global Shape Constraints) GPU – DirectCompute apply LSC (Local Shape Constraints) apply wind apply ELC (Edge Length Constraints) collision handling vertex buffer 26 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT GPU – Rendering pipeline
  • 27. GLOBAL SHAPE CONSTRAINTS  GSC(Global Shape Constraints) ‒ The initial positions of particles serve as the global goal positions ‒ The goal positions are rigid w.r.t character head transform. ‒ You can think the initial positions are some cage and vertices are trapped in that cage during simulation. ‒ Easy and cheap. Help maintain the global shape but lose the detailed simulation initial goal position current position final position 27 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 28. LOCAL SHAPE CONSTRAINTS  LSC(Local Shape Constraints) ‒ The goal positions are determined in the local frames. ‒ Still the goal positions are transformed in world frames and applied to vertex positions. initial goal position current position final position 28 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 29. LOCAL SHAPE CONSTRAINTS – CONT’  Local Transforms ‒ As in robotic arm, an open-chain structure has joints and each joint has parent-child relationships to its connected joints. ‒ 𝑖−1 𝑇𝑖 is to transform (translate and rotate) child space(i) to its parent space(i-1) ‒ With local transforms in chain structure, we can get a global transforms. 𝑤 𝑇𝑖 = 𝑤 𝑇0 ∙ 0 𝑇1 … ∙ 𝑖−2 𝑇𝑖−1 ∙ ‒ Local frames should be updated at each particles 29 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT 𝑖−1 𝑇𝑖
  • 30. LOCAL SHAPE CONSTRAINTS – CONT’  Initialize and update local and global transforms ‒ Initialization is performed in CPU or offline only once. ‒ Update is performed at each frame in GPU. ‒ Update is serial process but independent to other strands. We update multiple strands in massive parallel processes in GPU. ‒ With local and global transforms, we can calculate target vertex positions for local shape constraints. ‒ Finally, update two neighboring vertices to get stable convergence. Updating position i Computing on local transform i-1 Zero 30 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 31. EDGE LENGTH CONSTRAINTS  how much stretched or compressed 0.5 31 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT unit edge vector
  • 32. Problems  Extreme acceleration ‒ When character makes a sudden move, it can generate extreme linear and angular acceleration which stretch hair very long. ‒ Even with high iterations with Edge Length Constraints, hair doesn’t recover the original length and as a result, hair can look too stretchy. ‒ Possible solution was to enforce Edge Length Constraints in the serial fashion from the root to the end of hair with extra damping – used for Tomb Raider ‒ We need a better way! And we did research! 32 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 33. Problems EXTREME ACCELERATION 33 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 35. General Constraint Formulation  35 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 36. Tridiagonal Matrix Formulation  Special Formulation for Chain Structure such as Hair ‒ We don’t want to solve a big matrix equation, especially in GPU! ‒ Let’s take advantage of linear topology and serial indexing  General case. We don’t want this!  Known. Easy to compute them.  Special case. Much simpler!  Unknown and what we are solving for 36 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 37. SOLVING LINEAR SYSTEM  Solving Linear System ‒ The formulation doesn’t require explicit matrix – Good for GPU! ‒ Diagonal, super and sub diagonal elements are non-zero - Sparse! ‒ The equation is diagonally dominant – Good for choice of direct solver! ‒ We can use tridiagonal matrix algorithm (Thomas algorithm) ‒ So we can solve it in GPU! 37 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 38. FUR CASTLE 38 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 39. FUR MUSHROOM 39 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 40. GRASS 40 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 41. BENEFITS  No more iterations for Edge Length Constraints ‒ Needn’t have to guess number of iterations ‒ Fixed computation cost ‒ Fast convergence 41 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 42. TressFX 2.0 CONCLUSIONS  TressFX 2.0 performance now makes hair rendering faster than the previous version ‒ More than 2X faster in some cases  TressFX is now fast enough to use on consoles  More modular code structure means easier porting to your game  Realistic physics for hair simulation can now be extended to other objects  Stay tuned for more! ‒ Ongoing research to improve and expand the use of this technology 42 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 43. REFERENCE  Real-time Hair Simulation with Efficient Hair Style Preservation – Han, et al. VRIPHYS 2012  Tridiagonal Matrix Formulation for Inextensible Hair Strand Simulation – Han, et al. VRIPHYS 2013 43 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT
  • 44. DISCLAIMER & ATTRIBUTION The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes. AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ATTRIBUTION © 2013 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc. in the United States and/or other jurisdictions. SPEC is a registered trademark of the Standard Performance Evaluation Corporation (SPEC). Other names are for informational purposes only and may be trademarks of their respective owners. 44 TressFX 2.0 and Beyond NOVEMBER 12, 2013 | AMD DEVELOPER SUMMIT