動画の解説を参照
第5回、第6回に出てきたベジェ曲線はこのような形で表されます。
\(\boldsymbol{C}(t)\)
\(=\displaystyle \sum_{i=0}^n\)
\(_n C_i\)
\(t^i(1-t)^{n-i} \)
\(\boldsymbol{P}_i\)
この式に含まれる \(_n C_i t^i(1-t)^{n-i}\) を
バーンスタイン基底関数と呼び、一般に以下のように書きます。
\(B^n_i(t) \equiv \)\( _nC_i t^i(1-t)^{n-i}\)
これを使えばベジェ曲線の式はこのようにシンプルな形で書けます。
\(\boldsymbol{C}(t)\)
\(=\displaystyle \sum_{i=0}^n\)
\(B^n_i(t)\)
\(\boldsymbol{P}_i\)
これを踏まえ、次数を1増やすことで曲面を定義できます。それが
ベジェ曲面です。
ベジェ曲面は、\(n\times m\) 個の制御点 \(\boldsymbol{P}_{ij}\) で定義されます。
\(0\leq u \leq 1\), \(0\leq v \leq 1\) の範囲の2つのパラメータを使い、曲面上の点は以下のように表されます。
\(\boldsymbol{S}(u, v)\)
\(=\displaystyle \sum_{i=0}^n\)
\(\displaystyle \sum_{j=0}^m\)
\(B^n_i(u)\)
\(B^m_j(v)\)
\(\boldsymbol{P}_{ij}\)
これはベジェ曲線から
\(n\) → \(n, m\)
\(i\) → \(i, j\)
\(t\) → \(u, v\)
のように置き換えたものです。
Bezier曲面エディター で好きな形の曲面をを作ってください。
ただし、16個の制御点のうちすくなくとも8個以上の制御点をデフォルト状態から動かしてください。
Wireframe Mode : オンにするとワイヤーフレーム表示 (オフでは面表示)
制御点をX軸に沿って移動 : Xキー + ドラッグ
制御点をY軸に沿って移動 : Yキー + ドラッグ
制御点をZ軸に沿って移動 : Zキー + ドラッグ
制御点の移動 (非推奨) : ドラッグ
Undo, Redo, 初期状態に戻す, ファイルに保存, ファイルから読み込み : ボタン
課題1解説
動画の解説を参照
有理ベジェ曲面は、ベジェ曲面の制御点の影響のしかたを係数でコントロールできるように改良したものです。制御点 \(\boldsymbol{P}_i\) のほかに重み \(w_{ij}\) を使います。
曲面上の点は以下のように表されます。
\(\)
\(\)
\(\boldsymbol{S}(u, v)\)
\(=\frac{\displaystyle \sum_{i=0}^n \displaystyle \sum_{j=0}^m B^n_i(u)B^m_j(v) w_{ij} \boldsymbol{P}_{ij}}
{\displaystyle \sum_{i=0}^n \displaystyle \sum_{j=0}^m B^n_i(u)B^m_j(v) w_{ij}}\)
普通のベジェ曲面との違いは \(w_{ij}\) があるかどうかだけです。
バーンスタイン基底関数を使えば、前回出てきた有理ベジェ曲線の式はこうなります。
上記のベジェ曲面の式と比較してみれば、これを2次元に拡張したものが有理ベジェ曲面であることがわかります。
\(\boldsymbol{C}(t)\)
\(=\frac{\displaystyle \sum_{i=0}^n B^n_i(t) w_i\boldsymbol{P}_i}
{\displaystyle \sum_{i=0}^n B^n_i(t) w_i}\)
Bezier曲面エディター で好きな形の曲面をを作ってください。
ただし、16個の制御点のうちすくなくとも8個以上の制御点をデフォルト状態から動かし、重みを変更してください。
制御点の重みを変更 : 制御点にカーソルをのせてキーボードの上キー (重み増やす)、下キー(重み減らす)
課題2解説