50
Destruction Erwin Coumans Bullet Architect @ AMD

Gdc12 erwin coumans_destruction

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Gdc12 erwin coumans_destruction

Destruction Erwin Coumans Bullet Architect @ AMD

Page 2: Gdc12 erwin coumans_destruction

Our open source work

Page 3: Gdc12 erwin coumans_destruction
Page 4: Gdc12 erwin coumans_destruction
Page 5: Gdc12 erwin coumans_destruction
Page 6: Gdc12 erwin coumans_destruction
Page 7: Gdc12 erwin coumans_destruction
Page 8: Gdc12 erwin coumans_destruction
Page 9: Gdc12 erwin coumans_destruction
Page 10: Gdc12 erwin coumans_destruction
Page 11: Gdc12 erwin coumans_destruction
Page 12: Gdc12 erwin coumans_destruction

Offline versus runtime

●Geometry preparation and artist tools

●Runtime destruction methods

Page 13: Gdc12 erwin coumans_destruction

Geometry Preparation

Voronoi shatter, slicing Runtime Destruction

Boolean operations

Canned animation

Convex decomposition

Real-time Booleans

Tetrahedralization FEM, particle based

Simplification Rigid body & Hybrid

Page 14: Gdc12 erwin coumans_destruction

Voronoi shatter

Page 15: Gdc12 erwin coumans_destruction

Voronoi generation

Distribute point set S within the 3D model For each point A in S { Create cube around the point For each point B in {S-A} Create a plane between point A and B Slice the cube by this plane Boolean Intersect cube with model }

Page 17: Gdc12 erwin coumans_destruction
Page 18: Gdc12 erwin coumans_destruction
Page 19: Gdc12 erwin coumans_destruction

Maya Shatter Recipe

● Create a particle emitter

● Create a polyhedral mesh

● Convert the particles to locators

● Select mesh and then particles

● Create a mesh from each locator

● Select mesh then locators

Page 21: Gdc12 erwin coumans_destruction

Electric Fields

● See the 'Fragged' article in GDMag 2010, December

i

n

ir

qrE

i

i ˆ1

42

0

Page 22: Gdc12 erwin coumans_destruction

Boolean operations

Union Difference Intersection

Modeled and Rendered in Blender. Made by Captain Sprite

Page 23: Gdc12 erwin coumans_destruction

• Merging BSP trees yields polyhedral set

operations, Bruce Naylor, SIGGRAPH '90

Polyhedral Booleans

Page 24: Gdc12 erwin coumans_destruction

Collision shapes types

Convex Concave

Page 25: Gdc12 erwin coumans_destruction

Convex Decomposition

●(Semi) Automatic physics shape generation

Page 26: Gdc12 erwin coumans_destruction

HACD

●Hierarchical Approximate Convex Decomposition by Khaled Mammou, ICIP 09

●Bottom up, merging convex clusters

●http://sourceforge.net/projects/hacd

Page 27: Gdc12 erwin coumans_destruction

HACD in one slide

Dual graph

Decimation operator

Measuring concavity

Page 28: Gdc12 erwin coumans_destruction

HACD in Maya

Page 29: Gdc12 erwin coumans_destruction

HACD in Bullet

Page 30: Gdc12 erwin coumans_destruction

Tetrahedra Creation

• Tetrahedralization by 3D Delaunay Triangulation,

Boris Delaunay, 1934

Page 31: Gdc12 erwin coumans_destruction

Tetrahedralization

●Netgen, LGPL, http://sourceforge.net/projects/netgen-mesher

●Tetgen

●Maya 2012 with DMM plugin Pixelux Digital Molecular Matter

Page 32: Gdc12 erwin coumans_destruction

Geometry Preparation Runtime Destruction

Voronoi shatter, slicing Canned animation

Boolean operations Real-time Booleans

Convex decomposition FEM, particle based

Tetrahedralization Rigid body & Hybrid

Page 33: Gdc12 erwin coumans_destruction

Real-time booleans

●Stan Melax, http://melax.googlecode.com

Page 34: Gdc12 erwin coumans_destruction

●http://box2d.org, Erin Catto

Rigid bodies

Page 35: Gdc12 erwin coumans_destruction

Breakable Rigid bodies

●Breakable constraints

●Composite single rigid body

Page 36: Gdc12 erwin coumans_destruction

Breakable constraints

Page 37: Gdc12 erwin coumans_destruction

Breakable constraints

• Break an object into parts

• Automatically create constraints

• based on contact points

(collision detecion)

• assign a breaking threshold to

constraints

• At run-time propagate

a collision impulse

– break connections if the

impulse > threshold

Page 38: Gdc12 erwin coumans_destruction

Stiffer constraints

Increase number of constraint solver iterations for the fixed constraints

Page 39: Gdc12 erwin coumans_destruction

On-line voronoi shatter

See Bullet/Demos/VoronoiShatterDemo

Page 40: Gdc12 erwin coumans_destruction

Composite single body

See Bullet/Demos/FractureDemo

Page 41: Gdc12 erwin coumans_destruction

Composite method

• Break an object into parts

• Automatically create

connections

• based on contact points

(collision detecion)

• assign a breaking threshold

to connections

• At run-time propagate a

collision impulse

– break connections if the

impulse > threshold

– determine disconnected

parts using union find

– create new rigid bodies for

each disconnected part

– update inertia tensor and

velocity

Page 42: Gdc12 erwin coumans_destruction

Structural Analysis

Red Faction: Spread calculations over multiple frames

Ground

Layer 1

Layer 2

Layer 3

Page 43: Gdc12 erwin coumans_destruction

Other methods

●Position based dynamics

●Finite element method

●Hybrid

Page 44: Gdc12 erwin coumans_destruction

1D Rope 2D Triangle 3D Tetrahedron

Connected particles

Page 45: Gdc12 erwin coumans_destruction

• Bullet, http://bulletphysics.org

Position based dynamics

Page 46: Gdc12 erwin coumans_destruction

Finite element method

• Original from OpenTissue, Kenny Erleben et. al.

• https://github.com/erwincoumans/experiments/tree/master/dynamics/corotational_fem

Page 47: Gdc12 erwin coumans_destruction

Stiffness warping

Page 49: Gdc12 erwin coumans_destruction

Hybrid method

●Composite rigid body with static FEM analysis

● Matthias Müller et al. Eurographics CAS 2001

Page 50: Gdc12 erwin coumans_destruction

Thanks!

● http://bulletphysics.org

● http://github.com/erwincoumans

● http://youtube.com/erwincoumans