Download presentation

Presentation is loading. Please wait.

Published byJuan Hail Modified over 4 years ago

2
DX11 TECHNIQUES IN HK2207 Takahiro Harada AMD

3
HK2207 Demo for Radeon HD 6970 Based in Hong Kong 2207 Not just a single technique Cinematic with practical effects – Physics effects Bullet CPU-physics CS rigid body – Procedural adaptive tessellation – Lighting effects Deferred rendering Post effects 28th Feburary 2011AMDs Favorite Effects

4
Live Connection 28th Feburary 2011AMDs Favorite Effects

5
CS RIGID BODY SIMULATION 28th Feburary 2011AMDs Favorite Effects

6
CS Rigid Body For visual effect Simulation using CS – CS5.0 has full functionality to realize simulation Key Features of CS – Group shared memory Tree traversal Narrowphase(NP) – Atomics Collision – Random write 28th Feburary 2011AMDs Favorite Effects

7
Particle Representation Approximate shapes with particles Arbitrary convex mesh input – Scan conversion Integration – A thread, rigid body Collision – A thread, particle Collision with mesh – Conversion to particles – Collide against triangles GPU Gems3, Real-time Rigid Body Simulation on GPUs 28th Feburary 2011AMDs Favorite Effects

8
BVH used for broad phase collision detection – Contains static scene triangles – Node : 4 children, 4 volumes – Pack a few triangles in a leaf Traversal efficiency Separate data to another buffer Mesh Collision (BVH) 28th Feburary 2011AMDs Favorite Effects v0 v1v2v0v1v2v0v1v2v0v1v2 TriData

9
Tree traversal – Traversal stack located in Thread Group Shared Memory(TGSM) Traversal and Narrow phase(NP) are separated to keep high efficiency on the GPU – Less divergence – Reduce local resource usage Mesh Collision (BVH) 28th Feburary 2011AMDs Favorite Effects

10
Narrow Phase Output from tree collision – HitData, List of triangle indices per body – Sparse 1 body x 1 leaf collision == n particles x m tris – Cache relevant triangles in TGSM Reduce memory traffic – Use 1 thread group(TG) for a body 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 2348 start n n n n Body0Body1Body2Body3Body5 HitData 28th Feburary 2011AMDs Favorite Effects Body4

11
Narrow Phase: 1 Thread Group 1 thread : 1 particle Use 1 thread as a controller of the SIMD – Read HitData -> LeafData – Share LeafData (TGSM) – All the threads are used to read 64 tris in parallel 64 collisions in parallel – AABB overlap test – 1 Triangle vs 64 particles collision 28th Feburary 2011AMDs Favorite Effects Void NP() { Bring64ParticlesIntoGPRs(); if( LOCAL_IDX == 0 ) LoadAllCollisionInfo(); BARRIER; forAllLeaves(;;) { forAllTriangles(;;j+=TG_SIZE) { fillTriangle( ldsVtx, ldsAabb, LOCAL_IDX ); BARRIER; for(k<TG_SIZE;k++) { if( ovelaps(ldsAabb[k]) ) collide( pData, ldsVtx[k] ); }

12
Inefficiencies Hit data buffer is sparse – We launch too many TGs – TG with 0 hit returns after mem access Controller sections – Only controller is working – 63 threads are idle Redundant overlap test(Particle-Tri) – Body-Tri test is enough Leaf is not completely filled – Several leaves are colliding – Can issue more memory requests 28th Feburary 2011AMDs Favorite Effects

13
Introduce Prepass Hit data buffer is sparse – We launch too many TGs – TG with 0 hit returns after mem access Controller sections – Only controller is working – 63 threads are idle Redundant overlap test(Particle-Tri) – Body-Tri test is enough Leaf is not completely filled – Several leaves are colliding – Can issue more memory requests Use Append Buffer – A body/thread Use 64 threads to read – Less single thread work Do Body-Tri test Pack triangle Data – LeafA(4), LeafB(4) -> 8 Reduce local resource usage Better HW occupancy 28th Feburary 2011AMDs Favorite Effects

14
Pre Narrow Phase Use 1 thread for a body – Read HitData -> LeafData -> Triangle Body-Triangle AABB test – 64 Particle-Triangle collisions – Store colliding triangle indices If any collide – Write to append buffer Write triangle index to contiguous mem Sorting by n hits improves divergence – Local sort 28th Feburary 2011AMDs Favorite Effects Append

15
Improved Narrow Phase Void NP() { Bring64ParticlesIntoGPRs(); if( LOCAL_IDX == 0 ) LoadNumHits(); BARRIER; for(i<ldsHitTriData.m_n;i+WG_SIZE) { fillTriangle( ldsVtx[LOCAL_IDX], i+LOCAL_IDX ); BARRIER; for(j<WG_SIZE;j++) { collide( pData, ldsVtx[j] ); } 28th Feburary 2011AMDs Favorite Effects Void NP() { Bring64ParticlesIntoGPRs(); if( LOCAL_IDX == 0 ) LoadAllCollisionInfo(); BARRIER; forAllLeaves(;;) { forAllTriangles(;;j+=TG_SIZE) { fillTriangle( ldsVtx, ldsAabb, LOCAL_IDX ); BARRIER; for(k<TG_SIZE;k++) { if( ovelaps(ldsAabb[k]) ) collide( pData, ldsVtx[k] ); }

16
Result 28th Feburary 2011AMDs Favorite Effects

17
MAKING IT LOOK PRETTY … 28th Feburary 2011AMDs Favorite Effects

18
Procedural Adaptive Tessellation Add surface detail using DX11 tessellation Hull shader – Calc tessellation factor using depth Tessellator Domain shader – Interpolate vertex position, normal – Displacement factor using 3D Perlin noise Evaluate in local space – Displacement vector – Displace Pixel shader – Normal is gradient 28th Feburary 2011AMDs Favorite Effects

19
Cracks Different tessellation factor on edge – Objects are small enough – Sample depth at the center Discontinuous displacement vector – Normal is not continuous – Use convexity of geometry – Interpolate normal and vector from center 28th Feburary 2011AMDs Favorite Effects

20
Other Techniques Used Deferred shading Depth of field Emissive materials Lens ghosting and flare Aerial perspective Reflections Tone mapping LUT color correction 28th Feburary 2011AMDs Favorite Effects

21
28th Feburary 2011AMDs Favorite Effects

22
Color 28th Feburary 2011AMDs Favorite Effects

23
Light 28th Feburary 2011AMDs Favorite Effects

24
Emissive etc 28th Feburary 2011AMDs Favorite Effects

25
DOF 28th Feburary 2011AMDs Favorite Effects

26
End Questions? Acknowledgement – Jay McKee, Jason Yang, Justin Hensley, Lee Howes, Ali Saif, David Hoff, Abe Wiley, Dan Roeger 28th Feburary 2011AMDs Favorite Effects

Similar presentations

OK

Interactive Ray Tracing of Dynamic Scenes Tomáš DAVIDOVIČ Czech Technical University.

Interactive Ray Tracing of Dynamic Scenes Tomáš DAVIDOVIČ Czech Technical University.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google

Ppt on self awareness images Ppt on area of a parallelogram worksheet Ppt on resistance temperature detector rtd Ppt on 3 allotropes of carbon Download ppt on indus valley civilization social classes Ppt on history of indian mathematicians Ppt on hydraulic gear pump Ppt on obesity prevention Ppt on inhabiting other planets in the milky Ppt on area of parallelogram and triangles for class 9