heterogeneous porosity modeling craig schroeder may 13, 2004

Post on 13-Jan-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Heterogeneous Porosity Modeling

Craig Schroeder

May 13, 2004

Outline

● Problem● Background● Past Work

– Representation– Booleans– Reconstruction

● Current Work● Future Work

Problem

● Given a porous object● Concise representation● Retain desired properties

(connectivity, flow, strength, etc.)● Reconstruct objects from stored

information● Reconstructed object should have

desired properties

Osteoporotic Bone, NASA

Background

● There has not been much background in computer science for representing porosity.

● Heterogeneous objects are being stored as material composition fractions, which is equivalent to density in this case.

● Storing exact internal geometry● Store by using unit cells

Background

● Storing volume fractions– Knowing the density is not always enough– Does not store important properties– Porosity information is completely gone!– Concise

Background

● Storing Exact Geometry– Do not lose property information– Stores a lot of information that we simply do not care

about– Geometric representation of porosity can be very

intricate and detailed– No two bones are exactly the same

Background

● Representation via unit cells– Requires user to set up the unit cells– Concise– Easy to compute properties– Easy to design an object with desired properties– Cannot be easily obtained from a sample object

Past Work

● Representation● Boolean operations● Reconstruction

Representation

● Use a stochastic function to measure properties of a porous object.

● A good choice should:– Be easy and efficient to compute– Tend to describe desired properties– Be suitable for reconstruction– Easy to store

Example Stochastic Functions

● Spherical contact distribution– Relatively easy to implement– Relatively efficient– Isotropic (unable to represent

directional features)– Theoretically fairly easy to

deal with– We do a variation on this

Example Stochastic Functions

● Greatest cube– Easy to implement– Relatively efficient to compute– Unable to distinguish axial directions– Theoretically difficult to deal with

● Minimum segment– Very difficult to implement– Very expensive to compute– Unable to distinguish directions

Our Stochastic Function

● Based on spherical contact distribution

● Measure distance to pore● Measure distance to material● Results in two distributions

– Storing both distributions makes Boolean inverses easy to do

– Makes the choice of pore and material virtually irrelevant.

Booleans – the Problem

● Can we do Booleans on this representation without the need to reconstruct?– Given the statistical description of A and B, what

might one expect, say, A union B to look like?– Cannot do exactly; A union B could result in vastly

different results. Eg, if A and B are checkboards

● Can we use this representation for modeling?● How good can we get? Good enough for use?

Inversion

● Because we store distributions for pore and material, inversion is simply a matter of swapping these; it is always exact.

● This is a useful operation to perform– If I have properties of an object, I can invert it so I

can reconstruct a scaffold for it– Could be performed after reconstruction instead of on

the distributions, but it does not matter.

Union, Intersection

● To do a union of A and B, you must do a union on the material distribution and an intersection on the pore distributions

● To do an intersection, unite the pore distribution and intersect the material distribution

Union Formula

= p r +rp ' x dx ƒ p ' r +r

p x dx

=V M • b o , x

V UƒV M ' • b o , x

V U

V M • b o , xV U

V M ' • b o , xV U

=+0

r

p x dx ƒ +0

r

p ' x dx +0

r

p x dx +0

r

p ' x dx

Intersection Formula∫==V M • b o , x

V U

V M ' • b o , xV U

=+0

r

p x dx +0

r

p ' x dx

Practicality

● Is doing Booleans on distributions worthwhile?● Pro

– Booleans are very cheap to compute on distributions– Does not require reconstruction

● Con– Booleans on reconstructed objects is straightforward– More accurate than on distributions– How useful might Booleans on porosity be?

Reconstruction

● How is the distribution computed in the first place?– Convert geometry into voxels– Measure the stochastic function at each voxel– Accumulate into histograms and store

● How can a distribution be updated upon a minor change?– The measure is local; only voxels near the change will

need recomputation (how near is near?)

Initialization

● Create a set of voxels in which to perform the reconstruction; we generally used 32x32x32

