説明

3次元モデリングプログラム及びモデリング装置

【課題】2次元の画像から、3次元仮想空間内の適宜な座標位置を指示することが出来、オブジェクトの変形処理を適切に行うことの可能な、3次元モデリングプログラム及びモデリング装置の提供
【解決手段】3次元仮想空間内に基準モデルBMを配置し、2次元画像PC1を生成表示する手順、カーソル20を移動させ、基準モデルBMの寸法を変更させたい部分Pn、Fnに対応した部分を表示画像上DPで選択する手順、選択された部分のワールド座標位置D13、D33を演算する手順、演算されたワールド座標位置を通過するカーソル移動平面CP1、CP2を設定し、表示画像上で移動したカーソルのワールド座標位置D23、D43をカーソル移動平面上で演算する手順、カーソルのワールド座標位置D23、D43に基づいて、基準モデルBMの寸法を変更して変形モデルPM11、PM12を演算生成して表示する手順から構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元コンピュータグラフィックを作成する際に、3次元仮想空間内に設定された三角柱、四角柱、直方体、多角形柱のポリゴンモデルやワイヤフレームモデルを、カーソルを操作することにより自由に変形させることの出来る3次元モデリングプログラム及びモデリング装置に関する。
【背景技術】
【0002】
メモリ内に生成された3次元仮想空間内に、オブジェクトとなるモデルをポリゴンやワイヤフレームを用いて生成しようとした場合、基本となるモデルを一つ生成しておき、当該基準モデルを元にして、当該モデルを3次元仮想空間内で拡大縮小させる形で変形させて、所望のオブジェクトとして使用するモデルを生成することが出来れば、モデルの作成に際して、ポリゴンをいちいちつなぎ合わせる行程を行う必要が無くなるので行程の省略が図られ好都合である。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、メモリ内の3次元仮想空間内に生成されたオブジェクトに対して、当該オブジェクトをレンダリングした2次元画像を表示したコンピュータのディスプレイを見ながら、当該オブジェクトに対する変形の指示を、ディスプレイに表示される2次元画像上のカーソルを用いて与えようとした場合、オペレータが操作する2次元画像上のカーソルの位置をどのようにして、3次元空間のオブジェクトの座標位置に変換して、対応するオブジェクトの寸法変更処理を行うようにするかは未解決の問題である。
【0004】
即ち、ディスプレイ画面上のカーソルは2次元でしか移動することは出来ず、また、3次元仮想空間内のオブジェクトをレンダリングした画像も同様に2次元画像であるので、通常は、ディスプレイ上でカーソルが指示する位置と、3次元仮想空間内の座標位置の対応関係を取ることは出来ず、適切なオブジェクトの変形処理を実行することが出来ない。
【0005】
本発明は、上記した事情に鑑み、ディスプレイに表示される2次元画像上から、3次元仮想空間内の適宜な座標位置を指示することが出来、これにより、3次元仮想空間内のオブジェクトの変形処理を適切に行うことの可能な、3次元モデリングプログラム及びモデリング装置を提供することを目的とするものである。
【課題を解決するための手段】
【0006】
請求項1の発明は、コンピュータ(1)に、
メモリ内に3次元仮想空間(16)を設定し、該設定された3次元仮想空間内に、入力手段(5)からの指令により、オブジェクトをモデリングするための、複数の頂点(P1、P2、……P8)及びそれらを結ぶ辺(F1、F2……F12)が表示された基準モデル(BM)を配置する基準モデル配置手順(2、6、10)、
前記3次元仮想空間内に配置された基準モデルをレンダリングして、2次元画像(PC1)を取得し、該取得した2次元画像を含む表示画像(DP)を生成し、ディスプレイ(13)に表示する2次元画像表示手順(2、11、12)、
前記ディスプレイに表示された前記表示画像(DP)に対して、前記入力手段(5)からの信号に応じて該表示画像上でカーソル(20)を移動させ、前記基準モデル(BM)の寸法を変更させたいモデル構成部分(P1、P2、……P8、F1、F2……F12)に対応した部分(P1、P2、……P8、F1、F2……F12)を前記表示画像上(DP)で選択する構成部分選択手順(2、7)、
前記選択された前記表示画像(DP)上でのモデル構成部分に対応した部分のワールド座標位置(D13、D33)を演算するワールド座標演算手順(2、7)、
前記演算されたワールド座標位置を通過するカーソル移動平面(CP1、CP2)を前記3次元仮想空間(16)内に設定する、カーソル移動平面設定手順(2、7)、
前記入力手段(5)からの信号に応じて前記ディスプレイ(13)に表示されたカーソルの位置を、前記モデル構成部分に対応した部分を選択した位置(D1、D3)から、前記表示画像上で移動させるカーソル移動手順(2、7)、
前記表示画像上で移動されたカーソルの、前記3次元仮想空間内でのワールド座標位置(D23、D43)を、前記カーソルを前記カーソル移動平面上(CP1、CP2)に投影させた位置に基づいて演算する、移動カーソル位置演算手順(2、7)、
前記演算されたカーソルのワールド座標位置(D23、D43)に基づいて、前記3次元仮想空間(16)内の基準モデル(BM)の寸法を変更して変形モデル(PM11、PM12)を前記3次元仮想空間内に演算生成する変形モデル生成手順(2、10)
前記生成された変形モデル(PM11、PM12)をレンダリングして、前記変形モデルの2次元画像(PC2、PC3)を取得し、前記ディスプレイ(13)に表示する変形モデル表示手順(2,11、12)、
を実行させるための3次元モデリングプログラムとして構成される。
【0007】
請求項2の発明は、前記モデル構成部分に対応した部分は、前記基準モデルの頂点である、ことを特徴として構成される。
【0008】
請求項3の発明は、前記モデル構成部分に対応した部分は、前記基準モデルの辺である、ことを特徴として構成される。
【0009】
請求項4の発明は、カーソル移動平面設定手順(2、7)は、前記構成部分選択手順(2、7)により選択されたモデル構成部分に対応する部分に応じて、異なるカーソル移動平面(CP1、CP2)を設定することを特徴として構成される。
【0010】
請求項5の発明は、請求項2の発明において、前記カーソル移動平面設定手順は、前記構成部分選択手順により選択された前記基準モデルの頂点(Pn)に応じて、異なるカーソル移動平面を設定することを特徴として構成される。
【0011】
請求項6の発明は、請求項2の発明において、前記カーソル移動平面設定手順は、前記カーソル移動平面を、前記構成部分選択手順により選択された前記基準モデルの頂点(Pn)を通過する形で設定することを特徴として構成される。
【0012】
請求項7の発明は、請求項3の発明において、前記カーソル移動平面設定手順は、前記構成部分選択手順により選択された前記基準モデルの辺に位置決めされたカーソル位置(D33)を通過する形でカーソル移動平面(CP2)を設定することを特徴として構成される。
【0013】
請求項8の発明は、メモリ内に3次元仮想空間を設定し、該設定された3次元仮想空間内に、入力手段からの指令により、オブジェクトをモデリングするための、複数の頂点及びそれらを結ぶ辺が表示された基準モデルを配置する基準モデル配置手段、
前記3次元仮想空間内に配置された基準モデルをレンダリングして、2次元画像を取得し、該取得した2次元画像を含む表示画像を生成し、ディスプレイに表示する2次元画像表示手段、
前記ディスプレイに表示された前記表示画像に対して、前記入力手段からの信号に応じて該表示画像上でカーソルを移動させ、前記基準モデルの寸法を変更させたいモデル構成部分に対応した部分を前記表示画像上で選択する構成部分指定手段、
前記選択された前記表示画像上でのモデル構成部分に対応した部分のワールド座標位置を演算するワールド座標演算手段、
前記演算されたワールド座標位置を通過するカーソル移動平面を前記3次元仮想空間内に設定する、カーソル移動平面設定手段、
前記入力手段からの信号に応じて前記ディスプレイに表示されたカーソルの位置を、前記モデル構成部分に対応した部分を選択した位置から、前記表示画像上で移動させるカーソル移動手段、
前記表示画像上で移動されたカーソルの、前記3次元仮想空間内でのワールド座標位置を、前記カーソルを前記カーソル移動平面上に投影させた位置に基づいて演算する、移動カーソル位置演算手段、
前記演算されたカーソルのワールド座標位置に基づいて、前記3次元仮想空間内の基準モデルの寸法を変更して変形モデルを前記3次元仮想空間内に演算生成する変形モデル生成手段、
前記生成された変形モデルをレンダリングして、前記変形モデルの2次元画像(PC2、PC3)を取得し、前記ディスプレイに表示する変形モデル表示手段、
を有する3次元モデリング装置として構成される。
【発明の効果】
【0014】
請求項1及び8の発明によれば、選択された表示画像(DP)上でのモデル構成部分に対応した部分のワールド座標位置(D13、D33)が演算され、演算されたワールド座標位置を通過するカーソル移動平面(CP1、CP2)が前記3次元仮想空間(16)内に設定され、表示画像(DP)上でのカーソル(20)の移動は3次元仮想空間(16)内に設定されたカーソル移動平面(CP1、CP2)上に投影された形で演算処理されるので、オペレータは3次元仮想空間(16)における位置をカーソル(20)を用いて適切に指示することが出来る。
【0015】
これにより、3次元仮想空間(16)内に配置された基準モデル(BM)に対する変形処理を、2次元画像(PC1)上でカーソル(20)を移動させることにより適切に指示し、実行することが出来る。
【0016】
請求項2の発明によれば、モデル構成部分に対応した部分を、前記基準モデルの頂点とすることにより、基準モデル(BM)に対する変形の指示を、基準モデル(BM)の3次元仮想空間(16)において表示要素として使用されている頂点を介して行うことが出来、ディスプレイに表示された表示画像(DP)を介した基準モデル(BM)に対する寸法の変更指示をオペレータが理解しやすい形で行うことが可能となる。
【0017】
請求項3の発明によれば、モデル構成部分に対応した部分は、前記基準モデルの辺とすることにより、基準モデル(BM)に対する変形の指示を、基準モデル(BM)の3次元仮想空間(16)において表示要素として使用されている辺を介して行うことが出来、ディスプレイに表示された表示画像(DP)を介した基準モデル(BM)に対する寸法の変更指示をオペレータが理解しやすい形で行うことが可能となる。
【0018】
請求項4の発明によれば、異なるカーソル移動平面(CP1、CP2)が、選択されたモデル構成部分に対応する部分に応じて設定されるので、選択された部分に応じたカーソル(20)の移動態様を設定することが出来、ディスプレイの表示画像(DP)に表示される変形モデル(PM11、PM12)の2次元画像(PC2、PC3)をオペレータにとって理解しやすい形に設定することが容易となる。
【0019】
請求項5の発明によれば、異なるカーソル移動平面(CP1)が、選択された基準モデル(BM)の頂点に応じて設定されるので、選択された頂点のワールド座標位置に応じたカーソル移動平面が設定され、ディスプレイ(13)の表示画像(DP)上で、選択された頂点からカーソル(20)を移動させる場合に、カーソル(20)を各頂点に対応させた形で違和感なく移動させることが出来、ディスプレイの表示画像(DP)におけるカーソル(20)の移動状態と3次元仮想空間(16)におけるカーソル(20)の移動状態を自然な状態で対応させることが出来る。
【0020】
請求項6の発明によれば、カーソル移動平面が、選択された前記基準モデルの頂点(Pn)を通過する形で設定されるので、ディスプレイ(13)の表示画像(DP)上で、選択された頂点からカーソル(20)を他の位置に移動させる場合に、3次元仮想空間(16)では、カーソル(20)を当該選択された頂点(Pn)に連続するカーソル移動平面(CP1)上を移動する形で制御することにより、ディスプレイの表示画像(DP)におけるカーソル(20)の移動状態と3次元仮想空間(16)におけるカーソル(20)の移動状態を違和感なく対応させることが出来る。
【0021】
請求項7の発明によれば、カーソル移動平面が、選択された基準モデルの辺(Fn)に位置決めされたカーソル位置(D33)を通過する形で設定されるので、表示画像(DP)上で、選択された辺上の位置からカーソル(20)を他の位置に移動させる場合に、3次元仮想空間(16)では、カーソル(20)を当該選択された辺(Fn)に位置決めされたカーソル位置(D33)に連続するカーソル移動平面(CP2)上を移動する形で制御することにより、ディスプレイの表示画像(DP)におけるカーソル(20)の移動状態と3次元仮想空間(16)におけるカーソル(20)の移動状態を違和感なく対応させることが出来る。
【0022】
なお、括弧内の番号等は、図面における対応する要素を示す便宜的なものであり、従って、本記述は図面上の記載に限定拘束されるものではない。
【発明を実施するための最良の形態】
【0023】
以下、図面に基づき、本発明の実施例を説明する。
【0024】
図1は、3次元モデリング装置の一例を示すブロック図、図2は、3次元仮想空間内のポリゴンモデルの変形処理と、ポリゴンモデルのレンダリング処理の一例を示す模式図、図3は、3次元仮想空間内のポリゴンモデルの変形処理と、ポリゴンモデルのレンダリング処理の別の例を示す模式図、図4は、ディスプレイに表示されるレンダリングされたポリゴンモデルの画像の一例を示す図、図5は、3次元モデルの変形処理の一例を示すフローチャートである。
【0025】
3次元モデリング装置1は、図1に示すように、主制御部2を有しており、主制御部2には、バス線3を介してキーボード、マウス、ジョイスティクなどの入力部5、3次元仮想空間演算部6、カーソル位置演算部7、プログラムメモリ9、モデル形状演算部10、表示画像生成演算部11、画像表示制御部12、ディスプレイ13、3次元仮想空間メモリ15、カーソル移動制御部21などが接続されている。なお、図1に示すブロック図における各ブロックは、コンピュータが適宜なメモリに格納された3次元モデリングプログラムを実行することにより、該プログラムにより機能化された状態を示すものであるが、各ブロックをハードウエアで構成することも当然可能である。従って、入力部5やディスプレイ13、メモリ9,15を除いた、図1に示す各ブロックは、3次元モデリングプログラムを構成する構成要素(プログラム手順)を具現化した一例と考えることが出来る。
【0026】
即ち、メモリ9,15は、コンピュータのメインメモリに相当し、主制御部2,各演算部及び制御部6,7,10,11,12,21などは、メインメモリに格納された3次元モデリングプログラムに基づいて、CPUが機能化された状態(プログラムを構成する各手順を実行している状態)を示すもと考えることが出来る。以後の説明は、3次元モデリング装置1として説明するが、この説明は、3次元モデリングプログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる3次元モデリング装置を説明したものとも解釈することが出来ることは、当然である。
【0027】
3次元モデリング装置1は、以上のような構成を有するので、3次元コンピュータグラフィックを作成するには、主制御部2は、プログラムメモリ9から、モデリングプログラムMPGを読み出して、当該モデリングプログラムMPGに基づいて、3次元仮想空間演算部6に対して、3次元空間を生成するように指令する。
【0028】
これを受けて、3次元仮想空間演算部6は、3次元仮想空間メモリ15内に、図2に示すように、互いに直交するX軸、Y軸及びZ軸からなるワールド座標系を設定し、3次元仮想空間16を設定する(図5のステップS1)。オペレータは、3次元モデリング装置1を用いて、3次元仮想空間16内に配置すべきオブジェクトをモデリングする作業を行うが、その際、オペレータは入力部5を操作して、3次元仮想空間演算部6に対して、モデリングしようとするモデルの基礎となる基準モデルBMを3次元仮想空間16内に配置するように、主制御部2に対して指令する。
【0029】
オペレータは、これからモデリングしようとするモデルとして、例えば三角柱、四角柱、直方体、多角形柱等の外観を有するポリゴンモデルを基準モデルBMとして、入力部5を介して所定の信号を主制御部2に出力することにより選択指令し、主制御部2は、オペレータが入力部5を介して選択入力した基準モデルBMに基づいて、モデル形状演算部10に対して、基準モデルに対応する基準モデルデータBMDを、プログラムメモリ9から読み出すように指令する。そして、更に、主制御部2はモデル形状演算部10に対して、当該基準モデルデータBMDに基づいて対応する基準モデルBMを3次元仮想空間メモリ15内にポリゴンモデル(モデリングの必要に応じて、ワイヤフレームモデルでも可)として設定するように指令する。
【0030】
これを受けて、モデル形状演算部10は、プログラムメモリ9から、オペレータが入力部5を介して入力した基準モデルBMに対応した基準モデルデータBMDを読み出し、当該基準モデルデータBMDに基づいて、3次元仮想空間メモリ15内の3次元仮想空間16内に、図2に示すように、直方体のポリゴンモデルPM1を設定する(図5のステップS2)。
【0031】
ポリゴンモデルPM1は、8個の頂点P1、P2、……P8から構成され、それら頂点P1、P2、……P8を結ぶ辺F1、F2、……F11,F12により定義付けられる6枚の板ポリゴンPG1、PG2、……PG6を有している。
【0032】
また、3次元仮想空間16には、表示画像生成演算部11により、3次元仮想空間16内の適宜座標位置に、視点VPを中心に視点座標系17が設定され、視点座標系17には、視軸であるZ軸上の適宜な座標位置に、投影面19が設定されている。表示画像生成演算部11は、3次元仮想空間16内に配置されたポリゴンモデルPM1を、投影面19に投影して、ポリゴンモデルPM1のレンダリング処理を行い、ポリゴンモデルPM1の2次元画像PC1を取得する。
【0033】
投影面19に投影することにより得られた2次元画像PC1は、画像表示制御部12により、図示しないフレームバッファメモリに表示画像DPとして生成され、該生成された表示画像DPは所定にタイミングで、ディスプレイ13に出力され、図4(a)に示すように表示される。オペレータは、ディスプレイ13に表示された2次元画像PC1の表示画像DPを見ることにより、3次元仮想空間16内に自分がこれからモデリングしようとして、入力部5を介して設置を指示した基準モデルBMに対応する2次元画像PC1が表示されたことを認識する。
【0034】
次に、オペレータは、ディスプレイ13に表示された表示画像DPから、基準モデルBMとしてのポリゴンモデルPM1の形状及び大きさを参照して、入力部5を適宜操作することにより、3次元仮想空間16内に設定されたポリゴンモデルPM1を、適宜変形させて、オペレータが意図する大きさ及び形状のポリゴンモデルを得る作業を行う。
【0035】
これには、まず、オペレータは入力部5を介して所定の信号(指令)を主制御部2に出力することにより、カーソル20を、主制御部2を介したカーソル移動制御部21の機能に基づいて、ディスプレイ13の表示画像DP上で移動させ、オペレータがその寸法を変えたい、ポリゴンモデルPM1のモデル構成部分に対応する部分、即ち基準モデルBMの頂点や辺が表示されている画像を、当該表示画像DP上で選択する処理を行う(図5のステップS3)。例えば、オペレータは、図4(a)に示すように、カーソル20を、画面に表示されたポリゴンモデルPM1の表示画像DPの頂点P1に位置決めする。この頂点への位置決めは、基準モデルBMのポリゴンモデルPM1が有する8個の頂点P1、P2、……P8の何れに対しても行うことが出来る。オペレータは、後述する基準モデルBMであるポリゴンモデルPM1に対する寸法の変更処理の内容を考慮しながら、目的とする所定形状のポリゴンモデルを得るために必要な、ポリゴンモデルPM1の頂点位置を選択する。
【0036】
なお、基準モデルBMに対する寸法の変更は、基本的に当該モデルを構成する辺の長さの変更、あるいは頂点位置の変更として捉えることが出来るので、オペレータによる寸法の変更指示に際してオペレータがカーソル20により選択する基準モデルBMの構成部分に対応する部分は、基準モデルBMを表示する2次元画像PC1を構成する複数の辺あるいは頂点の内の、何れかとすることが適当である。ただ、オペレータが入力部5を介して選択した特定の頂点や辺に対して、どの辺を寸法変更の対象とするかは、適宜設定することが出来る。
【0037】
ディスプレイ13上の、ポリゴンモデルPM1の2次元画像PC1を表示する表示画像DPは、表示画像生成演算部11により、ワイヤフレーム表示されており、従って、オペレータはポリゴンモデルPM1上の任意の頂点1、P2、……P8を、隠面消去されることなくカーソル20で選択することが出来る。
【0038】
こうして、オペレータがカーソル20を、ポリゴンモデルPM1の8個の頂点P1、P2、……P8の内のいずれかにディスプレイ13上の表示画像DPを介して位置決めして、所定の位置決定信号を入力部5を介して主制御部2に入力したところで、主制御部2は、カーソル位置演算部7に対して、カーソル20の、3次元仮想空間16内におけるワールド座標系位置を演算するように指令する。ディスプレイ13の画面上の表示画像DPが表示する2次元画像PC1は、視点座標系17の投影面19のvu座標系上に投影されたポリゴンモデルPM1の画像であるので、カーソル位置演算部7は、ディスプレイ13に表示される表示画像DP上のカーソル20の座標位置D1を、図2に示すように、2次元画像PC1が投影される投影面19のvu座標系上の対応する座標位置D12に変換する処理を行う。投影面19のvu座標系は、ディスプレイ13の表示座標と1対1に対応するので、カーソル位置のvu座標系への変換は容易に行うことが出来る。
【0039】
しかし、このままでは、オペレータが指示したカーソル20の、3次元仮想空間16内におけるワールド座標系の位置は、視点VPと投影面19上のカーソル位置、及びポリゴンモデルPM1の頂点P1を結ぶ線分L1の延長線上のどの位置にもカーソル20を配置することが出来るので、カーソル20の3次元仮想空間16内での位置は特定されない。
【0040】
そこで、カーソル位置演算部7は、カーソル20が、ディスプレイ13上の表示画像DPにおいて、ポリゴンモデルPM1のモデル構成部分の頂点P1、P2、……P8を選択していたか、それともモデル構成部分の辺F1、F2、……F11,F12を選択していたかを、表示画像DP上の2次元画像PC1の座標位置とカーソル20の座標位置D1の関係から判断する。表示画像DP上でカーソル20の座標位置D1とポリゴンモデルPM1の2次元画像PC1における頂点P1、P2、……P8の座標位置が一致している場合には、カーソル位置演算部7はオペレータによりポリゴンモデルPM1の頂点P1、P2、……P8の内一つの頂点が選択されたものと判断して、図2に示すように、カーソル20のワールド座標位置D13として、オペレータが選択した頂点P1(Pn、nは1〜8)の座標位置を採用する。即ち、当該頂点P1のワールド座標位置をカーソル20のワールド座標位置D13として演算し、適宜なカーソル位置メモリに格納すると共に、3次元仮想空間16内に、当該選択されたポリゴンモデルPM1の特定の頂点P1(Pn、nは1〜8)を通過する第1カーソル移動平面CP1を演算設定する。
【0041】
第1カーソル移動平面CP1は、図2に示すように、3次元仮想空間16内に設定された視点座標系17の視軸、即ちZ軸に直交して、かつオペレータにより選択された頂点Pnを通過する平面として唯一設定される。図2の場合には、頂点P1がオペレータにより選択されたものとして、3次元仮想空間16内で、頂点P1を通過し、視点座標系17のZ軸に直交する第1カーソル移動平面CP1が、設定される。上記した処理により、第1カーソル移動平面CP1は、選択された各頂点Pn毎に設定されることとなる。
【0042】
カーソル位置演算部7は、こうして設定された第1カーソル移動平面CP1上に、投影面19の位置D12に配置されたカーソル20を投影させる。図2の場合、既に述べたように、ポリゴンモデルPM1の頂点P1のワールド座標位置が、カーソル位置として演算され、カーソル位置メモリに格納される。
【0043】
オペレータは、ディスプレイ13に表示された表示画像DPを参照しながら、入力部5を操作して所定の信号を主制御部2に対して出力することにより、カーソル20を、自分が選択したポリゴンモデルPM1の2次元画像PC1における頂点Pnが表示されている位置から適宜な方向に、表示画像DP上で移動させる。この際のカーソル20の表示画像DP上での移動処理は、主制御部2の指令に基づき、カーソル移動制御部21により行われる。
【0044】
カーソル位置演算部7は、表示画像DP上でカーソル20の位置が移動すると、投影面19上に変換配置されているカーソル20の画像位置を、図2に示すように、表示画像DP上のカーソル20の移動に対応した形で、移動演算する(図5のステップS6)と共に、該投影面19上のカーソル20を、第1カーソル移動平面CP1上に投影して、当該第1カーソル移動平面CP1上でのカーソル20のワールド座標位置を演算して、当該演算された座標位置をカーソル20の3次元仮想空間16での現在位置として、カーソル位置メモリに格納された座標位置を更新する。
【0045】
例えば、図4(a)に示すように、オペレータがディスプレイ13に表示されたポリゴンモデルPM1の2次元画像PC1の頂点P1が表示された座標位置D1から、位置D2にカーソル20を移動させた場合、3次元仮想空間16内に設定された視点座標系17の投影面19上に変換されたカーソル20は、カーソル位置演算部7により、位置D1に対応した位置D12から、位置D2に対応した位置D22にまで移動位置決めされる。
【0046】
そして、カーソル位置演算部7は、投影面19の位置D22に移動位置決めされたカーソル20を、第1カーソル移動平面CP1上に投影して、座標位置D23を、ディスプレイ13のカーソル位置D2に対応するワールド座標位置D23として演算し、カーソル位置メモリのカーソル20の現在位置を更新格納する(図5のステップS7)。
【0047】
なお、カーソル20が3次元仮想空間16で移動する第1カーソル移動平面CP1は、オペレータが選択した頂点Pnのワールド座標位置D13に連続した形で設定されているので、カーソル20を表示画像DP上で座標位置D1からD2に移動させた場合に、3次元仮想空間16に投影されるカーソル20の位置も、ディスプレイ13の表示画像DPにおけるカーソル20の移動状態に対応させる形でワールド座標位置D13から第1カーソル移動平面CP1上をワールド座標位置D23まで、3次元仮想空間16内での平行移動の形で連続的に移動させることが出来る。これにより、カーソル20が3次元仮想空間16内で、投影面19上のカーソル20の座標位置D22とワールド座標位置D23を結ぶ線分L4上の任意の位置に位置決めされてしまい、オペレータの意図しない基準モデルBMの変形が行われるような事態が回避され、違和感のないカーソル20の移動制御が可能となる。
【0048】
こうして、オペレータがディスプレイ13に表示された表示画像DP上で、カーソル20を座標位置D1からD2に移動させ、その移動に対応したカーソル20の3次元仮想空間16におけるワールド座標位置D23が求められると、主制御部2は、モデル形状演算部10に対して、3次元仮想空間16内に配置された基準モデルBMを、第1カーソル移動平面CP1上のカーソル20の座標位置D23に対応して変形処理するように指令する。
【0049】
これを受けて、モデル形状演算部10は、カーソル位置メモリ内に格納されたカーソル20の3次元仮想空間16における座標位置D23に基づいて、当該座標位置D23に、オペレータが選択したポリゴンモデルPM1の頂点Pnを移動させた場合の、ポリゴンモデルPM11を、図2に示すように演算生成し、3次元仮想空間16内に配置する。即ち、モデル形状演算部10は、ポリゴンモデルPM1の頂点Pnが移動した場合には、当該頂点Pnから、当該頂点Pnを含まない板ポリゴンPGn(頂点P1の場合、板ポリゴンPG3、PG4、PG6)を含む平面(図2の場合、板ポリゴンPG3に対応したY−Z平面に平行な平面、板ポリゴンPG4に対応したX−Z平面に平行な平面、板ポリゴンPG6に対応したY−X平面に平行な平面)に対して下ろした垂線VLに基づいて、新たなポリゴンモデルPM11(変形モデル)を演算して、3次元仮想空間16内に配置する(図5のステップS8)。
【0050】
なお、第1カーソル移動平面CP1上で移動したカーソル20の座標位置D23に基づいて、ポリゴンモデルPM1を変形させる演算手法は、各種の公知の手法を用いることが出来る。
【0051】
こうして、第1カーソル移動平面CP1上で移動配置されたカーソル20のワールド座標位置D23に基づいて、新たなポリゴンモデルPM11が演算生成され、3次元仮想空間16内に配置されると、表示画像生成演算部11は、当該ポリゴンモデルPM11を視点座標系17の投影面19を介してレンダリングして、その2次元画像PC2を演算取得し、更に当該2次元画像PC2から画像表示制御部12を介してディスプレイ13に表示すべき表示画像DPを生成して、図4(a)に示すようにディスプレイ13に表示する(図5のステップS9)。
【0052】
なお、第1カーソル移動平面CP1は、オペレータが選択した頂点Pnを通過する形で、それぞれ異なる移動平面が設定されるので、選択された各頂点Pnの移動処理、従って、基準モデルBMの変形処理に適した形の第1カーソル移動平面CP1を設定することが出来る。
【0053】
表示画像DPに表示されたポリゴンモデルPM11の2次元画像PC2は、表示画像DP上に表示されたカーソル20の座標位置D2に、ポリゴンモデルPM11の頂点P1が配置された形で表示される。オペレータはディスプレイ13に表示されたポリゴンモデルPM11の2次元画像PC2により、基準モデルBMのポリゴンモデルPM1がオペレータによるカーソル20の表示画像DP上での移動に伴って変形されたものと理解する。
【0054】
表示画像DP上で、オペレータが指示したカーソル20は、表示画像DPと対応する3次元仮想空間16内の視点座標系17に設定された投影面19に設定されたカーソル20と1対1で対応し、更に、オペレータが選択した基準モデルBMの頂点Pnを通過する、視点座標系17の視軸に垂直に設定された第1カーソル移動平面CP1上を移動するように制御される。従って、2次元の表示画像DP上で指示されたカーソル20の位置は、3次元仮想空間16内では、ポリゴンモデルPM1の頂点Pnを通過する、投影面19に平行な平面上で移動制御され、オペレータの基準モデルBMに対する変更指示を、オペレータが理解しやすい形で3次元仮想空間16内で変換することが可能となり、基準モデルBMを変形して新たなポリゴンモデルPM11を演算生成する行程を、カーソルの移動動作に連係させて表示させることが出来、カーソル20の2次元の表示画像DP上での移動を、変形の対象となる基準モデルBMと関連付けた形で3次元仮想空間16内の座標位置に変換することが出来る。
【0055】
こうして、オペレータはディスプレイ13に表示された基準モデルBMとしてのポリゴンモデルPM1を、表示画像DP上でカーソル20を移動させることにより変形させ、所望の大きさのポリゴンモデルPM11を得たところで、入力部5を介して、当該ポリゴンモデルPM11を3次元仮想空間16で生成するために必要な生成データの格納を主制御部3に対して指令する。これを受けて、主制御部2は、モデル形状演算部10を介して、ポリゴンモデルPM11の生成データを図示しないメモリに格納する。モデル形状演算部10は、ポリゴンモデルPM11を3次元仮想空間16内に生成配置するに際して、既に当該ポリゴンモデルPM11の生成に必要な生成データを演算して所持しているので、当該生成データの格納動作は、直ちに行うことが出来る。
【0056】
また、オペレータが変形させたい基準モデルBMとしてのポリゴンモデルPM1の構成部分をディスプレイ13に表示された表示画像DP上で選択する際に(図5のステップS3)、オペレータはポリゴンモデルPM1の頂点Pnに限らず、ポリゴンモデルPM1を構成する各辺F1、F2、……F11,F12を選択することが出来る。
【0057】
即ち、既に述べたように、カーソル位置演算部7は、カーソル20が、ディスプレイ13上の表示画像DPにおいて、ポリゴンモデルPM1の構成部分の頂点P1、P2、……P8を選択していたか、それとも辺F1、F2、……F11,F12を選択していたかを、表示画像DP上の2次元画像PC1の座標位置とカーソル20の座標位置D1の関係から判断する。
【0058】
仮に、オペレータが、図4(b)に示すように、表示画像DP上の辺F1、F2、……F11,F12を選択していた場合、即ち、表示画像DP上でカーソル20の座標位置D3とポリゴンモデルPM1の2次元画像PC1における辺F1、F2、……F11,F12の座標位置が一致している場合、即ちカーソル20が、各辺F1、F2、……F11,F12の上の適宜な位置に位置決めされている場合、カーソル位置演算部7はオペレータによりポリゴンモデルPM1の辺F1、F2、……F11,F12の内一つの辺が選択されたものと判断して、図3に示すように、3次元仮想空間16内に、当該選択されたポリゴンモデルPM1の特定の辺Fn(nは1〜12)を通過する第2カーソル移動平面CP2を演算設定する。
【0059】
第2カーソル移動平面CP2は、図3に示すように、基準モデルBMである、直方体状のポリゴンモデルPM1の任意の対向する、平行に設定された板ポリゴンPGnの組、即ち板ポリゴンPG1とPG6、板ポリゴンPG2とPG4、板ポリゴンPG5とPG3の内、選択された辺Fnにより接続されている板ポリゴンの組を抽出し、それら板ポリゴンに平行に第2カーソル移動平面CP2を設定する。
【0060】
例えば、オペレータが、図4(b)のディスプレイ13に表示された表示画像DP上の、2次元画像PC1の辺F10上に、カーソル20を位置決めした場合、カーソル位置演算部7は、カーソル20の表示画像DP上の座標位置D3が、表示画像DP上の辺F10の座標位置(固定値ではなく、辺F10を表示画像DP上で表示する直線の式)と一致するか否か(辺F10上に座標位置D3が存在するか否か)を演算判定し、一致した場合には、オペレータがポリゴンモデルPM1の辺F10を選択したもの判断する。
【0061】
次に、カーソル位置演算部7は、2次元画像PC1上で、オペレータが選択した辺F10におけるカーソル20の座標位置D3を演算し、当該座標位置D3に基づいて3次元仮想空間16のポリゴンモデルPM1の対応する辺F10の対応するワールド座標位置D33を、3次元仮想空間16内のポリゴンモデルPM1の辺F10上にカーソル20が位置しているものとして演算し、得られたカーソル20のワールド座標位置D33を、適宜なカーソル位置メモリに格納する。また、同時に、当該選択されたポリゴンモデルPM1の特定の辺F10(Fn、nは1〜12)のカーソル20が位置決めされたワールド座標位置D33を通過する第2カーソル移動平面CP2を演算設定する(図5のステップS10)。
【0062】
第2カーソル移動平面CP2は、図3に示すように、3次元仮想空間16内に設定された直方体のポリゴンモデルPM1の上下に対向する形で配置された板ポリゴンPG2又はPG4に平行な平面として唯一設定される。図2の場合には、辺F10がオペレータにより選択されたものとして、3次元仮想空間16内で、辺F10のカーソル20が位置決めされたワールド座標位置D33を通過し、板ポリゴンPG2又はPG4に平行な第2カーソル移動平面CP2が、設定される。
【0063】
カーソル位置演算部7は、こうして設定された第2カーソル移動平面CP2上に、表示画像DP上の座標位置D3にオペレータにより位置決めされたカーソル20を、投影面19の対応する座標位置D32を介して、第2カーソル移動平面CP2上のワールド座標位置D33に投影させる。
【0064】
オペレータは、図4(b)に示すように、ディスプレイ13に表示された表示画像DPを参照しながら、入力部5を操作してカーソル20を、自分が選択したポリゴンモデルPM1の2次元画像PC1における辺Fnが表示されている位置D3から適宜な方向に、表示画像DP上で移動させる。
【0065】
カーソル位置演算部7は、表示画像DP上でカーソル20の位置が移動すると、投影面19上に変換配置されているカーソル20の画像位置を、図3に示すように、表示画像DP上のカーソル20の移動に対応した形で、移動演算する(図5のステップS11)と共に、該投影面19上のカーソル20を、第2カーソル移動平面CP2上に投影して、当該第2カーソル移動平面CP2上でのカーソル20のワールド座標位置を演算して、当該演算された座標位置をカーソル20の3次元仮想空間16での現在位置として、カーソル位置メモリに格納された座標位置を更新する(図5のステップS12)。
【0066】
例えば、図4(b)に示すように、オペレータがディスプレイ13に表示されたポリゴンモデルPM1の2次元画像PC1の辺F10が表示された座標位置D3から、位置D4にカーソル20を移動させた場合、3次元仮想空間16内に設定された視点座標系17の投影面19上に変換されたカーソル20は、カーソル位置演算部7により、位置D3に対応した位置D32から、位置D4に対応した位置D42にまで移動位置決めされる。
【0067】
そして、カーソル位置演算部7は、投影面19の位置D42に移動位置決めされたカーソル20を、第2カーソル移動平面CP2上に投影して、座標位置D43を、ディスプレイ13のカーソル位置D4に対応するワールド座標位置D43として演算し、カーソル位置メモリのカーソル20の現在位置を更新格納する。
【0068】
なお、カーソル20が3次元仮想空間16で移動する第2カーソル移動平面CP2は、オペレータが辺Fnを選択した際にカーソル20を表示画像DP上で位置決めした位置に対応したワールド座標位置D33に連続した形で設定されているので、カーソル20を表示画像DP上で座標位置D3からD4に移動させた場合に、3次元仮想空間16に投影されるカーソル20の位置も、ディスプレイ13の表示画像DPにおけるカーソル20の移動状態に対応させる形でワールド座標位置D33から第2カーソル移動平面CP2上をワールド座標位置D43まで、3次元仮想空間16内での平行移動の形で連続的に移動させることが出来る。これにより、カーソル20が3次元仮想空間16内で、投影面19上のカーソル20の座標位置D42とワールド座標位置D43を結ぶ線分L3上の任意の位置に位置決めされてしまい、オペレータの意図しない基準モデルBMの変形が行われるような事態が回避され、違和感のないカーソル20の移動制御が可能となる。
【0069】
こうして、オペレータがディスプレイ13に表示された表示画像DP上で、カーソル20を座標位置D3からD4に移動させ、その移動に対応したカーソル20の3次元仮想空間16におけるワールド座標位置D43が求められると、主制御部2は、モデル形状演算部10に対して、3次元仮想空間16内に配置された基準モデルBMを、第2カーソル移動平面CP2上のカーソル20の座標位置D43に対応して変形処理するように指令する。
【0070】
これを受けて、モデル形状演算部10は、カーソル位置メモリ内に格納されたカーソル20の3次元仮想空間16における座標位置D43に基づいて、当該座標位置D43に、オペレータが選択したポリゴンモデルPM1の辺Fnを移動させた場合の、ポリゴンモデルPM12を、図3に示すように演算生成し、3次元仮想空間16内に配置する。即ち、モデル形状演算部10は、ポリゴンモデルPM1の辺Fnが移動した場合には、辺Fnの長さL2はそのまま維持して、ポリゴンモデルPM1全体を、上下の板ポリゴンPG5、PG3間で、直方体を維持したまま拡大させる形となるように新たなポリゴンモデルPM12(変形モデル)を演算して、3次元仮想空間16内に配置する(図5のステップS13)。
【0071】
なお、第2カーソル移動平面CP2上で移動したカーソル20の座標位置D43に基づいて、ポリゴンモデルPM1を変形させる演算手法は、各種の公知の手法を用いることが出来る。
【0072】
こうして、第2カーソル移動平面CP2上で移動配置されたカーソル20のワールド座標位置D43に基づいて、新たなポリゴンモデルPM12が演算生成され、3次元仮想空間16内に配置されると、表示画像生成演算部11は、当該ポリゴンモデルPM12を視点座標系17の投影面19を介してレンダリングして、その2次元画像PC3を演算取得し、更に当該2次元画像PC3から画像表示制御部12を介してディスプレイ13に表示すべき表示画像DPを生成して、図4(b)に示すようにディスプレイ13に表示する(図5のステップS9)。
【0073】
表示画像DPに表示されたポリゴンモデルPM12の2次元画像PC3は、表示画像DP上に表示されたカーソル20の座標位置D4に、ポリゴンモデルPM12の辺F10が配置された形で表示され、オペレータはディスプレイ13に表示されたポリゴンモデルPM12の2次元画像PC3により、基準モデルBMのポリゴンモデルPM1がオペレータによるカーソル20の表示画像DP上での移動に伴って変形されたものと理解する。
【0074】
表示画像DP上で、オペレータが指示したカーソル20は、表示画像DPと対応する3次元仮想空間16内の視点座標系17に設定された投影面19上のカーソル20と1対1で対応し、更に、オペレータが選択した基準モデルBMの辺Fn上のカーソルのワールド座標位置D33を通過する、第2カーソル移動平面CP2上を移動するように制御される。従って、2次元の表示画像DP上で指示されたカーソル20の位置は、3次元仮想空間16内では、ポリゴンモデルPM1の辺Fn上のカーソル位置を通過する、基準モデルBMの特定の板ポリゴンPGn(図3の場合、PG2又はPG4)に平行な平面上で移動制御され、オペレータの基準モデルBMに対する変更指示を、オペレータが理解しやすい形で3次元仮想空間16内で変換することが可能となる。これにより、基準モデルBMを変形して新たなポリゴンモデルPM12を演算生成する行程を、カーソルの移動動作に連係させて表示させることが出来、カーソル20の2次元の表示画像DP上での移動を、変形の対象となる基準モデルBMと関連付けた形で3次元仮想空間16内の座標位置に変換することが出来る。
【0075】
こうして、オペレータはディスプレイ13に表示された基準モデルBMとしてのポリゴンモデルPM1を、表示画像DP上でカーソル20を移動させることにより変形させ、所望の大きさのポリゴンモデルPM12を得たところで、入力部5を介して、当該ポリゴンモデルPM12を3次元仮想空間16で生成するために必要な生成データの格納を主制御部2に対して指令する。これを受けて、主制御部2は、モデル形状演算部10を介して、ポリゴンモデルPM12の生成データを図示しないメモリに格納する。モデル形状演算部10は、ポリゴンモデルPM12を3次元仮想空間16内に生成配置するに際して、既に当該ポリゴンモデルPM12の生成に必要な生成データを演算して所持しているので、当該生成データの格納動作は、直ちに行うことが出来る。
【産業上の利用可能性】
【0076】
本発明は、3次元コンピュータクラフィックを作成する際に、ポリゴンやワイヤフレームによりオブジェクトをモデリングする際に使用する、モデリングプログラム及びモデリング装置として利用することが出来る。
【図面の簡単な説明】
【0077】
【図1】図1は、3次元モデリング装置の一例を示すブロック図。
【図2】図2は、3次元仮想空間内のポリゴンモデルの変形処理と、ポリゴンモデルのレンダリング処理の一例を示す模式図。
【図3】図3は、3次元仮想空間内のポリゴンモデルの変形処理と、ポリゴンモデルのレンダリング処理の別の例を示す模式図。
【図4】図4は、ディスプレイに表示されるレンダリングされたポリゴンモデルの画像の一例を示す図。
【図5】図5は、3次元モデルの変形処理の一例を示すフローチャート。
【符号の説明】
【0078】
1……コンピュータ(3次元モデリング装置)
2……主制御部
5……入力手段(入力部)
6……3次元仮想空間演算部
7……カーソル位置演算部
10……モデル形状演算部
11……表示画像生成演算部
12……画像表示制御部
13……ディスプレイ
16……3次元仮想空間
20……カーソル
D1、D3……座標位置
D13、D23、D33、D43……ワールド座標位置
P1、P2……、P8……頂点
F1、F2……、F12……辺
PM11、PM12……変形モデル(ポリゴンモデル)
PC1、PC2、PC3……2次元画像
CP1、CP2……カーソル移動平面
BM……基準モデル
DP……表示画像

