JP3511301B2 - 曲面データ生成方法 - Google Patents
曲面データ生成方法Info
- Publication number
- JP3511301B2 JP3511301B2 JP16857593A JP16857593A JP3511301B2 JP 3511301 B2 JP3511301 B2 JP 3511301B2 JP 16857593 A JP16857593 A JP 16857593A JP 16857593 A JP16857593 A JP 16857593A JP 3511301 B2 JP3511301 B2 JP 3511301B2
- Authority
- JP
- Japan
- Prior art keywords
- polyhedron
- curved surface
- vertex
- data
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Processing Or Creating Images (AREA)
Description
ックスやCAD等の分野において計算機上で曲面データ
を生成する方法に関し、特に曲面データを対話的に修正
・変形することを可能とする曲面データ生成方法に関す
る。
ス)の分野における技術の進歩はめざましい。例えば、
レイトレーシング、ラジオシティ法等の手法を用いて、
写真と同程度の画像の生成が可能となりつつある。ま
た、CGを用いたアニメ−ションの制作も注目を集めて
いる。しかし、三次元曲面の入力・編集方法に関して
は、有効な方法がなく、膨大な工数がかかっているのが
現状である。
生成する場合に重要な要件は、次の3点である。
わち、分岐や穴等を含む複雑な曲面形状を入力・変形で
きること。 (2)曲面が滑らかであること。 (3)曲面に細部(ディテール)を追加できること。ま
た、その細部を修正できること。
作する場合に重要な機能である。
ては、例えば以下に述べる二つの方法が提案されてい
る。
イン、Vol.10、No.6(1974 年) 第350 頁から第360 頁(C
omputer Aided Design, Vol. 10, No. 6 (1974) pp. 35
0-360)において論じられている多面体細分割法である。
これは、多面体を再帰的に分割し、角を落して曲面を得
る方法である。分割を繰り返すことによって、滑らかな
曲面が生成される。この方法は、正則なメッシュだけで
はなく任意のトポロジーの多面体が扱えるという優れた
特長を有している。
Vol.22、No.4 (1988年) 第205 頁から第212 頁(Compute
r Graphics, Vol. 22, No. 4 (1988) pp. 205-212)にお
いて論じられている階層化B−スプライン曲面を用いる
方法である。この方法は、B−スプライン曲面を基本と
しており、曲面に対して細部情報を付加したり、対話的
に変形することが可能である。
従来方法のうち多面体細分割法では、曲面形状を対話的
に操作することができないという問題点があった。さら
に、曲面に細部の情報を付加することができないという
問題点があった。
初期形状として正則なメッシュしか扱えないという欠点
があった。このため、階層化B−スプライン曲面法で
は、分岐や穴のあるような複雑な形状を扱うことができ
ない。
曲面を対話的に入力し、入力された曲面に対して、対話
的に変形および細部の追加等を行なう方法は、従来提案
されていない。
のトポロジーからなる曲面を表すデータを対話的に入力
・編集することのできる曲面データ生成方法を提供する
ことにある。
め、本発明は、計算機上で初期多面体S0 を表現するデ
ータから曲面を近似するデータを生成する曲面データ生
成方法であって、上記初期多面体S0 を表現するデータ
を用いて初期多面体S0 の細分割をn回繰り返し、順
次、分割多面体(S1 、S2 、…、Sn )のデータを生
成し、曲面を近似する分割多面体Sn のデータを得るス
テップと、上記多面体(S0 、S1 、S2、…、Sn )
の各データを、それぞれ、保持するステップと、上記保
持した各多面体のデータを用いて、初期多面体S0 また
は分割多面体(S1 、S2 、…、Sn )を変形すること
によって、生成したい曲面を近似する分割多面体Sn を
変形するステップとを備えたことを特徴とする。
…、Sn のうちどの多面体の上で行なってもよい。例え
ば、多面体S0 の頂点をポインティングデバイス等を用
いて移動した場合は、多面体(S1 、S2 、…、Sn )
を再計算して多面体Sn のデータを得て、該多面体(生
成したい曲面を近似する多面体)Sn を表示する。一般
に、Si (0≦i ≦n)の頂点をポインティングデバイス等
を用いて移動した場合は、多面体(Si+1 、Si+2 、
…、Sn )を再計算し、表示することになる。
して相対的に記述するのがよい。例えば、多面体Si-1を
分割して多面体Si を求めた場合は、まずその多面体S
i-1の分割によって規定される頂点位置を多面体Si の
データとして保持しておき、その後、多面体Si におい
てその頂点の移動が指示された場合、その移動量をオフ
セットとして保持しておくようにするとよい。これによ
り、大局的な変形がなされた場合に、その大局的な変形
の結果にオフセットを加えれば頂点の位置が求められる
ようになるから、細部の特徴を保存したまま大局的な変
形を行なうことができることとなる。
1,2,…,n)のj番目の頂点Pi,j を選択して、該
頂点Pi,j の移動量を指定し、その多面体Si から分割
されて生成される分割多面体Si+1 、Si+2 、…、Sn
の頂点のうち、前記頂点Pi,jの移動の影響を受ける頂
点群をリストアップし、リストアップされた頂点群の位
置を再計算することによって、曲面を近似する分割多面
体Sn を変形したデータを生成するようにすることで実
現される。
体Si+1 、Si+2 、…、Sn のデータを再生成するため
には、多面体Si (i=0,1,2,…,n)の各面F
i,j(Fi,j は多面体Si のj番目の面を示す)に対し
て、多面体Si の細分割処理により面Fi,j から生成さ
れる面F'i+1,kへのポインター情報を保持しておくのが
よい。
する多面体Sn を、計算機の表示画面に表示しながら行
なうとよい。表示される分割多面体の分割レベルdを指
定できるようにし、その分割レベルdの分割多面体Sd
を表示画面に表示しながら、変形を実行するようにして
もよい。
S0 を表現するデータから曲面を近似するデータを生成
する曲面データ生成方法であって、上記初期多面体S0
を表現するデータを用いて初期多面体S0 の細分割をn
回繰り返し、順次、分割多面体(S1 、S2 、…、Sn
)のデータを生成し、曲面を近似する分割多面体Snの
データを得るステップと、上記多面体(S0 、S1 、S
2 、…、Sn )の各データを、それぞれ、保持するステ
ップと、上記計算機の表示画面上に表示される分割多面
体の分割レベルd、および頂点の移動操作を行う操作レ
ベルeを指定するステップと、分割多面体Sd を、上記
計算機の表示画面に表示するステップと、表示された分
割多面体Sd 上の頂点Pd,j を選択し、該頂点Pd,j の
移動量ΔVを指定するステップと、前記頂点Pd,j を移
動量ΔVだけ移動せしめる分割多面体Seの頂点群Pe,
k の移動量を求めるステップと、上記分割多面体Seの
頂点群Pe,k を移動することによって、生成したい曲面
を近似する分割多面体Snを変形するステップとを備え
たことを特徴とする。
分割多面体Se の頂点群Pe,k の移動量としては、頂点
群Pe,k の移動量の2乗和が最小となるような移動量を
用いるとよい。
意のトポロジーからなる滑らかな曲面を近似する多面体
Sn を表すデータが生成される。多面体S0 の頂点を移
動することによって、曲面を大局的に変形することがで
きる。また、多面体Si(0<=i<n)の頂点を操作すること
によって、曲面の細部の変形が可能である。多面体Si
(0<=i<n)を表すデータは、すべて保持されている。
て相対的に記述しておくことにより、曲面の大局的な操
作に細部の形状が追従するようにできる。また、多面体
Sdの頂点移動を指定し、この頂点移動を実現するため
の多面体Se の頂点移動量を求めることによって、曲面
を直接的に操作および変形することができる。変形され
た曲面をキ−フレ−ムに登録し、キ−フレ−ム補間する
ことによってアニメ−ションが生成される。
ポロジーからなる曲面を入力し対話的に変形し、アニメ
−ションを生成することができる。
する。
ション制作処理の概要 図1は、本発明の一実施例に係る曲面データ生成方法を
適用したアニメ−ション制作用システムの構成を示す。
図2は、図1のシステムにおける曲面データ生成処理の
概要を示す処理フローチャートである。
の定義、(2)細分割による曲面生成、(3)曲面の対
話的修正、の3つのステップからなる。曲面データを生
成した後、その曲面データを用いてアニメ−ションの生
成を行なう。以下、図1および図2を参照して、曲面デ
ータ生成処理の3つのステップの概要を説明する。
期多面体S0 (101)を定義する(ステップ20
1)。初期多面体の定義(すなわち、初期多面体を表す
データの入力)は、入力装置(113)を用いて対話的
に入力することが可能である。また、別途、CADシス
テムを用いて生成したものを読み込むことも可能であ
る。
を分割する場合の分割数Nを指定する。この分割数Nを
用いて、多面体細分割ルーチン(102)が初期多面体
S0 を分割し、分割多面体データ(103)を生成する
(ステップ202)。
照して詳しく説明する。まず、多面体細分割ルーチン
(102)は、初期多面体S0 を分割して分割多面体S
1 (105)を生成する。分割とは、多面体の辺および
頂点を丸めて、より滑らかな多面体を作成する処理であ
る。さらに、多面体細分割ルーチン(102)は、分割
多面体S1 (105)を分割し、分割多面体S2 (10
6)を作成する。このような分割を分割数N回だけ繰り
返して、分割多面体データS1 ,S2 ,…,Sn(10
3)を作成する。
レベルiの分割多面体と呼ぶこととする。また、分割の
回数のことを分割レベルと呼ぶこととする。
1)から多面体Sn (107)が生成される。十分な分
割数Nだけ分割した結果得られた多面体Sn (107)
は、滑らかな曲面を十分に近似するものであり、曲面S
n が生成されたといってよい。生成されたすべての分割
多面体S1 ,S2 ,…,Sn は、メモリーに格納され
る。生成された曲面Sn は、形状表示ルーチン(11
2)によってディスプレイ(115)に表示される。
作成する。修正は、入力装置(113)を用いて、ディ
スプレイ115に表示された分割多面体上の頂点を選択
し移動することによって行う。
いて、曲面を修正するための処理モードを設定する(ス
テップ203)。ユーザが設定した情報は、制御情報
(117)としてメモリに格納される。設定する処理モ
ードのうち重要なものは、表示レベルd、操作レベル
e、および操作方法の3つである。
をディスプレイ(115)に表示する場合の分割レベル
である。すなわち、分割多面体Sd がディスプレイ(1
15)に表示されることになる。最終的には分割数Nま
で分割した分割多面体SN が、生成したい曲面を近似す
ることになるから、表示レベルdはd=Nとすればよい
が、後述するように曲面を変形する際に常に分割多面体
SN を表示するのでは計算量が多くなってしまう。そこ
で、表示レベルdは、ユーザが適宜設定できるようにし
てある。
レベルを規定するものである。曲面の操作は、分割多面
体Si (iは任意)の頂点を移動することによって実現
する。すなわち、操作レベルeの場合、ユーザは、分割
多面体Seの頂点を移動して曲面を操作することにな
る。なお、分割多面体Se は、分割多面体Sd とともに
ディスプレイ115に表示されている。
りの方法がある。頂点操作とは、分割多面体Seの頂点
を選択・移動することにより、曲面の変形を行なう操作
方法である。直接操作とは、分割多面体Sdの頂点を選
択・移動することにより、曲面の変形を行なう操作方法
である。直接操作の場合には、ユーザは、分割多面体S
dの頂点を選択・移動するが、システムはこれ(指定さ
れた分割多面体Sdの変形)を実現するための分割多面
体Se の頂点群とその移動量を求め、求めた通りに分割
多面体Seの頂点群を移動することにより、指定された
分割多面体Sdの頂点の移動を実現する。
プの曲面の対話的修正についてさらに説明する。
作ではなく、頂点操作であれば以下の処理を行う(ステ
ップ204)。まず、ユーザは、ディスプレイ(11
5)上に表示されている分割多面体Se の頂点を入力装
置(113)を用いて選択し、移動する(ステップ20
5)。その具体的な操作方法は、どのようなものでもよ
い。例えば、頂点をマウスでピックしドラッグするなど
の操作方法でよい。
移動量とから、細分割再計算ルーチン(109)を用い
て、分割多面体Se+1 、Se+2 、…、Sd の頂点位置を
再計算する(ステップ206)。得られた分割多面体S
d をディスプレイ(115)に再表示する(ステップ2
07)。以上により、頂点操作による曲面の操作が実現
される。
作ではなく、直接操作であれば以下の処理を行う(ステ
ップ204)。まず、ユーザは、ディスプレイ(11
5)上に表示されている分割多面体Sd の頂点を入力装
置(113)を用いて選択し、移動する(ステップ20
8)。頂点操作と同様に、その具体的な操作方法はどの
ようなものでもよい。
の頂点と移動量とから、直接操作処理ルーチン(11
0)を用いて、そのように分割曲面Sd 上で指定された
移動を実現するためには、分割多面体Se のどの頂点を
どの程度移動すればよいかを求める(ステップ20
9)。分割多面体Se の頂点移動量が求められれば、そ
の後の処理は頂点操作のステップ206以降の処理と同
等である。そして、修正された分割多面体Sd がディス
プレイ(115)に再表示される(ステップ207)。
生成処理は終了する(ステップ210)。さらなる修正
を行う場合には、モードの変更(ステップ211)等を
行い上記の修正処理を繰り返す。
り、ユーザは、所望の曲面データを生成することができ
る。
された曲面を元曲面としてアニメ−ションを制作する。
アニメ−ションは、キ−フレ−ム法を用いる。図1を参
照して、アニメ−ションの生成処理の概要を説明する。
ム数を指定する。そして、キ−となるフレ−ムでの曲面
の形状、曲面の位置、回転角、および拡大率(キ−フレ
−ムデ−タ120)を、キ−フレ−ム設定ル−チン(1
21)を用いて対話的に指定して登録する。曲面の形状
の指定は、元曲面を上記第3ステップの方法で対話的に
変形して行う。
レ−ムにおける、曲面形状、位置、回転角、および拡大
率をキ−フレ−ム補間ル−チン122により補間する。
補間は、公知のキ−フレ−ム補間法を用いればよい。生
成されたアニメ−ションは、ディスプレイ装置115に
表示される。表示された画像は、コンバ−タ123を用
いてビデオ信号に変換され、VTR装置124によって
録画され、ビデオテ−プ124に記録される。
例における曲面生成処理およびアニメ−ションの制作処
理の具体例について、以下の[2]から[9]で詳細に
説明する。
概要を規定する初期多面体データS0 (101)を入力
する(図2のステップ201)。この初期多面体データ
は、通常の多面体データであり、公知の形状モデリング
方法で入力するか、別のCADプログラムで作成したも
のを読み込んでもよい。多面体としては任意のトポロジ
ーの多面体が使用できる。また、面上の頂点は、同一平
面上に存在する必要はない。このため様々な形状の曲面
を入力することが可能である。
タ構造を説明する。
を示す。この例では、多面体は9個の頂点(V1 、…、
V9 )、および4個の面(F1 、…、F4 )から構成さ
れている。この多面体を表現するために、図3(b)に
示す頂点データ、図3(c)に示す面データを用いる。
頂点データとしては、各頂点の位置、およびその頂点を
共有する面の番号が格納されている。面データとして
は、各面の頂点の番号が格納されている。
(102)の詳細を説明する。
よび頂点を丸めることによって滑らかな形状を得る処理
である。この細分割によって、初期多面体S0 から分割
多面体S1 を生成し、さらに分割多面体S1 を分割して
分割多面体S2 を生成し、その分割多面体S2 を分割し
て分割多面体S3 を生成し、…というように、順次細分
割を繰り返す。
ける一回の分割の手続きは、以下の3つのステップから
なる。
少し小さい面を作成する。例えば、図4では、面P1P2
P4 P3 に対して、少し小さい面Q1 Q2 Q4 Q3 が
生成されている。他の面についても同様にして、少し小
さい面を作成する。この面のことをF面と呼び、その頂
点をイメージ頂点と呼ぶ。イメージ頂点の位置は、以下
のルール(数1)に基づいて決定される。
を示し、Viは頂点Wiのイメージ頂点の位置を示す。例え
ば、コンピュータ・エイデッド・デサイン、Vol.10、N
o.6(1974 年) 第356 頁から第360 頁(Computer Aided D
esign, Vol. 10, No. 6 (1974) pp. 356-360)のDoo-Sab
in の方法では、αは以下のように与えられる。
稜線Eに対して、稜線Eの2つの頂点から生成される4
つのイメージ頂点を接続して、四辺形を生成する。図4
では、稜線P2 P4 に対して面Q2 Q5 Q6 Q4 が生成
されている。このようにして生成される面をE面と呼
ぶ。
Vについて、その頂点Vを共有する全ての面のVに関す
るイメージ頂点を接続して、n辺形を生成する。図4で
は、頂点P4 に対して面Q4 Q6 Q8 Q7 が生成されて
いる。このようにして生成される面をV面と呼ぶ。
この細分割をN回だけ繰り返すことによって滑らかな形
状の曲面が得られる。
して細分割処理を行った結果である。図5(a)が、初
期多面体S0 である立方体である。図5(b)は、図5
(a)の立方体を分割して得られた分割多面体S1 であ
る。さらに、図5(c)は、図5(b)の分割多面体S
1 を分割して得られた分割多面体S2 である。
その概要を説明する。初期多面体を細分割して生成した
曲面を変形する場合は、まず初期多面体の頂点を移動し
て初期多面体を変形し、変形された初期多面体を再度細
分割して近似曲面を生成する。多面体細分割法におい
て、細部の制御が必要な場合には、初期多面体を分割し
て制御点を増やす必要がある。多面体細分割法は、その
曲面生成のプロセス自体が分割を用いているため、これ
は容易に実現できる。初期多面体S0 を細分割して生成
される曲面は、分割多面体Sn を細分割して生成される
曲面と同じである。この意味で、分割多面体Sn は、初
期多面体S0 の詳しい表現であると言える。
は自然に定義できる。すなわち、曲面を大局的に変形し
たい場合には初期多面体S0 の頂点を移動し、細分割処
理を行なう。もし細部の形状を変形したい場合には、分
割多面体S1 の頂点を操作し、分割多面体S1 に対して
細分割処理を行なう。さらに細部の操作が必要な場合に
は、分割多面体S2 、S3 、…等の頂点を操作し、細分
割処理を行なう。
面を操作した例である。ここでは、図6(a)は、初期
多面体S0 (立方体)と細分割によって生成される曲面
(球状の曲面)を示している。図6(b)は、初期多面
体S0 の一つの頂点を移動した場合の曲面の変形を示し
ている。図6(c)は、分割多面体S1 の一つの頂点を
移動した場合の曲面の変形を示している。このように、
操作する多面体のレベルを変更することにより、大局的
な変形から局所的な変形までを実現することができる。
の特徴を破壊しないことが望ましい。すなわち、例え
ば、分割多面体S4 の頂点を操作することによって曲面
のディテール(細部)を表現した後に、初期多面体S0
の頂点を移動した場合、分割多面体S4 の頂点で表現し
たディテールを局所的には保存しつつ、大局的な変形を
実現したい。
(a)は、母曲面とその母曲面上に作成した細部の断面
を示す。このような細部を作成した後、母曲面に対し大
局的な変形を施した場合、図7(b)のように、局所的
には細部を保存したまま母曲面の変形がなされることが
望ましい。
面の頂点を親の面に対して相対的に定義することで実現
される。すなわち、分割によって生成された分割多面体
Si+1 の頂点位置は、分割多面体Si の分割によって規
定される頂点位置にオフセットを加えて定義するように
する。このとき、イメージ頂点の位置は、上述の(数
1)を修正し、以下のように定義される。
参照の方法を説明する。図8(a)は、もとの制御線S
0 (白丸とそれをつなぐ線分の部分)、およびその制御
線S0 から生成される曲線を示している。制御線S0 を
分割して生成されるS1 の制御点を図8(b)に示す。
図8(b)の黒丸がS1 の制御点である。
ることを考える。頂点Vの移動量ΔVを、もとの制御線
S1 を基準にした座標系で定義する。この座標系の定義
方法には、様々な方法がある。ここでは2つの方法を説
明する。
界座標系)と平行な座標系を用いる。図8(c)におい
て、物体座標系であるX−Y座標系と平行であって頂点
Vを原点とするLx−Ly座標系が設けられている。ユ
ーザの指定により頂点VをV′の位置まで移動する場合
は、このLx−Ly座標系を用いて、頂点V(原点)か
らのオフセットで移動量を定義することになる。頂点V
がV′に移動した結果、最終的に生成される曲線(ユー
ザが所望の曲線)は、図中太線で描かれている曲線にな
る。
向)、ノーマルベクトル(法線方向)を用いた局所座標
系 もとの制御線S1 のタンジェントベクトルとノーマルベ
クトル(あるいはそれらに準ずるベクトル)を用いて局
所座標系を定義する。図8(d)において、頂点Vは制
御線S0 の頂点AおよびBを内分した点として定義され
る。そこで、この図の例では、タンジェントベクトルの
代わりにベクトルABを用いる。ベクトルABの向きを
X座標の向きとし、その法線ベクトルの向きをY座標の
向きとし、頂点Vの初期位置を原点として、Lx−Ly
座標系を定義する。ユーザの指定により頂点VをV′の
位置まで移動する場合は、このLx−Ly座標系を用い
て、頂点V(原点)からのオフセットで移動量を定義す
ることになる。頂点VがV′に移動した結果、最終的に
生成される曲線(ユーザが所望の曲線)は、図中太線で
描かれている曲線になる。
の与え方を示したが、三次元であっても同様である。上
述の第1の方法では、三次元の物体座標系と平行で頂点
Vを原点とする三次元座標系を用いて、頂点Vからのオ
フセットで移動量を定義すればよい。
与え方を示す。これは、上述の第2の方法を三次元に適
用した場合を示している。この場合、タンジェントベク
トルの代用として、親の面の二つの稜線を用いる。一回
の細分割で各面の各頂点からイメージ頂点が生成される
ことに注意する。局所座標系は、頂点Vの親の面の二つ
の稜線を用いて定義できる。
多面体Si 上の頂点を示す。V’,A’,B’は、分割
多面体Si+1 上のイメージ頂点である。いま、点V’を
操作することを考える。点V’の移動量は、次の数式で
表される稜線VA、稜線VBを用いた座標系で定義でき
る。
は、その影響は、その下のレベル(レベルi+1,i+2,…,
n)のすべての多面体に反映される。このようにもとの
分割多面体を基準にしたオフセットで頂点の移動を表現
しているので、図7に示したように、細部が曲面の大局
的な変形に追従する。言い替えると、局所的に細部を生
成した後に大局的な変形を行なっても、細部の表現がオ
フセットによる表現になっているので、そのような細部
を保存したまま大局的な変形が実現できることになる。
(S0 、S1 、…、Sn)のデータ構造を説明する。図
10(a)は、初期多面体S0 の一例を示している。図
10(b)は、その初期多面体S0 の頂点データを示
す。
外に、初期位置およびオフセット情報が付加されてい
る。頂点位置は、実際の頂点の座標を示している。初期
位置は、親の面を細分割したときに上記(数1)の数式
を用いて求められるオフセットなしの頂点位置である。
オフセットは、頂点を対話的に移動することによって与
えられるオフセットを示している。オフセット情報と初
期位置とから頂点位置が求められる。なお、最初の多面
体分割処理(102)においては、オフセットはゼロで
あり、初期位置と頂点位置は等しくされている。
タの構造を示す。この面データには、その面の頂点の番
号が格納されている。また、その面を生成した親のレベ
ルの多面体の面番号、およびその面から生成した子供の
レベルの面の面番号が、格納されている。なお、子供の
面番号は、後に説明する頂点操作による曲面の変形処理
において使用される。また、この親の面番号は、後に説
明する直接操作による曲面の変形処理において使用され
る。
タであり、分割されていないため親の面は存在しない。
子供の面のデータは、つねに一つ存在する。例えば、面
F3から生成されるF面は、図10(d)の面F’7 で
ある。そこで、多面体S0 の面データにおいては、面番
号3の面(F3 )に子供の面番号7(F’7 )が格納さ
れる。
け分割して得られる分割多面体S1を示している。図1
0(e)は、分割多面体S1 の頂点データの構造を示
す。図10(f)は、分割多面体S1 の面データの構造
を示す。
だけ分割して生成される面であるから、その面が多面体
S0 に対してF面であれば、親の面の番号が面データに
格納される。例えば、図10(d)において、分割多面
体S1 の面F’3 は、初期多面体S0 の面F2 から生成
されたF面である。そこで、図10(f)の面データで
は、分割多面体S1 の面番号3の面に、親の面の面番号
として2が格納される。
供の面の番号は、多面体細分割処理において容易に得る
ことができるから、そのときにそれらの番号を格納して
おくようにする。
体の頂点をユーザが選択し、それを対話的に移動し、形
状を変形することである。このとき、重要なことは、曲
面の変更が高速に行なわれることである。
更するとその影響は制御頂点を共有している全ての面に
及び、これらの面から生成される分割多面体が変更され
る。一方、位置を変更した制御点を共有していない面か
ら生成される分割多面体は、影響を受けない。この意味
で、多面体細分割法は、局所性を有していると言える。
この性質を用いて、形状を高速に変更することが可能で
ある。
操作した場合、その影響を受けて、分割多面体Si+1 の
頂点を変更しなければならない。その手続きは、以下の
ようになる。
の面F1 〜Fn を求める。 2.面F1 〜Fn から生成される全てのイメージ頂点に
ついて、(数3)の数式を用いて位置を修正する。
って、分割多面体Si+1 の(複数の)頂点が移動する。
分割多面体Si+1 の頂点の移動は、分割多面体Si+2 の
頂点の移動を引き起こす。このように上記の処理を再帰
的に行なうことによって、細分割面の修正が実現され
る。
体Si のすべての面について、その面が生成する分割多
面体Si+1 のF面へのポインターを保存しておけばよ
い。これが分割面のデータ構造において各面に子供の面
の番号を保存しておいた理由である。
を示すフローチャートである。図11を参照して、頂点
操作による変形処理の詳細を説明する。
e、d、Ve、Pを指定する(ステップ1101)。こ
こで、eは操作する多面体の分割レベル、dは表示する
多面体の分割レベルである。Ve は、操作する多面体S
e の頂点のうち、ユーザによって選択され、移動量Pを
与えられた頂点である。
頂点リストを{(Ve ,P)}とする(ステップ110
2)。移動頂点リストとは、多面体において移動が生じ
た頂点と移動量を保持するリストである。初期状態の移
動頂点リスト{(Ve ,P)}は、多面体Se の頂点V
e が移動量Pだけ移動したことを示している。
割レベルeをセットする。そして、移動頂点リストから
頂点を取り出し、その頂点を一つでも含む面をリストア
ップし、面リストを作成する(ステップ1104)。こ
の面リストの作成は、図10に示すように各頂点データ
中にその頂点を共有する面の情報が付加されているた
め、容易に行なうことができる。
として生成される面は、親の多面体の頂点の移動の影響
を受ける。したがって、面リストのすべての面につい
て、その頂点位置を更新する必要がある。そこで、上述
の(数3)の数式を用いて、面リストのすべての面につ
いて、子供の面(F面)の位置を再計算する。再計算さ
れた頂点位置は、頂点データ(図10)の初期位置に格
納される。この初期位置とオフセット情報を加算して頂
点位置が更新される(ステップ1105)。更新された
頂点は、新たに移動頂点リストに設定される(ステップ
1106)。
ンクリメントし(ステップ1107)、その値が分割レ
ベルdに等しくなったかどうか判別する(ステップ11
08)。等しくなければ、分割レベルiについて、ステ
ップ1104からの処理を繰り返す。等しければ、処理
を終了する。すなわち、ステップ1104〜1107の
処理を、分割レベルeから分割レベルdまで行なうこと
によって、多面体Seの頂点移動は多面体Sd の頂点移
動に反映され、分割多面体Sd が変形される。
[7]の方法(頂点操作)は、間接的でユーザにわかり
にくい。最も自然な曲面の操作方法は、直接操作であ
る。すなわち、曲面上の1点を直接選択し、その点をど
こに移動したいのか、その位置を指定する方法である。
曲面は、有限の分割数dの多面体Sd で近似されてい
る。直接操作法では、分割レベルdの多面体Sd 上の頂
点を選択してそれを操作する。
頂点VをΔVだけ移動する場合を説明する。この多面体
Sd 上の頂点の移動を、分割レベルeの多面体Se の頂
点の移動で実現する。言い替えると、分割レベルdの多
面体Sd 上で指定された頂点の移動が実現するように、
分割レベルeの多面体Se の頂点の移動を行なうように
する。分割レベルeは、その操作が及ぶ範囲を規定する
こととなる。すなわち、分割レベルeが小さい場合には
大局的な変形を、大きい場合にはより局所的な変形をも
たらすこととなる。
Fのある頂点Wのイメージ頂点である。頂点Vの位置
は、上記(数3)に示したように、多面体Sd-1 の頂点
Wの位置の線形結合+オフセットで定義される。このこ
とから、移動量ΔVは下記の数式で表される。
の頂点Vの移動量ΔVは、多面体Se の頂点群Uj の移
動量ΔUj の線形結合で表すことができる。
動するために、上記(数6)における移動量ΔUj をど
のように選ぶかについては、種々の選択の仕方がある。
この実施例では、頂点群Uj の移動量ΔUj の2乗の和
が、最小になるようにしている。そのためには、
Sd の頂点Vの移動を多面体Se の頂点の移動で実現で
きる。
を示すフローチャートである。図12を参照して、直接
操作による変形処理の詳細を説明する。
e、d、Vd、Pを指定する(ステップ1201)。こ
こで、eは指定された曲面の変形を実現するために頂点
を(自動的に)移動する多面体の分割レベル、dは表示
する多面体の分割レベルである。Vd は、多面体Sd の
頂点のうち、ユーザによって選択され、移動量Pを与え
られた頂点である。
頂点荷重リストを{(Vd,1)}とする(ステップ1
202)。頂点荷重リストとは、頂点Vd の移動を実現
するために、関係する頂点Vの情報と、頂点Vを移動さ
せた場合に頂点Vd に与える影響度(荷重)とを保持す
るリストである。関係する頂点Vは、上述の(数6)の
数式中のUj に対応している。また、頂点Vd に与える
影響度は、(数6)の数式中のβj に対応している。初
期状態の頂点荷重リスト{(Vd ,1)}は、多面体S
d の頂点Vd が影響度(荷重)1を有していることを示
している。
をセットする。そして、頂点荷重リストから頂点を取り
出し、その頂点を一つでも含む面をリストアップし、面
リストを作成する(ステップ1204)。この面リスト
の作成は、図10に示すように各頂点データ中にその頂
点を共有する面の情報が付加されているため、容易に行
なうことができる。
って決定されるため、面リストの各面について親の面を
求め、それらの面の各頂点について多面体Vd の移動に
対する影響度を求める必要がある。このため、面リスト
のすべての面について、親の面をリストアップする(ス
テップ1205)。
め、これらの頂点が移動した場合の多面体Vd の移動に
おける影響度を求める(ステップ1206)。これは、
(数1)の数式の荷重αと頂点荷重リストの荷重βとを
積算することによって求められる。更新された頂点と荷
重βは、新たに頂点荷重リストに設定される(ステップ
1207)。
クリメントし(ステップ1208)、その値が分割レベ
ルeに等しくなったかどうか判別する(ステップ120
9)。等しくなければ、分割レベルiについて、ステッ
プ1204からの処理を繰り返す。すなわち、ステップ
1204〜1208の処理を、分割レベルdから分割レ
ベルeまで行なうことによって、多面体Se の頂点のう
ち、多面体Sd の頂点移動に関係する頂点群Uとそれら
がVd の移動に与える影響度とが求められる。
割レベルがeに等しくなったら、(数7)の数式を用い
て、頂点荷重リストから頂点群Uの移動量ΔUを求める
(ステップ1210)。これは、上述の頂点移動で用い
た移動頂点リストである。そこで、図11のステップ1
104からの処理を行なうことによって、曲面全体の変
形が実現される。
る。アニメ−ションは、上記[8]までの処理で曲面
(元曲面)を生成し、その生成した曲面に対し、移動、
回転、拡大率の変更、および形状の変形などを施すこと
によって、制作する。
を用いる。まず、アニメ−ションのフレ−ム数を指定す
る(ステップ1301)。そして、前記の変形方法を用
いて元曲面を変形することによって、キ−となるフレ−
ムでの曲面の形状(図1のキ−フレ−ムデ−タ120)
を生成し指定する。さらに、キ−フレ−ム設定ル−チン
121を用いて、キーフレームにおける曲面の位置、回
転角、および拡大率を対話的に指定して登録する(ステ
ップ1303)。
返して、複数のキ−フレ−ムにおける曲面をすべて指定
する。
ら、キ−フレ−ム補間ル−チン122により、各キ−フ
レ−ム間で、曲面形状、位置、回転角、拡大率を補間す
る(ステップ1304)。補間は、公知のキ−フレ−ム
補間法を用いればよい。これにより、アニメーションを
構成する各フレームのデータが得られる。
イ装置115に表示される(ステップ1305)。表示
された画像は、コンバ−タ123を用いてビデオ信号に
変換され、VTR装置124によって録画され、ビデオ
テ−プ124に記録される(ステップ1306)。以上
の処理で、アニメ−ションが生成される。
な曲面を生成し、これを頂点操作あるいは直接操作によ
って対話的に変形することが可能である。曲面の生成方
法として多面体の細分割処理を基礎にしているため、任
意のトポロジーの曲面を生成することが可能である。
操作できるため、曲面の大局的な操作から局所的な操作
までを実現できる。さらに、分割多面体の頂点位置を親
の多面体の頂点位置に対して相対的に定義することによ
って、細部の形状が大局的な変形に追従するという対話
的な形状操作に対して好適な変形方法を実現できる。さ
らに、曲面の変形を伴うアニメ−ションが制作できる。
滑らかな曲面を生成し、生成された曲面を対話的に変形
することができる。したがって、任意のトポロジーから
なる曲面を対話的に入力・編集する方法およびそれを用
いて形状変形を伴うアニメ−ションを制作する方法を提
供することができる。
適用したアニメ−ション制作用システムのシステム構成
図
フローチャート図
明図
ローチャート図
ローチャート図
チャート図
Claims (6)
- 【請求項1】計算機上で初期多面体S0 を表現するデー
タから曲面を近似するデータを生成する曲面データ生成
方法であって、 上記初期多面体S0 を表現するデータを用いて初期多面
体S0 の細分割をn回繰り返し、順次、分割多面体(S
1 、S2 、…、Sn )のデータを生成し、曲面を近似す
る分割多面体Sn のデータを得るとともに、上記分割多
面体(S1 、S2 、…、Sn )のデータを順次生成する
際には、多面体Si (i=1,2,…,n)の頂点位置
を、多面体Si-1 によって定義される座標系に対して相
対的に記述するステップと、 上記多面体(S0 、S1 、S2 、…、Sn )の各データ
を、それぞれ、保持するステップと、 上記保持した各多面体のデータを用いて、初期多面体S
0 または分割多面体(S1 、S2 、…、Sn )を変形す
ることによって、生成したい曲面を近似する分割多面体
Sn を変形するステップとを備えたことを特徴とする曲
面データ生成方法。 - 【請求項2】計算機上で初期多面体S0 を表現するデー
タから曲面を近似するデータを生成する曲面データ生成
方法であって、 上記初期多面体S0 を表現するデータを用いて初期多面
体S0 の細分割をn回繰り返し、順次、分割多面体(S
1 、S2 、…、Sn )のデータを生成し、曲面を近似す
る分割多面体Sn のデータを得るとともに、上記分割多
面体(S1 、S2 、…、Sn )のデータを順次生成する
際には、多面体Si (i=1,2,…,n)の頂点位置
を、多面体Si-1 の分割によって規定される頂点位置に
該頂点の移動量であるオフセットを加えて定義するステ
ップと、 上記多面体(S0 、S1 、S2 、…、Sn )の各データ
を、それぞれ、保持するステップと、 上記保持した各多面体のデータを用いて、初期多面体S
0 または分割多面体(S1 、S2 、…、Sn )を変形す
ることによって、生成したい曲面を近似する分割多面体
Sn を変形するステップとを備えたことを特徴とする曲
面データ生成方法。 - 【請求項3】請求項1または2に記載の曲面データ生成
方法において、前記変形するステップは、前記多面体S
0 、S1 、S2 、…、Sn の頂点を選択し、該頂点の移
動量を指定することにより、多面体の変形を行なうこと
を特徴とする曲面データ生成方法。 - 【請求項4】計算機上で初期多面体S0 を表現するデー
タから曲面を近似するデータを生成する曲面データ生成
方法であって、 上記初期多面体S0 を表現するデータを用いて初期多面
体S0 の細分割をn回繰り返し、順次、分割多面体(S
1 、S2 、…、Sn )のデータを生成し、曲面を近似す
る分割多面体Sn のデータを得るステップと、 上記多面体(S0 、S1 、S2 、…、Sn )の各データ
を、それぞれ、保持するステップと、 上記計算機の表示画面上に表示される分割多面体の分割
レベルである表示レベルd、および頂点の移動操作を行
う分割レベルである操作レベルeを指定するステップ
と、 分割多面体Sd を、上記計算機の表示画面に表示するス
テップと、 表示された分割多面体Sd 上の頂点Pd,j を選択し、該
頂点Pd,j の移動量ΔVを指定するステップと、 前記頂点Pd,j を移動量ΔVだけ移動せしめる分割多面
体Seの頂点群Pe,k の移動量を求めるステップと、 上記分割多面体Seの頂点群Pe,k を移動することによ
って、生成したい曲面を近似する分割多面体Sn を変形
するステップとを備えたことを特徴とする曲面データ生
成方法。 - 【請求項5】請求項4に記載の曲面データ生成方法にお
いて、前記頂点Pd,j を移動量ΔVだけ移動せしめる分
割多面体Se の頂点群Pe,k の移動量として、頂点群P
e,k の移動量の2乗和が最小となるような移動量を用い
ることを特徴とする曲面データ生成方法。 - 【請求項6】請求項4に記載の曲面データ生成方法にお
いて、前記分割多面体のデータを保持するステップは、
前記多面体Si (i=1,2,…,n)の各面Fi,j
(Fi,j は多面体Si のj番目の面を示す)に対して、
多面体Si-1 の細分割処理により面F'i-1,kから面Fi,
j が生成されている場合は、該面F'i-1,kへのポインタ
ー情報を保持し、該ポインター情報を用いることによ
り、前記頂点Pd,j を移動量ΔVだけ移動せしめる分割
多面体Seの頂点群Pe,k の移動量を求めることを特徴
とする曲面データ生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16857593A JP3511301B2 (ja) | 1993-06-15 | 1993-06-15 | 曲面データ生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16857593A JP3511301B2 (ja) | 1993-06-15 | 1993-06-15 | 曲面データ生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0773343A JPH0773343A (ja) | 1995-03-17 |
JP3511301B2 true JP3511301B2 (ja) | 2004-03-29 |
Family
ID=15870593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16857593A Expired - Lifetime JP3511301B2 (ja) | 1993-06-15 | 1993-06-15 | 曲面データ生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3511301B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100564132B1 (ko) * | 1998-05-13 | 2006-03-27 | 가부시키가이샤 세가 | 총형 콘트롤러 및 게임 장치 |
US7222057B2 (en) * | 2002-05-31 | 2007-05-22 | Ugs Corp. | Topology modeler |
-
1993
- 1993-06-15 JP JP16857593A patent/JP3511301B2/ja not_active Expired - Lifetime
Non-Patent Citations (4)
Title |
---|
D.Doo, M.Sabin,Behaviour of recursive division surfaces near extraordinary points,computer−aided design,米国,IPC Science and Technology Press limited.,1978年11月30日,Volume10 Number6,356−360 |
David R.Forsey, Richard II. Bartels,Hierarchical B−Spline Refinement,Computer Graphics,米国,Association for Computing Machinery’s,1988年 8月 5日,Volume22 Number4,215−212 |
E.Catmull, J.Clark,Recursively generated B−spline surfaces on arbitary topological meshes,computer−aided design,米国,IPC Science and Technology Press Limited.,1978年11月30日,Volume10 Number6,350−355 |
小松 功児,顔画像からの顔の3次元形状の推定とその表情の変更,電子情報通信学会論文誌D−II,日本,(社)電子情報通信学会,1990年 5月25日,第J73−D−II巻 第5号,706−716 |
Also Published As
Publication number | Publication date |
---|---|
JPH0773343A (ja) | 1995-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6300960B1 (en) | Realistic surface simulation in computer animation | |
US6208360B1 (en) | Method and apparatus for graffiti animation | |
JP4385524B2 (ja) | ポリゴンデータの生成方法及び、これを用いた画像表示装置 | |
JP3184327B2 (ja) | 3次元グラフィックス処理方法及びその装置 | |
US6037949A (en) | Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation | |
US6307554B1 (en) | Apparatus and method for generating progressive polygon data, and apparatus and method for generating three-dimensional real-time graphics using the same | |
JPH0776991B2 (ja) | Nurbsデータ変換方法及び装置 | |
JPH11149573A (ja) | 変形対象立体の丸め操作及び逆丸め操作方法を用いたモデリング方法並びに逆丸め操作方法 | |
US7643030B2 (en) | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics | |
WO1995006291A1 (en) | System and method for generating smooth low degree polynomial spline surfaces over irregular meshes | |
JPH0816820A (ja) | 3次元アニメーション作成装置 | |
US6222553B1 (en) | Hybrid subdivision in computer graphics | |
US5459821A (en) | Method and apparatus for generating a free-form surface | |
US7333112B2 (en) | Rig baking | |
JP3511301B2 (ja) | 曲面データ生成方法 | |
JPH0623989B2 (ja) | 境界表現ソリツド・モデリング・システム | |
JPH0973559A (ja) | モーフィング編集装置 | |
JP3147391B2 (ja) | 3次元境界適合メッシュ分割における曲面の設定方法及びその装置 | |
CN117853320B (zh) | 一种基于多媒体操控的图像映射方法、系统及存储介质 | |
JP3132220B2 (ja) | 3次元モデルの形状作成方法 | |
JP4479957B2 (ja) | 曲面細分割装置 | |
CN114004014A (zh) | 基于nurbs的船体曲面自动建模系统 | |
JP2674678B2 (ja) | 3次元自由曲面設計装置 | |
JPH09138855A (ja) | 曲線生成装置および方法 | |
Dokken | A design system for products with sculptured surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031224 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100116 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110116 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110116 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130116 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |