Motivation Skeleton needed for mesh deformation: Manual construction: tedious Automatic construction: quality problems Idea: ad- hoc by sketching Input: Stroke(s) on mesh surface Output: 3D skeleton 3D region of interest
Related Work Control structures: FFD lattice [SP86] Wires [SF98] Skeleton [CGC*02, YBS03] Ad-hoc control structures: Scalar field [HQ03] Silhouette [NSAC05] Strokes on surface: Small deformations [OSSSJ05, Buj06, CJ006] Large deformations [ZHS*05, KG05]
Kho & Garland [KG05] Input: Single stroke on mesh surface Output: 2D control structure – the stroke itself Two cutting planes delimiting region of interest Limitations: No 3D skeleton No 3D region of interest Cutting planes always orthogonal to sketch plane Complex deformations require multiple steps
Our Approach 3D skeleton: By projecting from surface inward 3D region of interest: Described by cuts orthogonal to the skeleton Chicken-and-egg problem: Skeleton: projection into region of interest Region of interest: built around skeleton Our approach: Build cutting planes for points along the stroke Find consistent orientations by optimization Build skeleton by projecting toward cut centers
Overview
1: Stroke on Surface
2: Cutting Planes
3: Cuts
4: Optimization
5: Projection
Cutting Plane Initially orthogonal to the stroke Can be rotated around: Surface normal: α Binormal in tangential plane: β
Iterative Local Optimization Process: for each plane: set αi = 0 and βi = 0 for each iteration: calculate αi,j and βi,j αi = αi + Σ wj·αi,j βi = βi + Σ wj·βi,j Optimization criteria: Neighboring planes should be nearly parallel Cuts should not intersect each other Planes should cut “naturally” across the mesh
Global Adjustment Local criteria may rotate planes inconsistently: Global consistency is very difficult to assess Our method – periodic sweeps: αi+1 = αi and βi+1 = βi Aligns each plane with its predecessor Successive sweeps propagate new orientations
Dynamic Programming Graph: Vertex: candidate plane Edge: measure of consistency between planes Least cost path: Optimal plane arrangement Found by dynamic programming (“backtracking”) Edge length weighted sum of: Difference in angle Difference in cut circumference Difference in form factor β0,0 β0,1 β0,2 β1,0 β1,1 β1,2 β2,0 β2,1 β2,2
Challenges Weights: Manual tuning necessary No universally applicable settings Iterative optimization: Rotation must be artificially constrained Without global adjustment: Inconsistent cutting plane arrangements With global adjustment: Alignment dominated by first plane Dynamic programming: Only one angle can be optimized due to cost
Alternative: Two Strokes User specifies first and last cutting planes Two interpretations possible: Regression plane: plane fully specified by user Regression line: rotation axis specified by user Geodesic between planes projected as skeleton
Summary Proposed 3D control structure construction: 1. Region of interest: build and align cutting planes 2. Skeleton: project from surface inward Results: Single stroke: Weights require tuning Global assessment difficult Dynamic programming expensive Two strokes: Promising approach Global shape delimited by given planes Intermediary planes need optimization
Future Work Refine the two-stroke approach: Stroke interpretation: Regression plane, regression line, ... Intermediary planes: Reduce/eliminate optimization weights Integrate with mesh deformation method: Deform skeleton to match a target shape Use 3D region of interest to prevent self- intersections