【特許請求の範囲】
【請求項1】
コンピュータに、
メモリ内に3次元仮想空間を設定し、該設定された3次元仮想空間内に、入力手段からの指令により、オブジェクトをモデリングするための、複数の頂点及びそれらを結ぶ辺が表示された基準モデルを配置する基準モデル配置手順、
前記3次元仮想空間内に配置された基準モデルをレンダリングして、2次元画像を取得し、該取得した2次元画像を含む表示画像を生成し、ディスプレイに表示する2次元画像表示手順、
前記ディスプレイに表示された前記表示画像に対して、前記入力手段からの信号に応じて該表示画像上でカーソルを移動させ、前記基準モデルの寸法を変更させたいモデル構成部分に対応した部分を前記表示画像上で選択する構成部分選択手順、
前記選択された前記表示画像上でのモデル構成部分に対応した部分のワールド座標位置を演算するワールド座標演算手順、
前記演算されたワールド座標位置を通過するカーソル移動平面を前記3次元仮想空間内に設定する、カーソル移動平面設定手順、
前記入力手段からの信号に応じて前記ディスプレイに表示されたカーソルの位置を、前記モデル構成部分に対応した部分を選択した位置から、前記表示画像上で移動させるカーソル移動手順、
前記表示画像上で移動されたカーソルの、前記3次元仮想空間内でのワールド座標位置を、前記カーソルを前記カーソル移動平面上に投影させた位置に基づいて演算する、移動カーソル位置演算手順、
前記演算されたカーソルのワールド座標位置に基づいて、前記3次元仮想空間内の基準モデルの寸法を変更して変形モデルを前記3次元仮想空間内に演算生成する変形モデル生成手順、
前記生成された変形モデルをレンダリングして、前記変形モデルの2次元画像を取得し、前記ディスプレイに表示する変形モデル表示手順、
を実行させるための3次元モデリングプログラム。
【請求項2】
前記モデル構成部分に対応した部分は、前記基準モデルの頂点である、ことを特徴とする、請求項1記載の3次元モデリングプログラム。
【請求項3】
前記モデル構成部分に対応した部分は、前記基準モデルの辺である、ことを特徴とする、請求項1記載の3次元モデリングプログラム。
【請求項4】
前記カーソル移動平面設定手順は、前記構成部分選択手順により選択されたモデル構成部分に対応する部分に応じて、異なるカーソル移動平面を設定することを特徴とする、請求項1記載の3次元モデリングプログラム。
【請求項5】
前記カーソル移動平面設定手順は、前記構成部分選択手順により選択された前記基準モデルの頂点に応じて、異なるカーソル移動平面を設定することを特徴とする、請求項2記載の3次元モデリングプログラム。
【請求項6】
前記カーソル移動平面設定手順は、前記カーソル移動平面を、前記構成部分選択手順により選択された前記基準モデルの頂点を通過する形で設定することを特徴とする、請求項2記載の3次元モデリングプログラム。
【請求項7】
前記カーソル移動平面設定手順は、前記構成部分選択手順により選択された前記基準モデルの辺に位置決めされたカーソル位置を通過する形でカーソル移動平面を設定することを特徴とする、請求項3記載の3次元モデリングプログラム。
【請求項8】
メモリ内に3次元仮想空間を設定し、該設定された3次元仮想空間内に、入力手段からの指令により、オブジェクトをモデリングするための、複数の頂点及びそれらを結ぶ辺が表示された基準モデルを配置する基準モデル配置手段、
前記3次元仮想空間内に配置された基準モデルをレンダリングして、2次元画像を取得し、該取得した2次元画像を含む表示画像を生成し、ディスプレイに表示する2次元画像表示手段、
前記ディスプレイに表示された前記表示画像に対して、前記入力手段からの信号に応じて該表示画像上でカーソルを移動させ、前記基準モデルの寸法を変更させたいモデル構成部分に対応した部分を前記表示画像上で選択する構成部分選択手段、
前記選択された前記表示画像上でのモデル構成部分に対応した部分のワールド座標位置を演算するワールド座標演算手段、
前記演算されたワールド座標位置を通過するカーソル移動平面を前記3次元仮想空間内に設定する、カーソル移動平面設定手段、
前記入力手段からの信号に応じて前記ディスプレイに表示されたカーソルの位置を、前記モデル構成部分に対応した部分を選択した位置から、前記表示画像上で移動させるカーソル移動手段、
前記表示画像上で移動されたカーソルの、前記3次元仮想空間内でのワールド座標位置を、前記カーソルを前記カーソル移動平面上に投影させた位置に基づいて演算する、移動カーソル位置演算手段、
前記演算されたカーソルのワールド座標位置に基づいて、前記3次元仮想空間内の基準モデルの寸法を変更して変形モデルを前記3次元仮想空間内に演算生成する変形モデル生成手段、
前記生成された変形モデルをレンダリングして、前記変形モデルの2次元画像を取得し、前記ディスプレイに表示する変形モデル表示手段、
を有する3次元モデリング装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−40229(P2006−40229A)
【公開日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−223531(P2004−223531)
【出願日】平成16年7月30日(2004.7.30)
【出願人】(000105637)コナミ株式会社 (106)
【Fターム(参考)】