● Fill in voxels until the desired density is obtained– How do you choose the voxels to fill?– Structured speeds up reconstruction, but leaves

artifacts– Random seems to be the best choice, but is much

slower

Making Changes

● To make a change to the state, we want to choose two voxels and swap them– How do we choose them?– If both are pore or both are material, why swap?– If chosen randomly, convergence is too slow!– Choose first randomly, choose second by random

walk, requiring it to be beside a voxel of same type as first voxel; this speeds up convergence greatly

– Preserves density

Original Algorithm

● Initialize● Until some stopping condition

– Change state by performing a swap– Update distribution– Determine if the new state is better– If not, swap the cubes back

● The voxels are the output

Improved Algorithm

● Use simulated annealing● System starts warm and is slowly cooled.● If state is improved, keep the change● If the state is worsened, the change is accepted

based on how much worse it is and how warm the system is

● Permits the reconstruction to back up a bit● Helps to prevent getting stuck in local minima

Results

● Slow! Reconstruction on 32x32x32 takes hours● Excellent fit with simulated annealing● Output looks isotropic, which is expected

Full Cycle

Current Problem, Variation One

● Full 3D reconstruction takes hours● Can we do a simpler reconstruction onto the

surface of an object to give the appearance of what might result from the reconstruction

● Should be fast● Should look enough like the result to be useful

Approach

● Label polygons in a polyhedral representation of the surface of a model

● Randomly insert labels from the distribution, starting from the largest distances working in

● Propagate labels to enforce constraint imposed by the definition of the distributions

● Use the labels as offsets

● Offset vertices based on these offsets

Results

● Requires an error handling stage because the distribution tends not to fit quite right– Is the fit good? Probably not– Is it suitable for visualization? Probably not– Can it do anything? Yes!

PRETTY PICTURES!!

● It makes pretty pictures!

Current Variation of Problem

● Improve the surface reconstruction● Create an inverse of this surface reconstruction● Be able to go from surface to distribution and

back● Be able to go from solid to distribution to surface

for visualization● Should be fast● Visualization should look similar to 3D original

Ideas for Proceeding

● Continue with first approach– Not a faithful reconstruction– Will not be easy to create an inverse, if it is even well

defined– Still will not help the visualization problem

● Try something new– Ideas?

● Try doing 2D variation of 3D reconstruction

Reconstruction on 2D

● Do essentially a 3D reconstruction, but using the 2D world of the polygonal mesh

● A variation of this idea resulted in a close fit and rapid convergence.

● Much faster – completes in seconds on tens or hundreds of thousands of faces

● If labels are given, the distribution is measured in the same way the reconstruction measures it

Distance

● What does it mean to compute distance on the surface of a mesh?– Euclidean

● Makes more sense if you want to visualize 3D porosity● Technical complications – objects that are close can be far

apart on mesh

– Geodesic● Makes sense if you want to reconstruct a measured 2D

property● Avoids technical complications – objects that are close

together are close along mesh

Displacement Mapping

● Shift vertices along normals to create texture● How does one reverse a displacement map?● Should one try to visualize the labels by

displacement mapping?– Creates texture– Shading benefits

● Perhaps just color faces instead?– Simpler– Easier to invert

Theoretical Complications

● What does it mean to visualize a 3D distribution by reconstructing it in 2D?

● If I measure the 2D distribution from an actual 3D object, will the distributions match?– Probably not– Can I convert between them?

Future Work

● Try other functions besides the spherical contact distribution

● Try storing real properties (eg, flow)– Could replace others– Probably better to supplement another function– More inefficient to compute– Can this information be efficiently updated?– Would effectively force reconstructed object to have

desired properties

Future Work

● Distributions and modeling?● Better visualization?● Faster 3D reconstruction?

– Perhaps divide and conquer – do small reconstructions and combine into larger ones

– Perform reconstructions at increasing resolution to do rough convergence faster

Comments

● Ideas?● /* Comments? */

top related