JP4109745B2 - 三次元空間表示システムにおける物体移動配置装置及び方法 - Google Patents
三次元空間表示システムにおける物体移動配置装置及び方法 Download PDFInfo
- Publication number
- JP4109745B2 JP4109745B2 JP09527698A JP9527698A JP4109745B2 JP 4109745 B2 JP4109745 B2 JP 4109745B2 JP 09527698 A JP09527698 A JP 09527698A JP 9527698 A JP9527698 A JP 9527698A JP 4109745 B2 JP4109745 B2 JP 4109745B2
- Authority
- JP
- Japan
- Prior art keywords
- dimensional space
- intersection
- vector
- point
- arbitrary point
- 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 - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、設計やバーチャルリアリティ等に用いる表示映像上で仮想物体を取り扱う三次元表示システムにおいて、表示映像上における三次元空間で物体を所望の位置に移動させる装置に関する。
【0002】
【従来の技術】
従来、三次元物体を扱う分野でのシステム技術として、設計に用いる三次元CADシステム、バーチャルリアリティ(以下、VRという。)空間の設計デザインに用いるVRオーサリングツールなどがある。
【0003】
上記のシステム技術はいずれの場合も、三次元物体の位置を規定する際に、位置について三軸(x位置、y位置、z位置)、回転について三軸(x回転、y回転、z回転)、即ち、六軸の変数を与える必要がある。
【0004】
そして、マウスなどの二次元デバイスを利用して三次元物体を移動させようとする場合、従来の方法では一度に最大2つの変数しか与えることができず、そのため、一度の操作では2変数以内で対象変数を指定、変更していた。つまり、三次元物体を移動させるためには、移動方向や回転方向を順番に指定していく必要がある。
【0005】
具体的には、表示映像上の三次元物体を任意の位置に移動して、向きを変えて配置する際、例えば水平を表すX軸−Z軸方向への移動と、垂直を表すY軸方向への移動と、Y軸方向への回転という、少なくとも3つの操作を順番に行わなければならない。
【0006】
この操作は手順として煩雑であるだけでなく、操作方法を論理的に把握し、その過程を考慮しながら作業を行う必要があり、感覚的な操作ではない。このため、当該技術に熟練した技術者でなければ操作を行うことは不可能で、空間デザイナーなどのクリエイターをはじめ、一般の利用者に対して広く利用させることは困難であった。
【0007】
また、別の従来技術として、VRを体験する環境でポヒマスセンサなどのリアルタイム3次元センサにより、三次元位置を取得する方法がある。これは、手などの身体や道具に取り付けられた三次元センサによる操作用装置で、三次元位置と三次元方向を取得し、この情報をもとに三次元物体の位置を決定するものである。
【0008】
しかし、上記の方法で仮想三次元物体を移動させたい位置まで移動させるためには、試行錯誤的動作が必要である。具体的には、まず、操作用装置を動かして、表示映像上の現在の位置を視覚的に確認する。そして、移動させたい物体の位置が目的とする位置であるかどうかを判断する。そうでなければ、操作用装置を動かし目的の位置に近づける。この操作を繰り返して移動させたい位置に近づくように調整する。
【0009】
動作をシミュレーションする場合には上記操作は有効であるが、三次元物体を所望位置に移動させることが目的の場合は、センサ操作を伴った動作を実際に行って位置の調整を行う必要があり、作業が煩雑になる。換言すれば、上記方法では移動目標の指定を行うことが不可能で、センサによる変更された状態を観測しながら目標位置までオペレータが介在して制御しながら移動する、という方法を採ることになり、オペレータに対する負担が大きくなる。
【0010】
さらに、上記方法では、三次元センサで取得したデータで移動するため、移動させたい位置まで三次元センサを移動しなければならない。例えば、目の前の物体を100m前方まで移動する必要がある場合、100m前方まで実際にセンサを移動させる必要がある。センサの能力を含めてそのような範囲まで移動させることは現実的に困難である。
【0011】
一方、二次元情報を二次元映像で表示する場合、従来からドラッグ・アンド・ドロップ技術が用いられている。このドラッグ・アンド・ドロップ技術は、アイコンと呼ぶ情報を現す部分画像をマウスで指定して保持し、保持状態のまま移動して位置を変更するものである。
【0012】
かかる位置変更で情報と情報の新しい関係を規定することが可能となり、例えば、パソコン上のOSでは、情報の分類整理のためのユーザーインターフェイスとして利用されたり、データの属性を与えるユーザーインターフェイスとして利用されている。
【0013】
ところが、従来のドラッグ・アンド・ドロップ技術はすべて二次元情報に対するものであり、OSやアプリケーションソフトで実現しているドラッグ・アンド・ドロップは、二次元の制御画面の中でアイコンを二次元的に移動させるだけである。即ち、三次元を表示する表示装置で、ドラッグ・アンド・ドロップにより三次元物体を移動させる機能を持つものはない。
【0014】
【発明が解決しようとする課題】
本発明は上記問題点に鑑みなされたものであって、表示映像上において物体を選択決定し、この物体を三次元座標で示された指定位置に移動して再配置する方法及び装置を提供することにより、表示映像上で物体を移動する際の余分な作業を省いて、操作を容易化することを目的とする。
【0015】
【課題を解決するための手段】
本発明よる三次元空間表示システムにおける物体移動配置装置は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体Aを取得する手段、物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点giを演算して、交点giを含む物体Bの構成面Giを取得する手段、物体Aが予め有する特徴点を利用して物体Aを構成面Gi上に移動して配置する手段、を有することを特徴とする。
【0016】
そして、上記物体移動装置は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体A上の任意点aを指定し、予め決められた視点Eから任意点aを通る直線を生成し、該直線と物体Aの構成面との交点fiを演算することで物体Aを取得する手段、物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点giを演算して、交点giを含む物体Bの構成面Giを取得する手段、物体Aが予め有する特徴点を利用して物体Aを構成面Gi上に移動して配置する手段、を有することを特徴とする。
【0017】
上記物体移動装置で、物体Aを構成面Gi上に移動して配置する際、構成面Giの法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段、を有することとすると好適である。
【0018】
また、本発明よる三次元空間表示システムにおける物体移動方法は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体A上の任意点aを指定し、予め決められた視点Eから任意点aを通る直線を生成し、該直線と物体Aの構成面との交点fiを演算することで物体Aを取得する過程、物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点giを演算して、交点giを含む物体Bの構成面Giを取得する過程、物体Aが予め有する特徴点を利用して物体Aを構成面Gi上に移動して配置する過程、を有することを特徴とする。
【0019】
上記物体移動方法で、物体Aを構成面Gi上に移動して配置する際、構成面Giの法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する過程、を有することとすると好適である。
【0020】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、該三次元空間により表示される物体Aを取得する手段と、該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点g i を演算して、交点g i を含む物体Bの構成面G i を取得する手段と、物体Aが予め有する特徴点を利用して物体Aを構成面G i 上に移動して配置する手段と、物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【0021】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、該三次元空間により表示される物体A上の任意点aを指定し、予め決められた視点Eから任意点aを通る直線を生成し、該直線と物体Aの構成面との交点f i を演算することで物体Aを取得する手段と、該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点g i を演算して、交点g i を含む物体Bの構成面G i を取得する手段と、物体Aが予め有する特徴点を利用して物体Aを構成面G i 上に移動して配置する手段と、物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【0022】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルUを記憶する手段と、ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、該三次元空間で表示される物体A上の任意点aを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点aと該変換点を比較して該任意点aを表す変換点群a1〜anを決定すると共に、該変換点群a1〜anに対応する面群F1〜Fnを取得する手段と、予め決められた視点Eから任意点aを通る指示ベクトルLを演算生成し、該指示ベクトルLと前記面群F1〜Fnとの交点演算を行って交点群f1〜fnを取得し、該交点群f1〜fnと視点Eとの直線距離を計算して最短距離の交点fxを求め、該交点fxに対応する物体Aを取得する手段と、該三次元空間で表示され、該物体Aが移動後に配置される物体B上の任意点bを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点bと該変換点を比較して該任意点bを表す変換点群b1〜bnを決定すると共に、該変換点群b1〜bnに対応する面群G1〜Gnを取得する手段と、予め決められた視点Eから任意点bを通る指示ベクトルL’を演算生成し、該指示ベクトルL’と前記面群G1〜Gnとの交点演算を行って交点群g1〜gnを取得し、該交点群g1〜gnと視点Eとの直線距離を計算して最短距離の交点gxを取得すると共に交点gxに対応する面GXを取得する手段と、物体Aの特徴点のワールド座標系における座標値を交点gxに変更する手段と、交点gxにおいて面GXに対する法線上方向にベクトルγを演算生成して保持し、物体Aが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、物体Aが保持するベクトルβとベクトルUの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Aを配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【0023】
【作用】
本発明は上記の如くであるから、表示映像上で仮想物体の表面座標値を確定的に決定して仮想物体を取得できるとともに、仮想物体を再配置する三次元空間中の所望の点座標をオペレータは直接認識し、当該点座標を三次元座標値として指定することができる。
【0024】
【発明の実施の形態】
以下、具体的な実施形態に基づいて説明するが、本発明はかかる実施形態に限定されるものではない。
【0025】
まず、物体移動装置を有する三次元空間表示システムのハードウェア構成を説明する。
【0026】
三次元空間表示システム自体は、三次元グラフィックスという考え方でコンピュータ・システム技術としてすでに確立されており、その装置構成は、例えば、図1に示すようにCPU等の演算処理装置1、内蔵若しくは外部メモリ或いはディスク等の記憶装置2、CRTディスプレイや液晶表示パネル等の表示装置3、キーボードやマウス等の入力装置4などで構成される。
【0027】
上記三次元空間表示システムで三次元物体等を表示する場合、予め三次元空間をワールド座標系で規定して物体の数値データを記憶装置2に記憶させる。具体的には三次元の数値データとして、物体形状データやどこからどの方向へ向かって物体を観測しているかという視点データ・視線データ・観測画角データ、さらには必要に応じて光源データや物体の質感データなどを記憶させる(図2)。また、物体の構成面の頂点はその順番を追って定義されており、これにより構成面やその物体の表裏を認識して、記憶されることになる。そして、上記数値データに基づいて演算処理装置1で投影変換(射影投影もしくは平行投影)等の演算処理を行い、三次元空間にある物体の観測映像として面、線などの表現で表示装置3の画面(スクリーン)上に二次元の可視映像として表示するものである。
【0028】
本発明では表示映像上の物体を移動させるために、所定のプログラムが記憶装置2に記憶設定され、これに基づき演算処理装置1が演算を行い、表示映像上の物体の移動を制御する。プログラムの具体例としては、後述する空間及び物体規定プログラム、物体取得プログラム、移動位置指定プログラム、物体移動プログラム、自己方向調整プログラム、空間方向調整プログラム等である。
【0029】
次に、上記プログラムについて説明する。
▲1▼ まず、三次元空間表示システムにおいて表示映像上の物体移動を可能にするため、予め空間及び物体規定プログラムが記憶設定されている(図3)。
【0030】
このプログラムでは、視点データ等をふまえて、三次元空間の全体をワールド座標系(X,Y,Z)で規定すると同時に、三次元空間の任意方向、例えば絶対的上方向を指向するベクトルUを保持する。また、スクリーンには、注視点tを原点として二次元座標系が設定されている(図6参照)。
【0031】
そして、三次元空間における個々の物体をローカル座標系(x,y,z)で規定して、当該物体の特徴点を定める。特徴点は例えば、ローカル座標の原点、物体の頂点、ローカル座標系の座標軸の中点など任意に定めることが可能である。かかる特徴点に対してはワールド座標系の原点から指定ベクトルQが生成されており、例えば任意の物体Aを取得することは、物体Aを規定するローカル座標系とその指定ベクトルQaを取得することと同値である。
【0032】
さらに、物体自体の法線方向で上下を規定するベクトルαと三次元空間の上方向を指向するよう物体の上方向を規定するベクトルβを、ローカル座標系で規定し当該物体に保持させる。このベクトルα、βは、例えばローカル座標系のz軸方向をベクトルα、y軸方向をベクトルβとして定める。
【0033】
また、三次元空間を表すワールド座標系において、それぞれの物体は一つ又は複数個の構成面で形成され、この構成面は複数の構成点で形成される。この各構成点は、それぞれ構成点が包含される構成面及びかかる構成面によって形成される物体に対応して記憶されている。
【0034】
▲2▼ 物体取得プログラムは、三次元空間で物体を取得する際に起動するもので、以下のようなものである。
【0035】
まず、マウスのポインタなどで二次元映像上で指定された物体A上の任意点aを認識し、その表示スクリーンに設定された二次元座標を決定して保持する。
【0036】
ここで任意ではあるが、いわゆるピッキング処理を行うようプログラムすると、既存の高速演算処理装置の利用が可能となり効率的である。ピッキング処理では、三次元空間における任意物体の構成面上にある構成点の三次元座標を、二次元座標に連続的に変換して変換点の二次元座標を取得して記憶保持し、これを上記任意点aの二次元座標を比較して、同一の二次元座標値となる点の三次元座標値を記憶保持することで、任意点aが示す変換点群a1〜an(三次元座標値)を決定する。かかる変換点群a1〜anは、任意物体の構成面に包含される構成点であるから、変換点群a1〜anの取得によって、変換点群a1〜anに対応する構成面群F1〜Fnが認識され、この構成面群が記憶保持される。ピッキング処理では、例えば特開平7−73344号の技術を応用できる。尚、ピッキング処理を行わない場合は、任意物体の全ての構成面について後述の交点演算を行うこととなる。
【0037】
その後、予め決められた視点Eから任意点aを通る指示ベクトルLを演算生成して記憶保持する(図4、図5)。具体的な演算プログラムは以下の如くである。
【0038】
前提として表示装置4のスクリーンは、基準となる視点座標Pe、注視点座標Pt、鉛直ベクトルSh(ワールド座標系の座標)で表し、視点とスクリーンの距離を単位長さと仮定して処理する。また、注視点座標Ptを原点として、スクリーンには二次元座標が設定されている。尚、視点座標Pe、注視点座標Pt、鉛直ベクトルShは予め記憶装置2に記憶設定されている(図5)。
【0039】
視点からスクリーン中心への視線ベクトルLvは、視点ベクトルPe、注視点ベクトルPtによりLv=Pt−Peで表すことができ、Lvの単位ベクトルLvuは、Lvu=Lv/│Lv│で表せる。このLvuを用いて、スクリーン中心からスクリーン右端部、上端部へのベクトルLr、Luを計算する。Lrは長さH・tan(横画角/2)で鉛直ベクトルShと垂直なベクトルであり(Hは視点Eと注視点t間の距離)、Luは長さH・tan(縦画角/2)で鉛直ベクトルと平行なベクトルである。LrおよびLuは以下の式で表される。
【0040】
【数1】
【0041】
そして、マウスが指示する任意点aをスクリーンの二次元座標(mx,my)とすると、任意点aのスクリーンの原点からの三次元位置ベクトルMは以下のように表される。
【0042】
【数2】
【0043】
従って、視点Eからスクリーン上の任意点aまでの指示ベクトルLは、以下の式で表せる。
L=Lvu+M ‥‥‥‥‥(1)
【0044】
尚、上述の三次元空間表示システムは、基準となる視点データ等により二次元映像を射影変換することで表示されており、この射影変換過程の逆の過程を求め任意点aの逆射影変換を行い、指示ベクトルLを得ることが可能である。即ち、三次元から二次元への変換関数の逆変換関数を用いて、視点からの奥行き方向のみが変数成分となる三次元の指示ベクトルLを得てもよい。
【0045】
その後、ピッキング処理により取得した構成面群F1〜Fnと指示ベクトルLとの交点演算を行って、その交点群f1〜fnを取得して保持する。これは、以下のプログラムで行う。
【0046】
まず、三次元空間に存在する面番号F(i):i=1〜nの構成面の、それぞれの面方程式を演算して作成する。そのため、面番号F(i)を構成する3点のワールド座標系の座標値Pfa,Pfb,Pfcを利用して、以下のベクトルを得る。
Vfa=Pfa−Pfb
Vfb=Pfb−Pfc
【0047】
上記2式のベクトルを用いて、外積(Vfa・Vfb)により面法線ベクトルVfnを計算すると、Vfn=Vfa・Vfb となる。尚、前記座標値は順番を設定されており、面F(i)の表裏を区別して面法線ベクトルVfnは得られる。これを用いて、三次元中の平面を表す方程式を決定する。例えば下記のヘッセの標準形で表す。
FNX・x+FNY・y+FNZ・z+C=0
【0048】
ここで、FNX、FNY、FNZは先ほど求めた面法線ベクトルVfnの方向余弦であり、Cはワールド座標系の原点から平面へ降ろした垂線の長さである。ここでCは、面番号F(i)を構成する3点の座標のうちの任意の1点を利用して上式に代入することにより求めることができる。
【0049】
一方、視点Eからマウスが指し示す三次元物体上の任意点aへの直線Lm、即ち、視点Eを通って指示ベクトルLに沿う直線方程式Lmは、
【0050】
【数3】
【0051】
と表される。ここで、Lx、Ly、Lzは指示ベクトルLのベクトル要素(方向余弦)であり、Pex、Pey、Pezは直線Lmが通過する視点座標PeのX方向、Y方向、Z方向の座標値である。
【0052】
そして、上記の平面方程式と直線方程式を連立して演算し、面番号F(i)の表現する平面と指示ベクトルLに沿う直線Lmの交点を求める。即ち、上記2式の連立方程式の解 IS(i)=fi(i=1〜n)を得て、交点群f1〜f2を取得する(図4)。
【0053】
最後に、交点群f1〜fnと視点Eとの直線距離をそれぞれ計算して最短距離の最適な交点f1を求め、最適点f1に対応する物体Aを取得して保持する。具体的には、以下のプログラムで行う。
【0054】
IS(i)と視点Peとの直線距離を以下の演算で求める。
Length(i)=|IS(i)−Pe|
i=1〜n
【0055】
最適点f1はLength(i)のうち、利用するのに最適の点を選ぶが、一般的には視点Eに最も近い点を選択する。このためには、min(Length(i))を表すf1を最適点とすればよい。図5の例では、交点f1とf2の直線距離K1、K2の内、短い距離K1を有するf1が最適点となる。尚、必要に応じてmin(Length(i))以外の点を選択し、これを最適点とすることも可能である。このような場合は、これら最適点に対応して任意物体の構成面や任意物体が選択される。
【0056】
尚、物体Aを取得する方法は上記に限定されず、予め決まっている物体Aを後述の指定位置に移動する等してもよく、適宜である。
【0057】
▲3▼ 移動位置指定プログラムは、物体Aの移動する位置を指定するものであり、以下の如くである。
【0058】
まず、ここでも上述のピッキング処理を行うと好適である。即ち、物体Aを再配置する物体B上の任意点bを指定して決定し、三次元空間における任意物体の構成面上にある構成点の三次元座標を、二次元座標に連続的に変換して変換点の二次元座標を取得して記憶保持し、これを上記任意点bの二次元座標を比較して、同一の座標値となる点の三次元座標値を記憶保持することで、任意点bが示す変換点群b1〜bn(三次元座標値)を決定する。該変換点群b1〜bnの取得によって、対応する構成面G1〜Gnが認識され、この構成面群が記憶保持される。尚、ピッキング処理を行わない場合は、任意物体の全ての構成面について後述の交点演算を行う。
【0059】
その後、上述の物体取得プログラムと同様に、予め決められた視点Eから任意点bを通る指示ベクトルL’を演算生成し、該指示ベクトルL’と前記構成面群G1〜Gnとの交点演算を行って交点群g1〜gnを取得し、該交点群g1〜gnと視点Eとの直線距離を計算して最短距離の交点g1を取得する。この最適な交点g1は、点g1を構成点とする面G1に対応していることから直ちにG1を取得することができる。上記交点g1、構成面G1は記憶保持され、物体B上の物体Aの移動する位置が決定する。
【0060】
▲4▼ 物体B上の位置を指定した後、物体移動プログラムによって物体Aを指定位置の任意点bに移動させる。
【0061】
即ち、ワールド座標系における物体Aの特徴点の座標値を上記の最適点g1に変更し、物体Aを規定するローカル座標系に対する初期の指定ベクトルQを、指定ベクトルQ’とする。指定ベクトルをQ’とすることにより、物体Aを規定するローカル座標系、即ち物体Aは最適点g1の位置に移動する(図3参照)。
【0062】
▲5▼ 物体Aの移動後は、物体Aの自己方向調整プログラムで物体A自体の方向調整を行う。これは、物体Aの配置に際して物体Bの向きに合わせるもので、通常の機能的目的を達成するために必要である。具体的には以下の処理を行う(図7)。
【0063】
まず、物体Bの構成面G1において最適点g1から法線方向の法線ベクトルγを生成する。即ち、最適点g1を算出する際に用いた三次元空間における平面方程式から、上下方向を規定した最適点g1における法線ベクトルγを演算して保持する。法線ベクトルγの方向は、構成面G1において物体Bの内側から外方向に向くようにする。これは、上記の面法線ベクトルVfnの決定と同様に定まる。
【0064】
一方、ローカル座標系で規定される物体Aは、物体A自体の法線方向でその上下を規定するベクトルαを有することから、このベクトルαと法線ベクトルγの数値情報を比較して、ベクトルαの方向を法線ベクトルγに変換する。これにより、物体Aは構成面G1上で法線方向で上下正しく配置される。
【0065】
上記処理により、例えば映像上の机の上面に対する灰皿の配置、天井に対する照明装置の配置、壁に対する時計の配置など、三次元物体の方向を機能目的に合わせることが可能となる。
【0066】
▲6▼ 空間方向調整プログラムは、例えば時計の文字盤の12時方向を合わせて壁、立面、斜面に取り付ける場合や、花を日光の方向に向かせるなど、物体を所望方向に向かせて配置することに意味がある場合、所望方向と物体Aの方向を合致させるものである。ここでは、「所望方向」の例として、三次元空間の絶対的上方向と物体Aの上方向を合致させる場合について説明する。
【0067】
この処理は、物体Aを構成面G1の法線方向に合わせて配置する際、物体Aは法線軸(法線ベクトルγ=ベクトルα方向)に対して回転の自由度を有するから、物体Aの「上」が三次元空間の「上」を向くように前記自由度を確定することにより行う。これは以下の如く行う(図7)。
【0068】
前提として、ローカル座標系で規定される物体Aは、法線方向(法線ベクトルγ=ベクトルα方向)を回転軸とし、回転の自由度は任意に設定されている。そして、物体Aは上述の如く、三次元空間における上方向を指向するよう規定されるベクトルβを保持している。一方、ワールド座標系で規定される三次元空間で絶対的上方向を指向するベクトルUが、予め記憶保持されている。
【0069】
そして、ベクトルUをローカル座標系へ変換後に物体Aの回転面へ射影し、射影ベクトルUljとベクトルβのなす角度を比較して、当該角度が最小となるベクトルβとその角度を決定して、ベクトルβの回転方向の自由度を確定する。これにより、物体Aの回転方向の自由度が確定する。
【0070】
具体的な演算処理は以下のようになる。一般にローカル座標系からワールド座標系への変換関数Wを以下のようになる。
W=W(L,Px,Py,Pz,Rx,Ry,Rz)
【0071】
上式でLはローカル座標系の指定ベクトル、Px,Py,Pzはローカル座標系の座標値、Rx,Ry,Rzはローカル座標系での回転角を表す。予め配置する位置と法線方向が決定されている場合は、変換関数WのパラメータPx,Py,Pz,Rx,Ry,Rzのうち、法線に対する回転角を表すRx,Ry,Rzのいずれか一つは任意となり、他の5つの変数は確定する。即ち、一つの回転変数以外は定数化されるので、例えばW=W(Rz)のように表せる。
【0072】
そこで、変換関数Wの逆変換関数W-1を予め保持し、ワールド座標系の上方向ベクトルUを逆変換関数W-1によりローカル座標系へと変換する。即ち、変換ベクトルUl=W-1(U)となる。さらに、変換ベクトルUlを、物体Aがベクトルαで規定される唯一回転を許された回転面に対して射影変換を行う。即ち、射影変換関数Jにより、射影ベクトルUljはUlj=J(Ul)となる。
【0073】
一方、ベクトルβは回転面に対する回転角度のみを変数として表せるから、かかる変数をθとすると、ベクトルβはβ=β(θ)となる。変数θは、0度から360度の間で予め決められた角度毎に数値設定され、後述の角度演算ではかかる数値毎に連続して変数θが代入され、角度演算を行う。
【0074】
そして、射影ベクトルUljと物体Aのベクトルβのなす角度を次式の角度演算関数Angleで演算する。
Angle(up)=Angle(Ulj,β(θ))
【0075】
上記の角度Angle(up)をそれぞれ比較して、最小値 min(Angle(up))を取得し、変数θは最小値 min(Angle(up))の数値に決定される。そして、これにより、物体Aの回転方向の自由度が確定する。
【0076】
尚、上記Angle(up)、θの結果は、ワールド座標系に変換して演算処理して求めてもよく、この場合はベクトルβをワールド座標系に変換したβ’(法線回転角度が変数)と、ワールド座標系の上方向ベクトルUのなす角度を最小にする関数で、以下のように示すことができる。ANGLE(up)は定数である。
ANGLE(up)=MIN・ANGLE(U,β’)
【0077】
次に、三次元空間表示システムにおける物体移動装置を、実際に使用する場合の一例について説明する(図6、図7)。
【0078】
前提として、三次元空間表示システムのハードウェア構成は、CPU、ROM、CRTディスプレイ、マウス等からなり、ROMには上記のプログラムが記憶されている場合を想定する。CRTには仮想三次元空間と仮想三次元物体が表示されている。
【0079】
まず、マウスを使用して検出しようとする物体A上の任意点a、例えば時計上の任意点にポインタを合わせ、マウスのボタンを押し下げる。マウスの押し下げで任意点aの二次元座標が取得され、上述の物体取得プログラムにより物体Aを検出する。このとき、対象物体Aをハイライト表示するようにすると、操作が容易になる。
【0080】
その後、マウスを押し下げた状態を維持したまま、マウスを移動させてポインタを移動させる。ポインタの移動で移動前後のポインタ位置の差異を認識し、移動後のポインタ位置の二次元座標に対応する三次元座標を取得する。三次元座標の取得は上記移動位置指定プログラム、物体移動プログラムで行う。即ち、ポインタ位置の差異を認識する毎に上述の交点演算を行い、ポインタ位置の二次元座標に対応する三次元座標を取得する。尚、ポインタ位置の差異の認識は、CPUの能力が許せばCRTディスプレイの画素毎等で行うこともできる。
【0081】
このとき、三次元座標を取得する毎に物体Aを移動させ、好ましくは三次元座標を取得したポインタ位置毎に物体Aを一時的に表示できるようにし、物体Aの移動の軌跡を認識可能とする。
【0082】
そして、物体Aを配置しようとする物体Bの任意点bに、ポインタ位置が到達した際にマウスボタンを開放し、物体Aを確定的に配置する。このとき、物体Aは法線方向の上下と三次元空間の上方向を指向して、任意点bを構成点とする物体Bの任意面に配置される。これは上記自己方向調整プログラムと空間方向調整プログラムで行われる。物体Aの配置が確定したときは物体Aの表示が確定する。図8には、時計を壁面に配置する例を示す。
【0083】
尚、上述の三次元空間表示システムにおける物体移動の手順はいずれも、ハードウェア、ソフトウェアのどちらで行わせてもよく、また、複数のコンピュータを利用してもよく、上記手順を実行させる機器の形態で限定されるものではない。
【0084】
【発明の効果】
本発明は上述の如くであるから、表示映像上で仮想物体を移動し所望位置に配置する際の余分な作業を省いて、操作を容易化することができる効果がある。これにより、かかる技術分野に精通していない一般のユーザーにも利用させることが可能となる。
【図面の簡単な説明】
【図1】三次元空間表示システムのハードウェア構成図。
【図2】三次元空間の物体を規定する各種データの概略図。
【図3】三次元空間における規定関係を示す概念図。
【図4】指示ベクトルの概念図。
【図5】指示ベクトルの生成過程図。
【図6】オペレーション、演算処理、表示の概略相関図。
【図7】表示映像上の三次元空間で時計を移動させる場合の概念図。
【符号の説明】
1 演算処理装置
2 記憶装置
3 表示装置
4 入力装置
Claims (6)
- 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
該三次元空間により表示される物体Aを取得する手段と、
該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点giを演算して、交点giを含む物体Bの構成面Giを取得する手段と、
物体Aが予め有する特徴点を利用して物体Aを構成面Gi上に移動して配置する手段と、
物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、
を有することを特徴とする物体移動配置装置。 - 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
該三次元空間により表示される物体A上の任意点aを指定し、予め決められた視点Eから任意点aを通る直線を生成し、該直線と物体Aの構成面との交点fiを演算することで物体Aを取得する手段と、
該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点giを演算して、交点giを含む物体Bの構成面Giを取得する手段と、
物体Aが予め有する特徴点を利用して物体Aを構成面Gi上に移動して配置する手段と、
物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、
を有することを特徴とする物体移動配置装置。 - 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルUを記憶する手段と、
ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、
該三次元空間で表示される物体A上の任意点aを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点aと該変換点を比較して該任意点aを表す変換点群a1〜anを決定すると共に、該変換点群a1〜anに対応する面群F1〜Fnを取得する手段と、
予め決められた視点Eから任意点aを通る指示ベクトルLを演算生成し、該指示ベクトルLと前記面群F1〜Fnとの交点演算を行って交点群f1〜fnを取得し、該交点群f1〜fnと視点Eとの直線距離を計算して最短距離の交点fxを求め、該交点fxに対応する物体Aを取得する手段と、
該三次元空間で表示され、該物体Aが移動後に配置される物体B上の任意点bを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点bと該変換点を比較して該任意点bを表す変換点群b1〜bnを決定すると共に、該変換点群b1〜bnに対応する面群G1〜Gnを取得す る手段と、
予め決められた視点Eから任意点bを通る指示ベクトルL’を演算生成し、該指示ベクトルL’と前記面群G1〜Gnとの交点演算を行って交点群g1〜gnを取得し、該交点群g1〜gnと視点Eとの直線距離を計算して最短距離の交点gxを取得すると共に交点gxに対応する面GXを取得する手段と、
物体Aの特徴点のワールド座標系における座標値を交点gxに変更する手段と、
交点gxにおいて面GXに対する法線上方向にベクトルγを演算生成して保持し、物体Aが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、
物体Aが保持するベクトルβとベクトルUの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Aを配置する手段と、
を有することを特徴とする物体移動配置装置。 - 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
該三次元空間により表示される物体Aを取得する手段と、
該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点g i を演算して、交点g i を含む物体Bの構成面G i を取得する手段と、
物体Aが予め有する特徴点を利用して物体Aを構成面G i 上に移動して配置する手段と、
物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。 - 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
該三次元空間により表示される物体A上の任意点aを指定し、予め決められた視点Eから任意点aを通る直線を生成し、該直線と物体Aの構成面との交点f i を演算することで物体Aを取得する手段と、
該三次元空間により表示される物体B上の任意点bを指定し、視点Eから任意点bを通る直線を生成し、該直線と物体Bの構成面との交点g i を演算して、交点g i を含む物体Bの構成面G i を取得する手段と、
物体Aが予め有する特徴点を利用して物体Aを構成面G i 上に移動して配置する手段と、
物体Aを構成面G i 上に移動して配置する際、構成面G i の法線上方向と三次元空間の所望方向を認識し、物体Aが有する方向をこれに合わせて配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。 - 三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルUを記憶する手段と、
ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、
該三次元空間で表示される物体A上の任意点aを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点aと該変換点を比較して該任意点aを表す変換点群a1〜anを決定すると共に、該変換点群a1〜anに対応する面群F1〜Fnを取得する手段と、
予め決められた視点Eから任意点aを通る指示ベクトルLを演算生成し、該指示ベクトルLと前記面群F1〜Fnとの交点演算を行って交点群f1〜fnを取得し、該交点群f1〜fnと視点Eとの直線距離を計算して最短距離の交点fxを求め、該交点fxに対応する物体Aを取得する手段と、
該三次元空間で表示され、該物体Aが移動後に配置される物体B上の任意点bを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点bと該変換点を比較して該任意点bを表す変換点群b1〜bnを決定すると共に、該変換点群b1〜bnに対応する面群G1〜Gnを取得する手段と、
予め決められた視点Eから任意点bを通る指示ベクトルL’を演算生成し、該指示ベクトルL’と前記面群G1〜Gnとの交点演算を行って交点群g1〜gnを取得し、該交点群g1〜gnと視点Eとの直線距離を計算して最短距離の交点gxを取得すると共に交点gxに対応する面GXを取得する手段と、
物体Aの特徴点のワールド座標系における座標値を交点gxに変更する手段と、
交点gxにおいて面GXに対する法線上方向にベクトルγを演算生成して保持し、物体Aが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、
物体Aが保持するベクトルβとベクトルUの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Aを配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09527698A JP4109745B2 (ja) | 1998-03-24 | 1998-03-24 | 三次元空間表示システムにおける物体移動配置装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09527698A JP4109745B2 (ja) | 1998-03-24 | 1998-03-24 | 三次元空間表示システムにおける物体移動配置装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11272892A JPH11272892A (ja) | 1999-10-08 |
JP4109745B2 true JP4109745B2 (ja) | 2008-07-02 |
Family
ID=14133261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09527698A Expired - Fee Related JP4109745B2 (ja) | 1998-03-24 | 1998-03-24 | 三次元空間表示システムにおける物体移動配置装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4109745B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3465892B2 (ja) * | 1999-11-16 | 2003-11-10 | 株式会社日立国際電気 | 映像データ編集方法及び映像データ編集プログラムを記憶したコンピュータ読み取り可能な記憶媒体 |
JP4353739B2 (ja) * | 2003-07-29 | 2009-10-28 | 株式会社レクサー・リサーチ | オブジェクト表象端末装置、サーバ装置、オブジェクト表象プログラム |
JP2006134251A (ja) * | 2004-11-09 | 2006-05-25 | Ricoh Co Ltd | 立体図形配置入力装置 |
JP4302767B2 (ja) * | 2008-06-26 | 2009-07-29 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP4724740B2 (ja) * | 2008-11-12 | 2011-07-13 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP4730975B2 (ja) * | 2009-01-22 | 2011-07-20 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP4726965B2 (ja) * | 2009-01-22 | 2011-07-20 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP4724758B2 (ja) * | 2009-02-20 | 2011-07-13 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP6292181B2 (ja) * | 2014-06-27 | 2018-03-14 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、情報処理システム、その制御方法及びプログラム |
JP6799614B2 (ja) | 2016-11-29 | 2020-12-16 | 株式会社Fuji | 情報処理装置及び情報作成方法 |
CN110827412A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 自适应平面的方法、装置和计算机可读存储介质 |
-
1998
- 1998-03-24 JP JP09527698A patent/JP4109745B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11272892A (ja) | 1999-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5583977A (en) | Object-oriented curve manipulation system | |
Poupyrev et al. | A framework and testbed for studying manipulation techniques for immersive VR | |
US7640515B2 (en) | System for dynamically mapping input device movement as a user's viewpoint changes | |
US5268998A (en) | System for imaging objects in alternative geometries | |
Weichel et al. | SPATA: Spatio-tangible tools for fabrication-aware design | |
Kageyama et al. | Visualization of vector field by virtual reality | |
WO2012173141A1 (ja) | 画像処理装置、画像処理方法、およびプログラム | |
Himperich | Applications in augmented reality in the automotive industry | |
JP4109745B2 (ja) | 三次元空間表示システムにおける物体移動配置装置及び方法 | |
Poston et al. | The virtual workbench: Dextrous VR | |
Obeysekare et al. | Virtual workbench-a non-immersive virtual environment for visualizing and interacting with 3D objects for scientific visualization | |
Zaldívar-Colado et al. | A mixed reality for virtual assembly | |
US6714198B2 (en) | Program and apparatus for displaying graphical objects | |
EP0714057A1 (en) | Method and apparatus for displaying a cursor along a two dimensional representation of a computer generated three dimensional surface | |
JP2009087161A (ja) | 画像処理装置、画像処理方法 | |
Thiel et al. | Interaction and locomotion techniques for the exploration of massive 3D point clouds in VR environments | |
JP3413145B2 (ja) | 仮想空間の編集方法及び仮想空間の編集装置 | |
JPH03211686A (ja) | コンピュータ制御デイスプレイ方法および装置 | |
Green et al. | The datapaper: Living in the virtual world | |
JPH0614336B2 (ja) | 設計支援方法 | |
JPH08249500A (ja) | 3次元図形の表示方法 | |
JP3361652B2 (ja) | 立体図形配置入力方法及びグラフィックシステム | |
WO1995011482A1 (en) | Object-oriented surface manipulation system | |
Turner et al. | Head‐Tracked Stereo Viewing with Two‐Handed 3 D Interaction for Animated Character Construction | |
Stone | Virtual reality: A tool for telepresence and human factors research |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080109 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080407 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110411 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130411 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140411 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |