Computer Graphics 第6回 モデリング2 曲線・曲面,その他の表現手法 芝浦工業大学情報工学科 青木 義満 I’ll get started with Introduction and Conventional works around our study, then mention our motivation and goal. Next, I’ll explain our 3D Face Modeling Method and its medical application. Finally, I’ll conclude this presentation with some future works. 芝浦工業大学情報工学科 青木 義満
曲線・曲面 曲面の例 曲線・曲面 曲線・曲面の分類 コンピュータ内部では,全て数式として表現 立体の稜線を表現するための曲線の式 面を表現するための曲面の式 曲線・曲面の分類 数式の形式により,以下の3種類に分類 陰関数形式 パラメータ形式 陽関数形式 曲面の例 2006/05/22 Computer Graphics
パラメトリック曲線・曲面 工業製品設計 フォント(TrueType Font) ベジェ曲線・曲面 1966年、ルノーの車体設計を行うための曲面としてBezierによって提案 2006/05/22 Computer Graphics
パラメトリック曲線・曲面の利用 2006/05/22 Computer Graphics
陰関数形式 平面曲線: f(x, y) = 0 曲面: f(x, y, z) = 0 空間曲線: f(x, y, z) = g(x, y, z) = 0 (曲面fと曲面gの交線) xy平面上の原点中心,半径rの円 原点中心,半径rの球面 2006/05/22 Computer Graphics
陰関数形式表現の特徴 直線: 球面: レイトレーシング法(光線追跡法)に適している 長所 交点計算に適している 例) 球面と,直線との交点 例) 球面と,直線との交点 直線: 球面: tに関する2次方程式 ↓ 交点 レイトレーシング法(光線追跡法)に適している (後述) 2006/05/22 Computer Graphics
陰関数形式表現の特徴 長所 数式で曲線,曲面の領域を区分可能 位置,衝突判定に適する f(x,y,z)<0 (球の内部) 2006/05/22 Computer Graphics
陰関数形式表現の特徴 短所 曲線・曲面上の点列計算 → 各軸に平行な格子線との 交点を計算 座標値を計算により求める必要 適当な間隔でサンプリングするのに適さない 格子状の点列から多面体を形成 パラメータ形式,陽関数形式の方が適する x y 曲線・曲面上の点列計算 → 各軸に平行な格子線との 交点を計算 2006/05/22 Computer Graphics
パラメータ形式 パラメータ(媒介変数)を介して,曲線・曲面を定義する方法 曲線:1つのパラメータtに対して,2D,3D空間内の点を対応させる 曲面:2つのパラメータ(u, v)に対して3D 空間内の点を対応させる 平面曲線: x=f(t), y=g(t) 空間曲線: x=f(t), y=g(t), z=h(t) 曲 面 : x=f(u,v), y=g(u,v), z=h(u,v) 2006/05/22 Computer Graphics
パラメータ形式表現の例 円のパラメータ形式表現 球面のパラメータ形式表現 パラメトリック曲線,パラメトリック曲面 c.f. 陰関数形式 パラメータtを変化させることで, 円を記述 c.f. 陰関数形式 球面のパラメータ形式表現 パラメータu, vを変化させることで, 球面を記述 パラメトリック曲線,パラメトリック曲面 2006/05/22 Computer Graphics
x=f(u,v), y=g(u,v), z=h(u,v) パラメトリック形式の特徴 CGで最も多用される曲線,曲面 長所 曲線・曲面上の点列を求めることが容易 曲線の場合 曲面の場合 曲線のパラメータ形式表現 x=f(t), y=g(t), z=h(t) パラメータ値を繰り返し代入 → 曲線・曲面上の点列 曲面のパラメータ形式表現 x=f(u,v), y=g(u,v), z=h(u,v) 2006/05/22 Computer Graphics
パラメトリック形式の特徴 短所 交点計算に適さない (レイトレーシングには適さず) 直線: 3元1次連立方程式 → 解きにくい式 連立 → 解きにくい式 2006/05/22 Computer Graphics
パラメトリック曲線の描画アルゴリズム Δt = 1/n ; t = 0 ; x1 = f(0); y1 = g(0); t+Δt t+3Δt t+2Δt t+4Δt t+5Δt Δt = 1/n ; t = 0 ; x1 = f(0); y1 = g(0); for( i=1; i <= n; i++ ){ t = t + Δt ; x2 = f(t); y2 = g(t); DrawLine ( x1, y1) to ( x2, y2); x1 = x2; y1 = y2; } 2006/05/22 Computer Graphics
陽関数形式 1つの座標値の関数として他の座標値を求める形式 平面曲線: y = f(x) 曲面: z = f(x,y) z x → y 放物線(陽関数形式) 放物線(陰関数形式) (x,y) 放物線(パラメータ形式) 回転放物面(陽関数形式) 回転放物面(陰関数形式) 回転放物面(パラメータ形式) 2006/05/22 Computer Graphics
2次曲線 2次多項式(陰関数形式) 円錐面の断面線 楕円, 放物線, 双曲線 楕円 放物線 双曲線 陰関数形式 パラメータ形式 陽関数形式 楕円, 放物線, 双曲線 楕円 陰関数形式 パラメータ形式 放物線 陽関数形式 双曲線 2006/05/22 Computer Graphics
パラメトリック曲線 パラメータの陽関数形式: C=F(t) CGで用いられる曲線 エルミート(Hermite)曲線 ベジエ(Bezier)曲線 Bスプライン(B-spline)曲線 有理ベジエ(Rational Bezier)曲線 非一様有理Bスプライン曲線(NURBS) 2006/05/22 Computer Graphics
ベジエ曲線 与えられた点(制御点)に沿って,滑らかな曲線を描く方法 例)3点 p0, p1, p2 に沿った曲線を描く p1 p0 p2 2006/05/22 Computer Graphics
ベジェ曲線 曲線上の点P(t)は,制御点Piの加重平均 として表される 2006/05/22 Computer Graphics p1 pi pN 曲線上の点P(t)は,制御点Piの加重平均 として表される 2006/05/22 Computer Graphics
ベジェ曲線 3次ベジェ曲線 バーンスタイン関数 (Bernstein) 重み係数 2006/05/22 Computer Graphics
ベジェ曲線 3次ベジェ曲線 Bernstein関数 t=0 t=1 3次係数 0次係数 1次係数 2次係数 2006/05/22 Computer Graphics
2次曲面 9種類 2次多項式によって表現される代数曲面 点対称: 2次曲面の中心 楕円面,一葉双曲面,二葉双曲面,楕円錐面 点対称: 2次曲面の中心 中心有り: 有心 中心無し: 無心 9種類 楕円面,一葉双曲面,二葉双曲面,楕円錐面 楕円放物面,双曲放物面,楕円柱面,双曲柱面, 放物柱面 2006/05/22 Computer Graphics
二次曲面 楕円面 一葉双曲面 二葉双曲面 2006/05/22 Computer Graphics
二次曲面 楕円錐面 楕円放物面 双曲放物面 2006/05/22 Computer Graphics
二次曲面 楕円柱面 双曲柱面 放物柱面 2006/05/22 Computer Graphics
パラメトリック曲線・曲面 Bezier 曲線・曲面 B-Spline 曲線・曲面 有理 B-Spline, NURBS 細分割曲線・曲面 2006/05/22 Computer Graphics
Bezier曲面 2006/05/22 Computer Graphics
m x n 次 Bezier曲面式 2006/05/22 Computer Graphics
【参考資料】曲線・曲面描画ソフト Function View(フリーソフト) 作者:和田 啓助 http://hp.vector.co.jp/authors/VA017172/ Bezier Curve Generator Ver.2.0(フリーソフト) http://www.dsgn.im.hiroshima-cu.ac.jp/~shimbara/program/ ISURFACE version 1.0.6 (フリーソフト) 作者:戸野恵太 http://www.rimath.saitama-u.ac.jp/lab.jp/fsakai/tono.html 2006/05/22 Computer Graphics
Bスプライン曲線 制御点{Pi}とノット列{ti}によって曲線を定義 複数の多項式曲線を接続して一本の曲線を作る 接続点でのパラメータをノットで指定 制御点の重み付けにBスプライン関数を用い,関数の定義にノット列を使用 ノット値が一定間隔:一様Bスプライン曲線 そうでないもの:非一様Bスプライン曲線 2006/05/22 Computer Graphics