Shape Modeling with Point-Sampled Geometry Mark Pauly, Richard Keiser, Leif P. Kobbelt, Markus Gross...

Preview:

Citation preview

Shape Modeling withPoint-Sampled Geometry

Mark Pauly, Richard Keiser, Leif P. Kobbelt, Markus Gross(ETH Zurich and RWTH Aachen)

Abstract

• Modeling framework with point-sampled geometry

• Hybrid representation– Point clouds– Implicit surface with MLS

• General operations on models– Booleans operations– Deformations

Surface representations

• Implicit surfaces: level sets, RBF+ Topology defined– Non-intuitive to control– Rendering is slow

• Parametric surfaces: splines, subdivision surfaces, triangle meshes+ Simplicity– Extreme deformation– Connectivity information

Introduction

Hybrid surface

• Unstructured points

• Implicit surface– Signed distance– Normal defined

• Boolean operations– Preserve shard edges

Freeform modeling

• Global deformation– Preserve the sampling density

• Tools:– Push, pull, twist and etc.

• Topology control

A component in a modeling system

• Takes scanner inputs

• Rendering techniques– QSplat [Zwicker 01]– [Rusinkiwicz 00]– [Botsch 02]

• Fast with free LOD

Related work

• Points primitive– Szeliski and Tonnesen 92

• Oriented particles

• Physical simulation

– Witkin and Heckbert 94• Blend operation

• Limited deformations

• Freeform modeling– Chang and Rackwood 94

• Wires system

• Dynamically sampling– Welch and Witkin 94

• Trangle mesh

• Vertex split and edge collapse

– Kobbelt 00• Multiresolution

• Dynamic mesh connectivity

Hybrid surface model

• Input points with attributes

• Moving least squares (MLS)

Moving least squares

1. Local reference domain

2. Minimize to find H

3. Minimize to find g

4. proj(r)=q+g(0,0)n

MLS kernel function

• Small h cause Gaussian decay faster

• Small h means approximation more local

• MLS act as an low pass filter

Adaptive MLS

• If the sampling of points is adaptive

• k ranges [6:20]

Boolean operations

• CSG in a binary tree.

• Computing the boolean operation

1. Find

2. New set of intersection curves

3. Crisp curves

Inside outside classification

Optimization

• 90% can be approximated

• Else use MLS projection to find y

• Local coherence

– If x’ is within the sphere center at x, radius is

Classification table

• Points in Q1 is picked from P1 only if– p is outside of surface defined by P2– Similarly for Q2

Intersection curves

• A set of points for intersection curves

1. Find points near the intersection using the distance function

2. Closest point pairs (q1 in Q1, q2 in Q2)

3. r: in the intersection of the tangent planes

4. Project r to new q1 and q2

5. Repeat step 3 to 5 for 3 iterations

Intersection curves diagram

Adaptive refinement

• Match sample density

• Use a simple subdivision

• New p for the Newton iteration

Rendering sharp creases

• Surface splatting [Zwicker 01]

• Surfel: elliptical splat– Intersection curve points– Clip against two normals

Sharp creases results

Freeform deformation

• Bending, twisting, stretching, compressing

• Interactive speed

• Intuitive control

• Global operation

Deformable regions

• Region zero: not selected

• Region one: handle

d0=0, d1=x, t=b(0/(0+x))=0

d0=dist(p and x0)=x, d1=0, t=b(x/(x+0))=1

d0=dist(p and x0)=x, d1=min(p and x1)=y, t=b(x/(x+y))

Applying translation and rotation

• Demo

Blending function

Rotation and twisting results

Topology control

• Self intersections

• Collision detection– Nearest point for each point in Xd– Within the sphere: collision free

Collision handling

1. Undo (disallow self intersections)

2. Union (sharp edges)

3. Blending– Inter particle potential [Szeliski 92]– Define a local neighborhood

Topology results

Dynamic sampling

• Cause: Distortion and insufficient sampling

• Goal: insert and remove points

• Feature: Interpolate attributes– Color– Texture value

Measuring surface stretch

• u and v are on the tangent plane– Orthogonal– Unit length

• Local anisotropy– Ratio of the two eigenvalues

• Split a point into two

Dynamic sampling results

Filter operations

• Problem: what to do with the new points

• Relaxation [Turk 92]

• Confined radius of influence

• Projection back to the tangent plane

Interpolation (with Zombies)

• Scalar values

• Drifting happens when split happens

• Zombies are fixed– Only used for the attributes– Delete after each edit operation

Interpolation results

Downsampling

• Special case:– Shrink then grow– Lost values cause blur

• Preserve old value

• Garbage collection

Results and discussion

• Pointshop3D

• Multiresolution surface modeling– Detail vectors [Zorin 97]– Spectral decomposition [Guskov 99]

69,706 295,220

69,268 222,955

25,020 non-uniform

100,269

Implementation

• Closest points query:– Kd-tree– Building 300,000 points in 0.23 s– Querying 10 points in 4.5e-6 and 6.2e-6 s

Dynamic updates

• Boolean classification– Two static structure

• Free-form deformation– No update until an edit session is done

• Collision detection– Only for deformable region with the zero region– Cannot handle collision of deformable regions

• Dynamically sampling– [Linsen 02]– Dynamic update at insertions and relaxation

Performance

• No connectivity to update

• Handling one million points

• Pointshop3D software rendering– 50% of the total computation is rendering

• Software renderer [Botsch 02]

• Hardware renders [Rusinkiewicz 00]

Conclusion and future work

• A solid framework for modeling

• Provides basic operations

• Extends to traditional surface modeling techniques

• Efficiency and performance

• Future work:– Hairy or furry models, plants– Dynamic simulation

Recommended