講義内容 - kondolabkondolab.org/archive/2000/lect/cad/cadpdf/cad2006-11.pdfrepresent free-form...
TRANSCRIPT
Represent Free-Form Surfaces with Subdivision Methods
Kunio KONDOCAD 工学第11回
細分割曲面
2006
2
講義内容第1回 ガイダンス CAD入門
第2回 コンピュータグラフィックスによる表現技術
第3回 設計開発におけるコンピュータグラフィックス
第4回 認知科学とデザイン
第5回 認知科学とデザイン
第6回 CADのためのインタフェース(その1)
第7回 CADのためのインタフェース(その2)
第8回 CAD図面と立体形状
第9回 形状モデリング 多面体
第10回 形状モデリング 局所変形
第11回 形状モデリング 細分割曲面
第12回 プロダクトモデリング
第13回 CADとプロダクトデザインの現状
3
講義内容
細分割曲面
スケッチ入力による細分割曲面の生成
立体形状の展開のための切断線の生成
4
コンピュータと人の協力システム
要求 知識
発想
外部モデル
インタラクション
コマンド解釈実行制御
モデル処理
データベース
図面NCデータロボット制御
人 計算機インタフェース
6
Research Position and Background
CAD/CAM CG
Representation of Free-Form SurfaceGeometric Modeling
•Hardware(Input/Output)•NC Process•Data Exchanger•Graph Data Management•Interface Technology•Geometric Modeling…...
•Hardware(Input/Output)•Animation•Image Processing•Rendering Technologies•Morphing •Representation of Natural Phenomena•Interface technology•Data exchanger•Geometric Modeling…..
7
Geometric ModelingSolid Model Surface Model
Subdivision
NURBSSubdivision
8
Mesh Modeling
•Polyhedral Meshes
Triangular Meshes
•Input Method:3D input Devices(Laser Scanner)
•Subdivision Surfaces(Data: Polyhedral networks. Scanned in Data or createdby designers)
Representation of Free-Form Surfaces in Geometric Modeling
Refinements
9
Representation of Free-Form Surfaces in Geometric Modeling
•Parametric PatchesBezier, Coons, B-spline, NURBS
•Trimmed NURBS
Cumbersome and Expensive, Easy to make numerical error.Problems:
1974. Chaikin’s algorithm --- A quadratic B-Spline curve1978. E.E.Catmull, J.H.Clark --- B-Spline surfaces (c1,c2 continuity)1978. D.Doo, M.Sabin --- B-Spline surfaces (C1 continuity)1986. S.T.Tan and K.C.Chan --- High order subdivision surfaces1987. A.H. Nasri --- Interpolation points in Doo/Sabin surfaces1987. Loop --- Loop Scheme, Triangular Polygon1988. P. Brunet --- Shape handles in (Nasri) Doo/Sabin surfaces1990. N.Dyn,D.Levin,J.Gregory -- Butterfly Subdivision surfaces1993. M.Halstead,M.Kass, --- Interpolation using Catmull/Clark surfaces
T.DeRose1994. Hoppe --- Modified Loop Scheme1995. U.Reif --- A Serious analysis on the smoothness
properties of subdivision surfaces1995. J. Peters, U. Reif --- box-spline (midedge)subdivision surfaces1996. D.Zorin, P.Schroder --- Interpolation butterfly subdivision surfaces1996. Kobbelt --- Kobbelt Interpolation Quadrilateral Scheme1997. A.H. Nasri --- Curve interpolation in Doo/Sabin surfaces1998. T.DeRose, M.Kass --- Subdivision Surfaces in Character Animation
(modified Catmull-Clark scheme)1998. Sederberg --- Non-Uniform Recursive Subdivision Surfaces1998. Suzuki --- LSF(Local Surface Fitting)
Research History of Subdivision Surfaces
11
Free-Form Surfaces
12
Chaikin’s algorithm (1974)
Vi-1
Vi Vi+1
Vi+2
V”i V’i+1
11
1
43
41'
41
43
++
+
+=
+=
iii
ii"i
VVV
VVV
<i<ni 1)(V
Quadratic BQuadratic B--splinespline curvecurve
V’i
V”i-1
V”i+1
V’i+2
13
Chaikin’s Algorithm
http://www.css.tayloru.edu/~btoll/s99/424/res/ucdavis/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html
14
Chaikin’s Algorithm
http://www.css.tayloru.edu/~btoll/s99/424/res/ucdavis/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html 15
Doo-Sabin subdivision surfaces
Original Cube The 1st subdivision The 2nd subdivision
The 3rd subdivision The 5th subdivision
Examples
Initial Polyhedron
The Original polyhedron
The Doo/Sabinsurface
The Catmull/Clarksurface
The polyhedronafter fillet process
The Doo/Sabinsurface after fillet process
The Catmull/Clarksurface after fillet process
Examples
18
Fillet operations with Subdivision Surfaces
Fillet Operations
Fillet Operations
: Doo-Sabin subdivision process
The original The original polyhedronpolyhedron
The Doo/Sabinsurface
The Catmull/Clark surface
The polyhedron after fillet process
The 1st Doo/Sabinprocess
The 5th Doo/Sabinprocess
The 1st Catmull/Clark process The 5th Catmull/Clark
process
Fillet OperationsFillet Operations
Examples
The original The original polyhedronpolyhedron
Doo/SabinDoo/Sabin surfacesurfaceof polyhedronof polyhedron
The polyhedronThe polyhedronafter fillet process(1)after fillet process(1)
Doo/SabinDoo/Sabin surface surface after fillet process(1)after fillet process(1)
The polyhedronThe polyhedronafter fillet process(2)after fillet process(2)
Doo/SabinDoo/Sabin surface surface after fillet process(2)after fillet process(2)
Examples
The Original polyhedron
The The CatumllCatumll/Clark /Clark surfacesurface
The The Doo/SabinDoo/Sabinsurfacesurface
The Polyhedron after fillet process
Fillet OperationsFillet Operations
The 2nd The 2nd Doo/SabinDoo/Sabinprocessprocess
The 5th The 5th Doo/SabinDoo/Sabinprocessprocess
The 2nd The 2nd CatumllCatumll/Clark /Clark processprocess
The 5th The 5th CatumllCatumll/Clark/Clarkprocessprocess
Examples
Fillet OperationsFillet Operations
Examples
23
The straight segment in Chaikin algorithm
M
The 3rd The 4th The 4th The 2nd
AT-Angle=0.1
Dead v-face Dead e-face Dead f-face
Doo/Sabin Method
Adaptive refinements(Proposed method)
Polygon
AT-Angle=10
After the 3rd subdivision process.
After the 4th subdivision process
Local Subdivision
Simplification
Subdivision Surfaces with some features
Zorin SGISGRAP’98 COURSE 36
29
Fillet Operations for Triangular Meshes
30
Motivation
Loop Subdivision Process
Drawn by Designers
Generating Complex Polyhedron Loop Subdivision Process
Fillet Operation
32
Loop Subdivision Surfaces
Original Polyhedron After 1st Subdivision
After 2nd Subdivision After 3rd Subdivision After 5th Subdivision
34
Fillet Operations ProcessStep 1: Calculate Fillet Value for each edge.
Step 2: Generate triangles by fillet subdivision rules.
Step 4: Implement Corner-Fitting process for each vertex.
Step 3: Adjust fillet points.
Step 5: Generate smooth Loop shape.
35
Examples
The Loop Subdivision Surface
The Original Polyhedron
The Generated Complex Polyhedron
Fillet Operation
36
Examples
The Original polyhedron
Fillet Operation
The Generated Complex Polyhedron
The Loop Subdivision Surface
37
Different Fillet Values
(a) Original Polyhedron (b) Loop surface (c) Loop surface (d) Loop surface after 1 iteration after 2 iterations after 3 iterations
(i) Loop surface (j) Loop surface (k) Loop surface (l) Loop surfaceafter 3 iterations after 3 iterations after 3 iterations after 3 iterations(Fillet value: 0.2) (Fillet value: 0.3) (Fillet value: 0.4) (Fillet value: 0.5)
(e) After fillet operation (f) Loop surface (g) Loop surface (h) Loop surface(Fillet value: 0.1) after 1 iteration after 2 iterations after 3 iterations
46
Adaptive Subdivision Scheme for Triangular Meshes
47
ProblemTraditional Subdivision Scheme
Higher costSubdivision uniformly
Adaptive Subdivision SchemeLower costLocal subdivision is possible
48
Proposed MethodConical Angle method
Area (C0,C1,C2): limit surface of triangle (V0,V1,V2)
Analyze the planar areas in subdivision surfaces
Planar areas analysis
49
Conical Angle Definition})N,angle(N{max 1ii
i +CA =
The dead face will not be subdivided in the further subdivision steps.
Ni is the normal vector of face iDead Face: (a,b,c)Dead Edge: (a,b), (a,c), (b,c)Dead Vertex: a, b, c.
51
Adaptive Subdivision Refinement
Generate new faces with new subdivision rules for each face
Output results
Smooth Enough?
Give a tolerance (0~180)
Y
N
(n+1)-th level subdivision
Calculate CA for each vertex
Set flag of flat or dead to each vertex
52
Analysis of Results
Loop subdivision schemeNumber of triangles: 19752
Our proposed schemeNumber of triangles: 9172
53
Computational Analysis13056 52224 12606 32512
11040 21420 6912 8962
Regular subdivision Our method with CA=7
Our method with CA=11 Our method with CA=22
We compare the costs of our scheme on a bunny shape.
(3.45%) (37.74%)
(15.44%) (58.98%) (47.06%) (82.83%)
a a1
a2 a3
b b1
b2 b3
61
3D Sketch Interpreter System by Using T-LIB
62
ProblemCAD system
DifficultMany commandsTime consuming3D
SketchEasyQuick, Rough, Vague2D
63
Research Purpose
Idea 3D Surface Model3D Solid Model
Fillet, SubdivisionSketch Interface
Modeling Interface
A 3D Sketch Interpreter System by T-LIB with Subdivision Surfaces for Geometric Modeling
64
Motivation
1. 3D Sketch Interpreter System by Using T-LIB
2. Fillet Operation for Triangular Meshes
3. Adaptive Subdivision for Triangular Meshes
Generate complex polyhedra
Make freeform surfaces
Generate polyhedra from freefrom sketch lines
65
Introduction1. OriginalityThe idea is to use a template topology library(T-LIB) as an essential tool to reconstruct and modifty 3D object with sketch lines.
Sketch Lines Local Edge Graph Gi+1
Gi T-LIB
3. Edge Graph
2. Modeling process
66
System Overview
Reconstruct 3D shapefrom T-LIB
Analyze topology
Exist? Yes
Input strokes
Analyze the local region around the strokes
Match library (T-LIB)OK?
No
Fillet Operation
Output data
Adaptive Subdivision
Build 2D Edge Graph
3D ObjectExist?
Project 2D Edge Graph to 3D object
and Modify it
New template definition
Yes No
No
Yes
67
Template Library (T-LIB)
Triangular Pyramid
Triangular Prism
Cube
3D Shape2D Edge GraphT-LIB
68
Basic Shape ReconstructionInput stroke on Sketch Plane
Build Edge Graph
Analyze topology
Create 3D shape from T-LIB
The basic 3D shape is calculated by evaluating a camera normal and using parallel projection.
(g-de)( )2+2(cg-cde) +(fh+gc2-cdh-cef)=0z
1vz
1v
69
3D Shape Modification
3D object
Input stroke
Modify3D object
Q1: About parallel information?A: Use angle (<θ) threshold.
Q2: About cracking problem?A: Detect firstly.
Input stroke on Sketch Plane
Build Edge Graph
Analyze topology
Modify 3D shape
Project Edge Graph to 3D object
71
Modeling a Mouse-like Shape
72
Modeling a Clock-like Shape
73
Modeling a Clock-like Shape
76
Modeling a Printer-like Shape
77
Modeling a Printer-like Shape
84
ポリゴンへの切断線生成手法
背景:ストロークによるメッシュモデルの切開
人台メッシュモデルを元に型紙を作成したい
マウスストロークで切開線を指定したい
85
背景:スケッチインターフェース
スケッチインターフェースによるモデリングが研究されている
ストロークの形で「立体を切断する」機能は無くてはならない
[Igarashi99]
[Owada04]
86
ストロークによる切断の原理
ストロークを投影面に垂直にスイープ(切断面)
対象形状と切断面との交わりの検出
三角形の分割
数値演算の誤差で結果が破綻することがある→厳密な実装は困難
87
目的:より簡易な実装方法を提案する
ラフな解が許容されるストロークを利用している
再現性が無い。誤差が含まれる↓
ストローク形状の多少の変更は許容される
三角形メッシュで表現されている
曲面の近似表現↓
元のメッシュの解像度以上の詳細情報は重要でない
簡易な実装方法←厳密な解を追求しない
88
提案手法の概要 1モデルの頂点移動
ストロークに乗るようにモデルの頂点を移動する演算誤差による交差判定ミスの除去
扁平三角形の生成防止
近接頂点への移動 近接辺への移動と頂点挿入
89
提案手法の概要2ストロークの簡略化
1つの三角形を複数回横切らないように簡略化する
実装の簡略化↑わずか3つの分割パターンの実装で対応可能
細かい三角形が生成されることを防止
91
実験結果1
92
実験結果2
93
実験結果3 (鋭角点を含む場合)
94
ストロークによるメッシュモデルの切開
98
まとめ
細分割曲面
スケッチ入力による細分割曲面の生成
立体形状の展開のための切断線の生成