表示方法および表示システム
【課題】仮想情報がHMD面に投影表示された際、それが遠くに存在する場合でも視認性がよい表示が得られるようにすること。
【解決手段】三次元情報演算部13は、三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算された仮想情報の端点の位置を、利用者の視点からの仮想情報の端点の奥行きに応じて補正する。二次元情報投影演算部14は、補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する。表示設定部16は、HMDの表示面に投影表示する画像を生成する。表示部17は、表示設定部16により生成された画像をHMDの表示面に投影表示する。
【解決手段】三次元情報演算部13は、三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算された仮想情報の端点の位置を、利用者の視点からの仮想情報の端点の奥行きに応じて補正する。二次元情報投影演算部14は、補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する。表示設定部16は、HMDの表示面に投影表示する画像を生成する。表示部17は、表示設定部16により生成された画像をHMDの表示面に投影表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示方法および表示システムに関し、特に、現実空間に電子情報を重畳して仮想情報を表示する拡張現実技術における表示方法および表示システムに関する。
【背景技術】
【0002】
従来から、装着することにより眼前にディスプレイが配置され、視界を覆ってディスプレイ画面のみを利用者に視認させる非透過型ヘッドマウントディスプレイ(HMD:Head Mounted Display)が存在する。非透過型HMDでは、眼前のディスプレイ画面上に電子情報による仮想情報が表示されるので、利用者は、意識的に視線を向けなくても、その仮想情報を視認することができる。また、小型のディスプレイを用いても仮想的に大型の画面表示を実現できる。非透過型HMD(Vuzix iWear vr920)は、非特許文献1に記載されている。
【0003】
近年では、視界を確保しながらディスプレイ画面上に電子情報による仮想情報を重畳して表示することが可能な透過型HMDが実現されている。透過型HMDでは、利用者の視界を確保しつつ、ディスプレイ画面上に電子情報による仮想情報が表示されるので、現実空間の視界の一部に電子情報による仮想情報を重畳して表示することができる。透過型HMD(LUMUS)は、非特許文献2に記載されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Vuzix iWear VR920(http://www.vuzix.com/iwear/products_vr920.html)
【非特許文献2】LUMUS(http://www.lumusvision.com/)
【発明の概要】
【発明が解決しようとする課題】
【0005】
透過型HMDを用いて視界の一部に電子情報を重畳して仮想情報を表示する場合、視界上にあたかも仮想情報が存在するように見せるためには、仮想情報が現実空間上に存在するとした場合の仮想情報の3次元位置を設定し、これをHMD面に投影したときの情報を生成し、投影表示すればよい。これにより遠近感も自然に表現された仮想情報を表示することができる。
【0006】
しかしながら、遠くに存在する仮想情報は、HMD面に投影したときの情報を生成する過程での処理(遠近法)の結果、小さく表示されることになり、視認性が低下するという問題がある。現実空間に実在する物体の場合には、それが遠くに存在していても人間の目がその物体にフォーカスを合わせて見るので、視認性の低下を抑えることができる。しかし、仮想情報の場合には、眼前のHMD面に仮想情報が投影表示されるので、この問題は特に顕著となる。
【0007】
本発明の目的は、上記課題を解決し、仮想情報がHMD面に投影表示された際、それが遠くに存在する場合でも視認性のよい表示が得られる表示方法および表示システムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の表示方法は、三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算した仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する第1のステップと、前記第1のステップにより補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する第2のステップと、前記第2のステップにより変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する第3のステップと、前記第3のステップにより生成された画像を透過型HMDの表示面に投影表示する第4のステップを備えた点に第1の特徴がある。
【0009】
また、本発明の表示方法は、前記第1のステップが、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正する点に第2の特徴がある。
【0010】
また、本発明の表示方法は、前記第1のステップが、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて実行される点に第3の特徴がある。
【0011】
また、本発明の表示方法は、前記第2のステップが、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える処理を含む点に第4の特徴がある。
【0012】
また、本発明の表示方法は、前記第3のステップが、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する処理を含む点に第5の特徴がある。
【0013】
また、本発明の表示方法は、仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成される点に第6の特徴がある。
【0014】
また、本発明の表示方法は、仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得される点に第7の特徴がある。
【0015】
本発明は、表示方法としてだけでなく、上記各ステップを実行する手段を備える表示システムとしても実現できる。
【発明の効果】
【0016】
本発明では、現実空間に仮想情報が存在するとし、透過型HMDを用いて現実空間に重畳させて仮想情報を表示する際に、電子的な仮想情報の端点の座標を、その奥行きに応じて補正してHMD面に投影表示するので、遠くに存在する仮想情報でも、その視認性をよくすることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の表示システムの第1実施形態を示す機能ブロック図である。
【図2】三次元座標上での矢印端点の位置を概念的に示す図である。
【図3】三次元座標上での矢印(直進矢印)端点の位置を詳細に示す図である。
【図4】三次元座標上での矢印(右左折矢印)端点の位置を詳細に示す図である。
【図5】奥行きによる矢印の視認性を説明する図である。
【図6】視認性向上のために補正された矢印(直進矢印)端点の位置を示す図である。
【図7】視認性向上のために補正された矢印(右左折矢印)端点の位置を示す図である。
【図8】矢印端点の三次元位置からHMD面上の二次元位置への変換の基本概念を示す図である。
【図9】顔の向き情報に従って矢印の端点位置を制御するために利用される顔の回転モデルを示す図である。
【図10】矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。
【図11】虚像範囲に存在する端点の処理を概念的に示す図である。
【図12】塗りつぶし面を求める手法を示すフローチャートである。
【図13】塗りつぶし面を求める手法を具体的に説明する図である。
【図14】本発明の表示システムの第2実施形態を示す機能ブロック図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明を説明する。本発明は、特に、仮想情報として多角形を透過型HMD(以下では、単に「HMD」と記す。)に表示する表示システムであり、例えば、多角形を利用者の進行方向を指示する矢印とすることによりナビゲーションシステムに適用でき、任意の多角形とすることにより、利用者の周りに仮想情報による物体があたかも存在するかのように表示する表示システムに適用できるものである。
【0019】
図1は、本発明の表示システムの第1実施形態を示す機能ブロック図である。なお、本発明は、各部処理をステップとした表示方法としても実現できる。
【0020】
第1実施形態の表示システムは、位置情報取得部11、ナビゲーション情報取得部12、三次元矢印情報演算部13、二次元矢印情報投影演算部14、顔向き取得部15、表示設定部16および表示部17を備え、ナビゲーションシステムとして構成されている。なお、これらの各部の処理は、ハードウエアでもソフトウエアでも実現できる。
【0021】
ここで、三次元矢印情報演算部13、二次元矢印情報投影演算部14および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に表示部17を付加した構成が、表示システムに必要な構成である。また、利用者の顔向き情報に従って矢印の位置を制御するために顔向き取得部15を付加している。しかし、利用者がほぼ進行方向に向いているとして、顔向き取得部15を付加しない構成も考えられる。また、本実施形態は、ナビゲーションサービスであるので、さらに位置情報取得部11とナビゲーション情報取得部12を付加している。
【0022】
位置情報取得部11は、GPSシステムにより利用者の現在位置情報を取得する。
【0023】
ナビゲーション情報取得部12は、利用者により入力される現在地から目的地までのルート情報を求め、利用者の現在位置情報からその時点での進行方向の方位、次の右左折点までの距離、右左折点で曲がる角度などのナビゲーション情報を取得する。
【0024】
三次元矢印情報演算部13は、ナビゲーション情報を元に、三次元座標上での矢印端点の位置を算出する。矢印端点の位置とは、ナビゲーション用の矢印を利用者がみたときの、三次元座標上での利用者と矢印の間の相対位置を意味する。
【0025】
図2は、三次元座標上での矢印端点の位置を概念的に示す図である。ここでは、利用者の進行方向,左右方向,上下方向をそれぞれx軸,y軸,z軸とし、利用者の首の位置を原点(0,0,0)としたときの利用者と矢印(始点,終点,右左折点)の間の相対位置を示している。同図(a)に示すように、首から-uの高さの位置において、進行方向の距離vの地点から距離v+w1の地点までの直進矢印の始点、終点の位置はそれぞれ、(v,0,-u),(v+w1,0,-u)で表される。また、同図(b)に示すように、進行方向の距離v+wの地点で右左折(折角度θ)し、さらに距離w2の進行を示す場合の、右左折矢印の始点、右左折点、終点の位置はそれぞれ、(v,0,-u),(v+w,0,-u),(v+w+w2*cosθ,w2*sinθ,-u)で表される。例えば、v=1m、w1=30m、v+w+w2=30mに設定される。このように、直線矢印については、一定距離を表す一定長さの直線矢印とすることが好ましいが、次の右左折点までの直線矢印としてもよい。
【0026】
図3、図4は、三次元座標上での矢印端点の位置を詳細に示す図である。ここでは、各矢印端点のx軸方向およびy軸方向の位置(Xi,Yi)を示しており、z軸方向の位置はZ=-u(固定)としている。三次元矢印情報演算部13は、表示部17のHMD面に投影表示される矢印の視認性をよくするために、矢印端点の位置をその奥行きに応じて補正するが、図3、図4は、その補正前の矢印端点の位置を示している。図3は直進矢印の場合、図4は右左折矢印の場合である。矢印は、図3、図4に示されるように太さを持って表される。三次元矢印情報演算部13は、図3、図4で示されるような、矢印端点の位置を算出し、さらに、表示部17のHMD面に投影表示される矢印の視認性をよくするために、その位置をその奥行きに応じて補正する。この補正については後述する。
【0027】
直進矢印と右左折矢印は、次の右左折点までの距離v+wに従って切り替えられる。一定長さの直進矢印を表示するものとすると、w1=T(閾値)とし、w≧Tの場合に直進矢印を表示し、w<Tの場合に右左折矢印を表示するようにすれば、直進矢印と右左折矢印を連続的に切り替えることができる。右左折点までの距離や右左折折角度は、ナビゲーション情報から得ることができる。
【0028】
次に、表示部17のHMD面に投影表示される矢印の視認性をよくするための、矢印端点の位置の補正について説明する。
【0029】
図5は、奥行きによる矢印の視認性を説明する図である。同図(a)は、奥行きに拘わらず矢印を一定太さにした場合、同図(b)は、奥行きに従って矢印を太くした場合、同図(c)は、奥行きに従って矢印をさらに太くした場合である。図5に示すように、遠くの矢印部分は、(a),(b),(c)の順に視認性がよくなる。
【0030】
縦横方向の長さは、奥行きの距離の1乗に比例して縮まり、奥行き方向の長さは、奥行きの距離の2乗に比例して縮まる。そこで、仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの2乗に比例させて補正するのが好ましい。この値は、厳密なものではなく、約1乗、約2乗でよい。
【0031】
以下に、矢印端点の位置の補正について、具体的に説明する。
まず、補正を行っても固定位置となる基準点(Xb,Yb)を決める。直進矢印の場合、例えば、(Xb,Yb)=(v+w1,0)、すなわち直進矢印の終点を基準点とする。右左折矢印の場合には、(Xb,Yb)=(v+w,0)として右左折点を固定位置にするのが好ましい。投影表示する多角形の形状によっては、座標原点(0,0)、多角形の中心や重心の位置、あるいは多角形内の一点を基準点(Xb,Yb)としてもよい。
【0032】
補正後の矢印端点の位置(X',Y')は、
Y'=f(X,Y−Yb)+Yb
X'=f'(X,X−Xb)+Xb
で表される。
【0033】
ここで、f(m,n)=K*mp*n (K*mp≧1の場合)
=n (K*mp<1の場合)
【0034】
f'(m,n)=K'*mp'*n (K*mp'≧1の場合)
=n (K*mp'<1の場合)
であり、K,K'は、チューニング可能な係数パラメータである。また、p≦1,p'≦2とする。補正しない場合、y軸方向の長さは、奥行きの距離の1乗に比例して縮まるので、p=1にして奥行きの距離の1乗に比例して大きくすれば、遠近に拘わらず視覚上での矢印の幅を一定にすることができる。また、x軸方向の長さは、奥行きの距離の2乗に比例して縮まるので、p=2にして奥行きの距離の2乗に比例して大きくすれば、遠近に拘わらず視覚上での矢印の奥行きを一定にすることができる。上記の式では、K*mp<1の場合およびK*mp'<1の場合には、補正を行わないようにしている。これは、近距離に存在する矢印は、補正なしで、遠近感を持って視認性よく表示できるためである。
【0035】
図6および図7は、図3の直進矢印および図4の右左折矢印が補正された場合の矢印端点の位置を示す。
【0036】
図6の直進矢印において、矢印の終点(X4,Y4)は基準点であるので不変である。また、始点(X1,Y1),(X7,Y7)は、Kの値にもよるが、近距離に存在するので補正されず、元の(v,-a),(v,a)のままである。端点(X2,Y2),(X3,Y3),(X5,Y5),(X6,Y6)はそれぞれ、(v+w1-c,-a'),(v+w1-c,-b'),(v+w1-c,b'),(v+w1-c,a')に補正される。ここで、K*(w1-c)≧1の場合、a'=K*a*(w1-c),b'=K*b*(w1-c)となり、K*(w1-c)<1の場合、a'=a,b'=bとなる。
【0037】
図7の右左折矢印においては、矢印の折点(v+w,0)が基準点であるので不変である。また、始点(X1,Y1),(X9,Y9)は、Kの値にもよるが、近距離に存在するので補正されず、元の(v,-a),(v,a)のままである。端点(X'2,Y'2),・・・,(X'8,Y'8)は、上述のようにして端点(X2,Y2),・・・,(X8,Y8)が補正された位置である。ここで、w2を右左折地点までの距離wに応じた長さ(w2=f"(w))、例えばw2=K"*w(K"は係数パラメータ)とすれば、矢印の終点(X'5,Y'5)が画面内に収まるようにすることができる。また、eをw2に応じた長さ(e=f"'(w2))、例えばe=K"'*w2(K"'は係数パラメータ)とすれば、矢印の形状を維持できる。
【0038】
二次元矢印情報投影演算部14は、三次元矢印情報演算部13により算出された三次元座標上での位置をHMD面の二次元座標上での位置に変換し、矢印がHMD面に投影表示されたときのHMD面上での矢印端点の位置を算出する。
【0039】
図8は、矢印端点の三次元位置からHMD面上の二次元位置への変換を概念的に示す図である。同図に示すように、HMD面上での矢印端点の位置は、矢印端点の三次元座標上での位置(v,0,-u),(v+w,0,-u)と眼を結ぶ線分とHMD面との交点として得られる。
【0040】
二次元矢印情報投影演算部14には、顔向き取得部15から顔の向き情報が与えられ、これにより、HMD面上での矢印端点の位置が利用者の顔が向いている方位、上下方向の角度、左右の傾きに応じて制御される。
【0041】
顔向き取得部15は、利用者の顔の向き情報を取得する。顔向き取得部15は、例えば、ジャイロセンサ、地磁気センサ、加速度センサ、またはそれらの複数を1つに統合したセンサモジュールとして構成される。顔の向き情報は、利用者の顔が向いている方位、上下方向の角度、左右の傾きの情報を含む。
【0042】
図9は、顔の向き情報に従って矢印端点の位置を制御するために利用される顔の回転モデルを示す。顔の回転モデルは、人間の首をモデル化したものであり、この回転モデルに従って矢印の端点位置に首の付け根を中心とした回転処理が施される。
【0043】
以下に、二次元矢印情報投影演算部14での回転処理、すなわち、顔の向き情報に従って矢印端点の位置を制御する処理について説明する。
【0044】
まず、図9に示されるように、利用者の首の位置を原点Oとし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した首の位置を原点O'とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した眼の位置を原点O"とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、HMD面の一隅を原点O'''とし、その水平方向をx軸、垂直方向をy軸とした二次元座標を想定し、顔の回転モデルに関する定数r,h,lを以下のように定義する。
const r = HMD_FRONT_LEN_FROM_EYE (定数r:眼とHMD面間の距離)
const h = EYE_HEIGHT_FROM_NECK (定数h:首と眼の高低差)
const l = EYE_FRONT_LEN_FROM_NECK (定数l:首と眼の水平方向離間距離)
【0045】
また、HMD面の大きさに関する定数(ピクセルではなく物理的な長さ)を以下のように定義する。
const DISPLAY_WIDTH (HMD面の幅)
const DISPLAY_HEIGT (HMD面の高さ)
【0046】
顔向き取得部15から取得できる顔の向き情報の変数を以下のように定義する。
θ = face_direction(北向きから反時計回り(西側)が正)
φ = face_tilt(上向き方向が正)
ψ = face_rot(右に傾げた場合が正)
【0047】
三次元座標上での矢印端点の位置(X,Y,Z)とすると、原点をOとする三次元座標上での端点の位置(X,Y,Z)Oは、式(1)により原点をO'とする三次元座標上での位置(X,Y,Z)O’に変換される。
【0048】
【数1】
【0049】
式(1)における右辺の3つの行列はそれぞれ、顔の左右傾きを逆補正回転(-ψ回転)させる行列、顔の上下傾きを逆補正回転(-φ回転)させる行列、顔の向きを逆補正回転(-θ回転)させる行列であり、これらの行列を行列(X,Y,Z)Oに掛けることにより行列(X,Y,Z)O’が算出される。
【0050】
原点をO'とする三次元座標上での端点の位置(X,Y,Z)O’は、式(2)に示すように、定数h,l分だけ平行移動させることにより、原点をO"とする三次元座標上での位置(X,Y,Z)O"へ変換される。
【0051】
【数2】
【0052】
以上のようにして算出された原点をO"とする三次元座標上での位置(X,Y,Z)O"をHMD面の一隅を原点O'''とする二次元座標上での位置に変換してHMD面上での矢印端点の位置を算出する。
【0053】
本実施形態では、さらに、HMD面に虚像が表示されないようにしている。矢印端点のうちいくつかがHMD面に対して利用者の顔と同じ側の領域に存在する場合、その領域に存在する端点はHMD面表示では虚像となり、矢印の全部あるいは一部が上下左右逆に表示されることになる。
【0054】
図10は、矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。同図に示すように、HMD面に対して利用者の顔と反対側の領域が実像範囲となり、顔と同じ側の領域が虚像範囲となる。
【0055】
これを回避するために単純に虚像範囲に存在する端点を削除すると、その端点と実像範囲に存在する端点を結ぶ線分が正常に処理されなくなる。そこで、二次元矢印情報投影演算部14は、HMD面と三次元座標上での矢印の線分の交点を求め、この交点を虚像範囲に存在する端点の代わりとする。すなわち、HMD面と三次元座標上での矢印の線分の交点を矢印端点として再定義する。
【0056】
図11は、虚像範囲に存在する端点の処理を概念的に示す図である。同図(a)に示すように、多角形の端点A〜FのうちC〜Eが実像範囲に存在し、A,B,Fが虚像範囲に存在するとする。
【0057】
このままの端点を元にしてHMD面表示を行うと、虚像範囲に存在する多角形の一部が虚像として表示される。また、虚像範囲に存在する端点A,B,Fを単に削除すると、同図(b)に示すように、端点BとCを結ぶ線分BC、端点EとFを結ぶ線分EFが正常に処理されなくなり、実像として表示されるべき多角形の部分も削除されてしまう。
【0058】
そこで、本発明では、同図(c)に示すように、線分BC、線分EFとHMD面の交点B',F'を求め、交点B',F'をそれぞれ端点B,Fに代えることにより多角形の端点を再定義する。
【0059】
次に、多角形の端点を再定義するための具体的手法について説明する。原点をO"とする三次元座標上において多角形を形成する1つの線分ABの端点A,Bの位置(式(2)により求められた端点位置をA(xa,ya,za)、B(xb,yb,zb)とする。
【0060】
以下に示す(1)〜(3)の手順に従って、端点A,Bが実像範囲に存在するか虚像範囲に存在するかにより多角形の端点を再定義する。
(1)端点A、Bが共にHMD面に対して顔と反対側の領域(実像範囲)に存在する場合
【0061】
端点A,Bをそのまま保持する。端点A、Bが共にHMD面に対して実像範囲に存在することは、xa≧r,xb≧rにより判別できる。
(2)端点A、Bが共にHMD面に対して顔と同じ側の領域(虚像範囲)に存在する場合
【0062】
端点A、Bは存在しないものとする。端点A、Bが共にHMD面に対して虚像範囲に存在することは、xa<r,xb<rにより判別できる。
(3)端点A, BがHMD面を挟んで(一方が実像範囲、他方が虚像範囲)存在する場合
【0063】
線分ABとHMD面との交点を求め、虚像範囲に存在す端点の代わりに線分ABとHMD面との交点(x,y,z)O"を用いる。すなわち、xa<r,xb≧rの場合には、端点Bをそのままとし、端点Aの代わりに交点(x,y,z)O"を用い、xa≧r,xb<rの場合には、端点Aをそのままとし、端点Bの代わりに交点(x,y,z)O"を用いる。
【0064】
線分ABとHMD面との交点(x,y,z)O"は、式(3)で求めることができる。
【0065】
【数3】
【0066】
HMD面の一隅を原点O'''とした二次元座標上での端点位置は、HMD面の大きさを考慮すると、式(4)で求めることができる。これにより求められる端点位置は、物理的な長さによるものである。HMD面上でのピクセル数による端点位置とするには、HMD面の左上端からの端点位置までの縦・横の長さに垂直・水平方向の解像度を乗算してピクセル座標に合わせればよい。
【0067】
【数4】
【0068】
二次元矢印情報投影演算部14からは虚像範囲に存在する端点の代わりに再定義された交点および実像範囲に存在する端点の投影点の位置が送出される。図10(c)に示した例では、端点Aは存在しないものとされ、端点B,Fの代わりに交点B',F'が再定義されるので、端点B',C,D,E,F'の投影点の位置が二次元矢印情報投影演算部14から送出される。
【0069】
表示設定部16は、二次元矢印情報投影演算部14により算出された矢印端点の位置を元にHMD面での表示情報を生成する。ここで、矢印の一部がHMD面の表示領域枠外に存在する場合、表示設定部16は、表示領域枠内に存在する矢印の部分が正常に表示されるように、塗りつぶし面の端点の位置を求める。塗りつぶし面の端点の位置は、表示領域枠と矢印外形線の線分の直線同士の交点として求めることができる。各端点の位置を元に塗りつぶし面を求める手法については、後述する。
【0070】
表示部17は、表示設定部16により生成された表示情報を表示する。具体的には、表示設定部16により生成された表示情報を画像出力用ケーブルを介してHMDに出力し、HMD面に投影表示する。なお、画像出力用ケーブルに代えてWireless HDなどの無線接続を利用することもできる。
【0071】
次に、表示設定部16において、各端点の位置を元に塗りつぶし面を求める手法について説明する。図12は、この塗りつぶし面を求める手法を示すフローチャートである。
【0072】
まず、二次元矢印情報投影演算部14での投影演算処理により算出された矢印端点の位置(座標)を元にして各端点を時計回りにたどり、描画端点を得る(S1)。このとき、矢印端点がHMD面の表示領域枠内に存在する場合、その端点を描画端点として保存し、前後の端点を結ぶ線分が表示領域枠と交わる場合にはその交点を描画端点として保存する。それ以外の端点は描画端点としない。また、描画端点に(1)から順に番号を付けるとともに、種別を付ける。描画端点の種別とは、表示領域枠内(表示領域枠内に存在する端点)、交点入(表示領域枠内に入る線分の交点)、交点出(表示領域枠外に出る線分の交点)である。
【0073】
以下の処理は、描画端点を反時計回りにたどりつつ実行される。まず、処理番号を描画端点の最大番号とし(S2)、最初の描画多角形データの生成開始(S3)とする。S3および後述するS12,S15のステップは、互いに分離された複数の塗りつぶし面が存在する場合に、個々の塗りつぶし面に対する別々の描画多角点データを生成するために設けられている。
【0074】
次に、その描画端点が処理済みであるか否かを判定する(S4)。S4で、処理済みでないと判定された場合、その描画端点を描画多角形データに登録するとともに処理済みに設定し(S5)、処理済みと判定された場合はS12に進む。
【0075】
次に、処理済みに設定した描画端点の種別が交点入であるか否かを判定する(S6)。S6で、その描画端点が交点入でないと判定された場合、S7に進み、交点入りと判定された場合は、S9に進む。
【0076】
S7では、処理番号が描画端点の最小番号であるか否かを判定する。S7で、処理番号が描画端点の最小番号と判定された場合、S12に進むが、最小番号でないと判定された場合には、処理番号を1だけ小さくし(S8)、S4に戻って処理を繰り返す。
【0077】
S6で、描画端点が交点入と判定された場合には、表示領域枠の同じ線分上、反時計回りに交点出の描画端点があるか否かを判定する(S9)。この判定には、処理済みの描画端点も対象とする。S9で、交点出の種別の描画端点があると判定された場合、最も近い描画端点を選択し(S10)、S4に戻って処理を繰り返す。また、S9で、交点出の種別の描画端点がないと判定された場合には、反時計回りにある表示領域枠の隅を新たな描画端点(交点入)として登録し、この描画端点を処理対象とし(S11)、S4に戻って処理を繰り返す。なお、この場合の新たな描画端点の種別は、S6からS9に進むために便宜上交点入とする。但し、それが表示領域枠の隅であること明示する種別とし、S6を交点入あるいは表示領域枠の隅であるか否かを判定する構成としてもよい。
【0078】
S12では、S7で処理番号が最小番号と判定されたので、当該描画多角形データの生成終了とする。これにより1つの塗りつぶし面に対する描画多角点データが終端される。
【0079】
次に、まだ処理済みでない描画端点があるか否かを判定する(S13)。ここで、あると判定された場合には残りの描画端点の番号のうちの最大番号を処理番号として(S14)、新たに次の描画多角形データの生成開始(S15)とした後、S4に戻って処理を繰り返すが、ないと判定された場合は、処理を終了する。
【0080】
以下に具体的に説明する。ここでは、図13に示すように、4隅をα,β,γ,δとするHMD面の表示領域枠に対して矢印(端点A〜I)の一部が表示領域枠外となり、表示領域枠αβと矢印外形線の線分BC,CD,DEの交点(3),(4),(6)、表示領域枠δαと矢印外形線の線分HIの交点(7)が求められている場合を例に挙げる。
【0081】
1. 矢印の1つの端点(例えば端点A)から矢印の外周を時計回りにA→B→C…H→Iとたどる。このとき、端点がHMDの表示領域内に存在する場合はその端点を描画端点として登録し、前後の端点を結ぶ線分が表示領域枠と交わる場合はその交点を描画端点として登録する。登録された描画端点には(1)から順に番号を付すとともに種別を付す(S1)。
【0082】
図13の例では、以下のようになる。
端点Aは表示領域内→端点Aが描画端点(番号(1),種別(領域内))として登録される。
端点Bは表示領域内→端点Bが描画端点(番号(2),種別(領域内))として登録される。
線分BCは表示領域枠と交わる→交点が描画端点(番号(3),種別(交点出))として登録される。
線分CDは表示領域枠と交わる→交点が描画端点(番号(4),種別(交点入))として登録される。
端点Dは表示領域内→端点Dが描画端点(番号(5),種別(領域内))として登録される。
線分DEは表示領域枠と交わる→交点が描画端点(番号(6),種別(交点出))として登録される。
線分EFは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分FGは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分GHは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分HIは表示領域枠と交わる→交点が描画端点(番号(7),種別(交点入))として登録される。
端点Iは表示領域内→端点Iが描画端点(番号(8),種別(領域内))として登録される。
【0083】
2. 処理番号を描画端点の最大番号(8)とし(S2)、まず、描画端点I(番号(8))を処理対象として最初の描画多角形データの生成開始とする(S3)。
【0084】
3. 描画端点I(番号(8),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0085】
4. 描画端点I(番号(8),種別(交点入))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(7),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0086】
5. 描画端点(番号(7),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0087】
6. 描画端点(番号(7),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上、反時計回りに交点出の描画端点はないので、反時計回りにある表示領域枠の隅(α)を新たな描画端点(番号(9),種別(交点入))に登録し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S11)。
【0088】
7. 描画端点(番号(9),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0089】
8. 描画端点(番号(9))の種別は交点入であり、表示領域枠の同じ線分(αβ)上、反時計回りに交点出の描画端点(番号(3),種別(交点出))があるので、最も近い描画端点(番号(3),種別(交点出))を選択し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S10)。なお、この場合、最も近い描画端点は描画端点(番号(3),種別(交点出))1つだけである。
【0090】
9. 描画端点(番号(3),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0091】
10. 描画端点(番号(3),種別(交点出))の種別は交点入でないので、処理番号を1だけ小さくして描画端点B(番号(2),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0092】
11. 描画端点B(番号(2),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0093】
12. 描画端点B(番号(2),種別(領域内))の種別は交点入でないので、処理番号を1だけ小さくして描画端点A(番号(1),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0094】
13. 描画端点A(番号(1),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0095】
14. 描画端点A(番号(1),種別(領域内))の種別は交点入でなく、それより小さい番号の描画端点はないので、当該描画多角形データの生成終了とし、S13に進む(S6),(S7),(S12)。
【0096】
15. 処理済みでない描画端点が存在し、その最大番号は(6)であるので、描画端点(番号(6),種別(交点出))を処理対象として次の描画多角形データの生成開始とし、S4以下の処理を行う(S13),(S14),(S15)。
【0097】
16. 描画端点(番号(6),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0098】
17. 描画端点(番号(6),種別(交点出))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点D(番号(5),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0099】
18. 描画端点D(番号(5),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0100】
19. 描画端点D(番号(5),種別(領域内))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(4),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0101】
20. 描画端点(番号(4),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0102】
21. 描画端点(番号(4),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上に描画端点(番号(6),種別(交点出))があるが、これは処理済みであるので、当該描画多角形データの生成終了とし、S13に進む(S6),(S9),(S10),(S4),(S12)。
22. 以上により処理済みでない描画端点はなくなるので、処理を終了する(S13)。
【0103】
以上の処理により、(8),(7),(9),(3),(2),(1)の描画多角形データと(6),(5),(4)の描画多角形データ、すなわち2つ塗りつぶし面が得られる。
【0104】
図14は、本発明の表示システムの第2実施形態を示す機能ブロック図である。第2実施形態は、本発明をHMD面上に種々の多角形の仮想情報を表示する表示システムとして構成されている。これによれば、例えば、利用者の周りに、あたかも多角形状の物体が存在するかのような表示を行うことができる。このように、本発明は、ナビゲーションシステムに限らず、種々の表示システムとして構成できる。
【0105】
図14において、図1と同一あるいは同等部分には同じ符号を付している。第2実施形態が第1実施形態と異なるのは、図1の三次元矢印情報演算部13と二次元矢印情報投影演算部14に代えて三次元仮想情報演算部18と二次元仮想情報投影演算部19を備え、三次元仮想情報演算部18および二次元仮想情報投影演算部19が仮想情報20を処理対象とする点である。第1実施形態は、仮想情報がナビゲーション用の矢印である場合に相当する。
【0106】
ここで、三次元仮想情報演算部18、二次元仮想情報投影演算部19および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に表示部17を付加した構成が、表示システムに必要な構成である。また、第2実施形態でも顔向き取得部15を付加している。
【0107】
仮想情報20は、それが存在する絶対位置あるいは利用者の位置に対する相対位置の情報と多角形の表示内容を含む。仮想情報20は、予め表示システム内に保存されるものでもよいし、通信によりネットワーク上のサーバや他端末から動的に取得されるものでもよい。
【0108】
三次元仮想情報演算部18は、三次元座標上での利用者の位置に対する仮想情報20の相対位置を算出する。仮想情報20として、その絶対位置と表示内容が提供される場合には、その絶対位置とGPSシステムによって取得される利用者の現在位置情報を比較し、利用者の現在位置に対する仮想情報の相対位置を算出すればよい。また、仮想情報20として、利用者の位置に対する相対位置と表示内容が提供される場合には、その相対位置をそのまま用いることができる。三次元仮想情報演算部18は、さらに、第1実施形態と同様に、仮想情報の奥行きに従って三次元座標上での仮想情報の位置を補正する。
【0109】
二次元仮想情報投影演算部19は、三次元仮想情報演算部18で算出された三次元座標上での仮想情報の各端点の位置をHMD面の二次元座標上での位置に変換し、仮想情報がHMD面に投影されたときのHMD面上での仮想情報の端点の位置を算出する。この際、第1実施形態と同様に、虚像範囲となる端点については端点の位置を再定義を行う。
また、この際、第1実施形態と同様に、虚像範囲となる端点については端点の位置を再定義する。二次元仮想情報投影演算部19が行う処理は、二次元矢印情報投影演算部14が行う処理と実質的に同じである。
【0110】
表示設定部16および表示部17での処理は、第1実施形態と同様であるので説明を省略する。
【0111】
第2実施形態によれば、利用者の周りに、あたかも多角形状の物体が存在するかのように表示する表示システムを構成できる。この場合、利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけをHMD面に表示する構成にしてもよい。これは、三次元仮想情報演算部18が三次元座標上での利用者の位置に対する仮想情報20の相対位置を算出する際に、算出対象とする相対位置に制限を加えることにより実現できる。
【0112】
以上、実施形態を説明したが、本発明は、上記実施形態に限定されるのもではなく、種々に変形されたものも含む。例えば、図1では、顔の向きや傾きを検知する顔向き取得部15を1つのセンサモジュールとして構成しているが、顔の向きや傾きをそれぞれ検知するのに適した加速度センサ、地磁気センサを別々のセンサモジュールとして構成することもできる。また、センサモジュールは、表示内容設定装置に搭載されていてもよいし、HMD(表示部17)に搭載されていてもよいし、単独の装置として構成されていてもよい。
【符号の説明】
【0113】
11・・・位置情報取得部、12・・・ナビゲーション情報取得部、13・・・三次元矢印情報演算部、14・・・二次元矢印情報投影演算部、15・・・顔向き取得部、16・・・表示設定部、17・・・表示部、18・・・三次元仮想情報演算部、19・・・二次元仮想情報投影演算部、20・・・仮想情報
【技術分野】
【0001】
本発明は、表示方法および表示システムに関し、特に、現実空間に電子情報を重畳して仮想情報を表示する拡張現実技術における表示方法および表示システムに関する。
【背景技術】
【0002】
従来から、装着することにより眼前にディスプレイが配置され、視界を覆ってディスプレイ画面のみを利用者に視認させる非透過型ヘッドマウントディスプレイ(HMD:Head Mounted Display)が存在する。非透過型HMDでは、眼前のディスプレイ画面上に電子情報による仮想情報が表示されるので、利用者は、意識的に視線を向けなくても、その仮想情報を視認することができる。また、小型のディスプレイを用いても仮想的に大型の画面表示を実現できる。非透過型HMD(Vuzix iWear vr920)は、非特許文献1に記載されている。
【0003】
近年では、視界を確保しながらディスプレイ画面上に電子情報による仮想情報を重畳して表示することが可能な透過型HMDが実現されている。透過型HMDでは、利用者の視界を確保しつつ、ディスプレイ画面上に電子情報による仮想情報が表示されるので、現実空間の視界の一部に電子情報による仮想情報を重畳して表示することができる。透過型HMD(LUMUS)は、非特許文献2に記載されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Vuzix iWear VR920(http://www.vuzix.com/iwear/products_vr920.html)
【非特許文献2】LUMUS(http://www.lumusvision.com/)
【発明の概要】
【発明が解決しようとする課題】
【0005】
透過型HMDを用いて視界の一部に電子情報を重畳して仮想情報を表示する場合、視界上にあたかも仮想情報が存在するように見せるためには、仮想情報が現実空間上に存在するとした場合の仮想情報の3次元位置を設定し、これをHMD面に投影したときの情報を生成し、投影表示すればよい。これにより遠近感も自然に表現された仮想情報を表示することができる。
【0006】
しかしながら、遠くに存在する仮想情報は、HMD面に投影したときの情報を生成する過程での処理(遠近法)の結果、小さく表示されることになり、視認性が低下するという問題がある。現実空間に実在する物体の場合には、それが遠くに存在していても人間の目がその物体にフォーカスを合わせて見るので、視認性の低下を抑えることができる。しかし、仮想情報の場合には、眼前のHMD面に仮想情報が投影表示されるので、この問題は特に顕著となる。
【0007】
本発明の目的は、上記課題を解決し、仮想情報がHMD面に投影表示された際、それが遠くに存在する場合でも視認性のよい表示が得られる表示方法および表示システムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の表示方法は、三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算した仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する第1のステップと、前記第1のステップにより補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する第2のステップと、前記第2のステップにより変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する第3のステップと、前記第3のステップにより生成された画像を透過型HMDの表示面に投影表示する第4のステップを備えた点に第1の特徴がある。
【0009】
また、本発明の表示方法は、前記第1のステップが、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正する点に第2の特徴がある。
【0010】
また、本発明の表示方法は、前記第1のステップが、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて実行される点に第3の特徴がある。
【0011】
また、本発明の表示方法は、前記第2のステップが、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える処理を含む点に第4の特徴がある。
【0012】
また、本発明の表示方法は、前記第3のステップが、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する処理を含む点に第5の特徴がある。
【0013】
また、本発明の表示方法は、仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成される点に第6の特徴がある。
【0014】
また、本発明の表示方法は、仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得される点に第7の特徴がある。
【0015】
本発明は、表示方法としてだけでなく、上記各ステップを実行する手段を備える表示システムとしても実現できる。
【発明の効果】
【0016】
本発明では、現実空間に仮想情報が存在するとし、透過型HMDを用いて現実空間に重畳させて仮想情報を表示する際に、電子的な仮想情報の端点の座標を、その奥行きに応じて補正してHMD面に投影表示するので、遠くに存在する仮想情報でも、その視認性をよくすることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の表示システムの第1実施形態を示す機能ブロック図である。
【図2】三次元座標上での矢印端点の位置を概念的に示す図である。
【図3】三次元座標上での矢印(直進矢印)端点の位置を詳細に示す図である。
【図4】三次元座標上での矢印(右左折矢印)端点の位置を詳細に示す図である。
【図5】奥行きによる矢印の視認性を説明する図である。
【図6】視認性向上のために補正された矢印(直進矢印)端点の位置を示す図である。
【図7】視認性向上のために補正された矢印(右左折矢印)端点の位置を示す図である。
【図8】矢印端点の三次元位置からHMD面上の二次元位置への変換の基本概念を示す図である。
【図9】顔の向き情報に従って矢印の端点位置を制御するために利用される顔の回転モデルを示す図である。
【図10】矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。
【図11】虚像範囲に存在する端点の処理を概念的に示す図である。
【図12】塗りつぶし面を求める手法を示すフローチャートである。
【図13】塗りつぶし面を求める手法を具体的に説明する図である。
【図14】本発明の表示システムの第2実施形態を示す機能ブロック図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明を説明する。本発明は、特に、仮想情報として多角形を透過型HMD(以下では、単に「HMD」と記す。)に表示する表示システムであり、例えば、多角形を利用者の進行方向を指示する矢印とすることによりナビゲーションシステムに適用でき、任意の多角形とすることにより、利用者の周りに仮想情報による物体があたかも存在するかのように表示する表示システムに適用できるものである。
【0019】
図1は、本発明の表示システムの第1実施形態を示す機能ブロック図である。なお、本発明は、各部処理をステップとした表示方法としても実現できる。
【0020】
第1実施形態の表示システムは、位置情報取得部11、ナビゲーション情報取得部12、三次元矢印情報演算部13、二次元矢印情報投影演算部14、顔向き取得部15、表示設定部16および表示部17を備え、ナビゲーションシステムとして構成されている。なお、これらの各部の処理は、ハードウエアでもソフトウエアでも実現できる。
【0021】
ここで、三次元矢印情報演算部13、二次元矢印情報投影演算部14および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に表示部17を付加した構成が、表示システムに必要な構成である。また、利用者の顔向き情報に従って矢印の位置を制御するために顔向き取得部15を付加している。しかし、利用者がほぼ進行方向に向いているとして、顔向き取得部15を付加しない構成も考えられる。また、本実施形態は、ナビゲーションサービスであるので、さらに位置情報取得部11とナビゲーション情報取得部12を付加している。
【0022】
位置情報取得部11は、GPSシステムにより利用者の現在位置情報を取得する。
【0023】
ナビゲーション情報取得部12は、利用者により入力される現在地から目的地までのルート情報を求め、利用者の現在位置情報からその時点での進行方向の方位、次の右左折点までの距離、右左折点で曲がる角度などのナビゲーション情報を取得する。
【0024】
三次元矢印情報演算部13は、ナビゲーション情報を元に、三次元座標上での矢印端点の位置を算出する。矢印端点の位置とは、ナビゲーション用の矢印を利用者がみたときの、三次元座標上での利用者と矢印の間の相対位置を意味する。
【0025】
図2は、三次元座標上での矢印端点の位置を概念的に示す図である。ここでは、利用者の進行方向,左右方向,上下方向をそれぞれx軸,y軸,z軸とし、利用者の首の位置を原点(0,0,0)としたときの利用者と矢印(始点,終点,右左折点)の間の相対位置を示している。同図(a)に示すように、首から-uの高さの位置において、進行方向の距離vの地点から距離v+w1の地点までの直進矢印の始点、終点の位置はそれぞれ、(v,0,-u),(v+w1,0,-u)で表される。また、同図(b)に示すように、進行方向の距離v+wの地点で右左折(折角度θ)し、さらに距離w2の進行を示す場合の、右左折矢印の始点、右左折点、終点の位置はそれぞれ、(v,0,-u),(v+w,0,-u),(v+w+w2*cosθ,w2*sinθ,-u)で表される。例えば、v=1m、w1=30m、v+w+w2=30mに設定される。このように、直線矢印については、一定距離を表す一定長さの直線矢印とすることが好ましいが、次の右左折点までの直線矢印としてもよい。
【0026】
図3、図4は、三次元座標上での矢印端点の位置を詳細に示す図である。ここでは、各矢印端点のx軸方向およびy軸方向の位置(Xi,Yi)を示しており、z軸方向の位置はZ=-u(固定)としている。三次元矢印情報演算部13は、表示部17のHMD面に投影表示される矢印の視認性をよくするために、矢印端点の位置をその奥行きに応じて補正するが、図3、図4は、その補正前の矢印端点の位置を示している。図3は直進矢印の場合、図4は右左折矢印の場合である。矢印は、図3、図4に示されるように太さを持って表される。三次元矢印情報演算部13は、図3、図4で示されるような、矢印端点の位置を算出し、さらに、表示部17のHMD面に投影表示される矢印の視認性をよくするために、その位置をその奥行きに応じて補正する。この補正については後述する。
【0027】
直進矢印と右左折矢印は、次の右左折点までの距離v+wに従って切り替えられる。一定長さの直進矢印を表示するものとすると、w1=T(閾値)とし、w≧Tの場合に直進矢印を表示し、w<Tの場合に右左折矢印を表示するようにすれば、直進矢印と右左折矢印を連続的に切り替えることができる。右左折点までの距離や右左折折角度は、ナビゲーション情報から得ることができる。
【0028】
次に、表示部17のHMD面に投影表示される矢印の視認性をよくするための、矢印端点の位置の補正について説明する。
【0029】
図5は、奥行きによる矢印の視認性を説明する図である。同図(a)は、奥行きに拘わらず矢印を一定太さにした場合、同図(b)は、奥行きに従って矢印を太くした場合、同図(c)は、奥行きに従って矢印をさらに太くした場合である。図5に示すように、遠くの矢印部分は、(a),(b),(c)の順に視認性がよくなる。
【0030】
縦横方向の長さは、奥行きの距離の1乗に比例して縮まり、奥行き方向の長さは、奥行きの距離の2乗に比例して縮まる。そこで、仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの2乗に比例させて補正するのが好ましい。この値は、厳密なものではなく、約1乗、約2乗でよい。
【0031】
以下に、矢印端点の位置の補正について、具体的に説明する。
まず、補正を行っても固定位置となる基準点(Xb,Yb)を決める。直進矢印の場合、例えば、(Xb,Yb)=(v+w1,0)、すなわち直進矢印の終点を基準点とする。右左折矢印の場合には、(Xb,Yb)=(v+w,0)として右左折点を固定位置にするのが好ましい。投影表示する多角形の形状によっては、座標原点(0,0)、多角形の中心や重心の位置、あるいは多角形内の一点を基準点(Xb,Yb)としてもよい。
【0032】
補正後の矢印端点の位置(X',Y')は、
Y'=f(X,Y−Yb)+Yb
X'=f'(X,X−Xb)+Xb
で表される。
【0033】
ここで、f(m,n)=K*mp*n (K*mp≧1の場合)
=n (K*mp<1の場合)
【0034】
f'(m,n)=K'*mp'*n (K*mp'≧1の場合)
=n (K*mp'<1の場合)
であり、K,K'は、チューニング可能な係数パラメータである。また、p≦1,p'≦2とする。補正しない場合、y軸方向の長さは、奥行きの距離の1乗に比例して縮まるので、p=1にして奥行きの距離の1乗に比例して大きくすれば、遠近に拘わらず視覚上での矢印の幅を一定にすることができる。また、x軸方向の長さは、奥行きの距離の2乗に比例して縮まるので、p=2にして奥行きの距離の2乗に比例して大きくすれば、遠近に拘わらず視覚上での矢印の奥行きを一定にすることができる。上記の式では、K*mp<1の場合およびK*mp'<1の場合には、補正を行わないようにしている。これは、近距離に存在する矢印は、補正なしで、遠近感を持って視認性よく表示できるためである。
【0035】
図6および図7は、図3の直進矢印および図4の右左折矢印が補正された場合の矢印端点の位置を示す。
【0036】
図6の直進矢印において、矢印の終点(X4,Y4)は基準点であるので不変である。また、始点(X1,Y1),(X7,Y7)は、Kの値にもよるが、近距離に存在するので補正されず、元の(v,-a),(v,a)のままである。端点(X2,Y2),(X3,Y3),(X5,Y5),(X6,Y6)はそれぞれ、(v+w1-c,-a'),(v+w1-c,-b'),(v+w1-c,b'),(v+w1-c,a')に補正される。ここで、K*(w1-c)≧1の場合、a'=K*a*(w1-c),b'=K*b*(w1-c)となり、K*(w1-c)<1の場合、a'=a,b'=bとなる。
【0037】
図7の右左折矢印においては、矢印の折点(v+w,0)が基準点であるので不変である。また、始点(X1,Y1),(X9,Y9)は、Kの値にもよるが、近距離に存在するので補正されず、元の(v,-a),(v,a)のままである。端点(X'2,Y'2),・・・,(X'8,Y'8)は、上述のようにして端点(X2,Y2),・・・,(X8,Y8)が補正された位置である。ここで、w2を右左折地点までの距離wに応じた長さ(w2=f"(w))、例えばw2=K"*w(K"は係数パラメータ)とすれば、矢印の終点(X'5,Y'5)が画面内に収まるようにすることができる。また、eをw2に応じた長さ(e=f"'(w2))、例えばe=K"'*w2(K"'は係数パラメータ)とすれば、矢印の形状を維持できる。
【0038】
二次元矢印情報投影演算部14は、三次元矢印情報演算部13により算出された三次元座標上での位置をHMD面の二次元座標上での位置に変換し、矢印がHMD面に投影表示されたときのHMD面上での矢印端点の位置を算出する。
【0039】
図8は、矢印端点の三次元位置からHMD面上の二次元位置への変換を概念的に示す図である。同図に示すように、HMD面上での矢印端点の位置は、矢印端点の三次元座標上での位置(v,0,-u),(v+w,0,-u)と眼を結ぶ線分とHMD面との交点として得られる。
【0040】
二次元矢印情報投影演算部14には、顔向き取得部15から顔の向き情報が与えられ、これにより、HMD面上での矢印端点の位置が利用者の顔が向いている方位、上下方向の角度、左右の傾きに応じて制御される。
【0041】
顔向き取得部15は、利用者の顔の向き情報を取得する。顔向き取得部15は、例えば、ジャイロセンサ、地磁気センサ、加速度センサ、またはそれらの複数を1つに統合したセンサモジュールとして構成される。顔の向き情報は、利用者の顔が向いている方位、上下方向の角度、左右の傾きの情報を含む。
【0042】
図9は、顔の向き情報に従って矢印端点の位置を制御するために利用される顔の回転モデルを示す。顔の回転モデルは、人間の首をモデル化したものであり、この回転モデルに従って矢印の端点位置に首の付け根を中心とした回転処理が施される。
【0043】
以下に、二次元矢印情報投影演算部14での回転処理、すなわち、顔の向き情報に従って矢印端点の位置を制御する処理について説明する。
【0044】
まず、図9に示されるように、利用者の首の位置を原点Oとし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した首の位置を原点O'とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した眼の位置を原点O"とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、HMD面の一隅を原点O'''とし、その水平方向をx軸、垂直方向をy軸とした二次元座標を想定し、顔の回転モデルに関する定数r,h,lを以下のように定義する。
const r = HMD_FRONT_LEN_FROM_EYE (定数r:眼とHMD面間の距離)
const h = EYE_HEIGHT_FROM_NECK (定数h:首と眼の高低差)
const l = EYE_FRONT_LEN_FROM_NECK (定数l:首と眼の水平方向離間距離)
【0045】
また、HMD面の大きさに関する定数(ピクセルではなく物理的な長さ)を以下のように定義する。
const DISPLAY_WIDTH (HMD面の幅)
const DISPLAY_HEIGT (HMD面の高さ)
【0046】
顔向き取得部15から取得できる顔の向き情報の変数を以下のように定義する。
θ = face_direction(北向きから反時計回り(西側)が正)
φ = face_tilt(上向き方向が正)
ψ = face_rot(右に傾げた場合が正)
【0047】
三次元座標上での矢印端点の位置(X,Y,Z)とすると、原点をOとする三次元座標上での端点の位置(X,Y,Z)Oは、式(1)により原点をO'とする三次元座標上での位置(X,Y,Z)O’に変換される。
【0048】
【数1】
【0049】
式(1)における右辺の3つの行列はそれぞれ、顔の左右傾きを逆補正回転(-ψ回転)させる行列、顔の上下傾きを逆補正回転(-φ回転)させる行列、顔の向きを逆補正回転(-θ回転)させる行列であり、これらの行列を行列(X,Y,Z)Oに掛けることにより行列(X,Y,Z)O’が算出される。
【0050】
原点をO'とする三次元座標上での端点の位置(X,Y,Z)O’は、式(2)に示すように、定数h,l分だけ平行移動させることにより、原点をO"とする三次元座標上での位置(X,Y,Z)O"へ変換される。
【0051】
【数2】
【0052】
以上のようにして算出された原点をO"とする三次元座標上での位置(X,Y,Z)O"をHMD面の一隅を原点O'''とする二次元座標上での位置に変換してHMD面上での矢印端点の位置を算出する。
【0053】
本実施形態では、さらに、HMD面に虚像が表示されないようにしている。矢印端点のうちいくつかがHMD面に対して利用者の顔と同じ側の領域に存在する場合、その領域に存在する端点はHMD面表示では虚像となり、矢印の全部あるいは一部が上下左右逆に表示されることになる。
【0054】
図10は、矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。同図に示すように、HMD面に対して利用者の顔と反対側の領域が実像範囲となり、顔と同じ側の領域が虚像範囲となる。
【0055】
これを回避するために単純に虚像範囲に存在する端点を削除すると、その端点と実像範囲に存在する端点を結ぶ線分が正常に処理されなくなる。そこで、二次元矢印情報投影演算部14は、HMD面と三次元座標上での矢印の線分の交点を求め、この交点を虚像範囲に存在する端点の代わりとする。すなわち、HMD面と三次元座標上での矢印の線分の交点を矢印端点として再定義する。
【0056】
図11は、虚像範囲に存在する端点の処理を概念的に示す図である。同図(a)に示すように、多角形の端点A〜FのうちC〜Eが実像範囲に存在し、A,B,Fが虚像範囲に存在するとする。
【0057】
このままの端点を元にしてHMD面表示を行うと、虚像範囲に存在する多角形の一部が虚像として表示される。また、虚像範囲に存在する端点A,B,Fを単に削除すると、同図(b)に示すように、端点BとCを結ぶ線分BC、端点EとFを結ぶ線分EFが正常に処理されなくなり、実像として表示されるべき多角形の部分も削除されてしまう。
【0058】
そこで、本発明では、同図(c)に示すように、線分BC、線分EFとHMD面の交点B',F'を求め、交点B',F'をそれぞれ端点B,Fに代えることにより多角形の端点を再定義する。
【0059】
次に、多角形の端点を再定義するための具体的手法について説明する。原点をO"とする三次元座標上において多角形を形成する1つの線分ABの端点A,Bの位置(式(2)により求められた端点位置をA(xa,ya,za)、B(xb,yb,zb)とする。
【0060】
以下に示す(1)〜(3)の手順に従って、端点A,Bが実像範囲に存在するか虚像範囲に存在するかにより多角形の端点を再定義する。
(1)端点A、Bが共にHMD面に対して顔と反対側の領域(実像範囲)に存在する場合
【0061】
端点A,Bをそのまま保持する。端点A、Bが共にHMD面に対して実像範囲に存在することは、xa≧r,xb≧rにより判別できる。
(2)端点A、Bが共にHMD面に対して顔と同じ側の領域(虚像範囲)に存在する場合
【0062】
端点A、Bは存在しないものとする。端点A、Bが共にHMD面に対して虚像範囲に存在することは、xa<r,xb<rにより判別できる。
(3)端点A, BがHMD面を挟んで(一方が実像範囲、他方が虚像範囲)存在する場合
【0063】
線分ABとHMD面との交点を求め、虚像範囲に存在す端点の代わりに線分ABとHMD面との交点(x,y,z)O"を用いる。すなわち、xa<r,xb≧rの場合には、端点Bをそのままとし、端点Aの代わりに交点(x,y,z)O"を用い、xa≧r,xb<rの場合には、端点Aをそのままとし、端点Bの代わりに交点(x,y,z)O"を用いる。
【0064】
線分ABとHMD面との交点(x,y,z)O"は、式(3)で求めることができる。
【0065】
【数3】
【0066】
HMD面の一隅を原点O'''とした二次元座標上での端点位置は、HMD面の大きさを考慮すると、式(4)で求めることができる。これにより求められる端点位置は、物理的な長さによるものである。HMD面上でのピクセル数による端点位置とするには、HMD面の左上端からの端点位置までの縦・横の長さに垂直・水平方向の解像度を乗算してピクセル座標に合わせればよい。
【0067】
【数4】
【0068】
二次元矢印情報投影演算部14からは虚像範囲に存在する端点の代わりに再定義された交点および実像範囲に存在する端点の投影点の位置が送出される。図10(c)に示した例では、端点Aは存在しないものとされ、端点B,Fの代わりに交点B',F'が再定義されるので、端点B',C,D,E,F'の投影点の位置が二次元矢印情報投影演算部14から送出される。
【0069】
表示設定部16は、二次元矢印情報投影演算部14により算出された矢印端点の位置を元にHMD面での表示情報を生成する。ここで、矢印の一部がHMD面の表示領域枠外に存在する場合、表示設定部16は、表示領域枠内に存在する矢印の部分が正常に表示されるように、塗りつぶし面の端点の位置を求める。塗りつぶし面の端点の位置は、表示領域枠と矢印外形線の線分の直線同士の交点として求めることができる。各端点の位置を元に塗りつぶし面を求める手法については、後述する。
【0070】
表示部17は、表示設定部16により生成された表示情報を表示する。具体的には、表示設定部16により生成された表示情報を画像出力用ケーブルを介してHMDに出力し、HMD面に投影表示する。なお、画像出力用ケーブルに代えてWireless HDなどの無線接続を利用することもできる。
【0071】
次に、表示設定部16において、各端点の位置を元に塗りつぶし面を求める手法について説明する。図12は、この塗りつぶし面を求める手法を示すフローチャートである。
【0072】
まず、二次元矢印情報投影演算部14での投影演算処理により算出された矢印端点の位置(座標)を元にして各端点を時計回りにたどり、描画端点を得る(S1)。このとき、矢印端点がHMD面の表示領域枠内に存在する場合、その端点を描画端点として保存し、前後の端点を結ぶ線分が表示領域枠と交わる場合にはその交点を描画端点として保存する。それ以外の端点は描画端点としない。また、描画端点に(1)から順に番号を付けるとともに、種別を付ける。描画端点の種別とは、表示領域枠内(表示領域枠内に存在する端点)、交点入(表示領域枠内に入る線分の交点)、交点出(表示領域枠外に出る線分の交点)である。
【0073】
以下の処理は、描画端点を反時計回りにたどりつつ実行される。まず、処理番号を描画端点の最大番号とし(S2)、最初の描画多角形データの生成開始(S3)とする。S3および後述するS12,S15のステップは、互いに分離された複数の塗りつぶし面が存在する場合に、個々の塗りつぶし面に対する別々の描画多角点データを生成するために設けられている。
【0074】
次に、その描画端点が処理済みであるか否かを判定する(S4)。S4で、処理済みでないと判定された場合、その描画端点を描画多角形データに登録するとともに処理済みに設定し(S5)、処理済みと判定された場合はS12に進む。
【0075】
次に、処理済みに設定した描画端点の種別が交点入であるか否かを判定する(S6)。S6で、その描画端点が交点入でないと判定された場合、S7に進み、交点入りと判定された場合は、S9に進む。
【0076】
S7では、処理番号が描画端点の最小番号であるか否かを判定する。S7で、処理番号が描画端点の最小番号と判定された場合、S12に進むが、最小番号でないと判定された場合には、処理番号を1だけ小さくし(S8)、S4に戻って処理を繰り返す。
【0077】
S6で、描画端点が交点入と判定された場合には、表示領域枠の同じ線分上、反時計回りに交点出の描画端点があるか否かを判定する(S9)。この判定には、処理済みの描画端点も対象とする。S9で、交点出の種別の描画端点があると判定された場合、最も近い描画端点を選択し(S10)、S4に戻って処理を繰り返す。また、S9で、交点出の種別の描画端点がないと判定された場合には、反時計回りにある表示領域枠の隅を新たな描画端点(交点入)として登録し、この描画端点を処理対象とし(S11)、S4に戻って処理を繰り返す。なお、この場合の新たな描画端点の種別は、S6からS9に進むために便宜上交点入とする。但し、それが表示領域枠の隅であること明示する種別とし、S6を交点入あるいは表示領域枠の隅であるか否かを判定する構成としてもよい。
【0078】
S12では、S7で処理番号が最小番号と判定されたので、当該描画多角形データの生成終了とする。これにより1つの塗りつぶし面に対する描画多角点データが終端される。
【0079】
次に、まだ処理済みでない描画端点があるか否かを判定する(S13)。ここで、あると判定された場合には残りの描画端点の番号のうちの最大番号を処理番号として(S14)、新たに次の描画多角形データの生成開始(S15)とした後、S4に戻って処理を繰り返すが、ないと判定された場合は、処理を終了する。
【0080】
以下に具体的に説明する。ここでは、図13に示すように、4隅をα,β,γ,δとするHMD面の表示領域枠に対して矢印(端点A〜I)の一部が表示領域枠外となり、表示領域枠αβと矢印外形線の線分BC,CD,DEの交点(3),(4),(6)、表示領域枠δαと矢印外形線の線分HIの交点(7)が求められている場合を例に挙げる。
【0081】
1. 矢印の1つの端点(例えば端点A)から矢印の外周を時計回りにA→B→C…H→Iとたどる。このとき、端点がHMDの表示領域内に存在する場合はその端点を描画端点として登録し、前後の端点を結ぶ線分が表示領域枠と交わる場合はその交点を描画端点として登録する。登録された描画端点には(1)から順に番号を付すとともに種別を付す(S1)。
【0082】
図13の例では、以下のようになる。
端点Aは表示領域内→端点Aが描画端点(番号(1),種別(領域内))として登録される。
端点Bは表示領域内→端点Bが描画端点(番号(2),種別(領域内))として登録される。
線分BCは表示領域枠と交わる→交点が描画端点(番号(3),種別(交点出))として登録される。
線分CDは表示領域枠と交わる→交点が描画端点(番号(4),種別(交点入))として登録される。
端点Dは表示領域内→端点Dが描画端点(番号(5),種別(領域内))として登録される。
線分DEは表示領域枠と交わる→交点が描画端点(番号(6),種別(交点出))として登録される。
線分EFは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分FGは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分GHは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分HIは表示領域枠と交わる→交点が描画端点(番号(7),種別(交点入))として登録される。
端点Iは表示領域内→端点Iが描画端点(番号(8),種別(領域内))として登録される。
【0083】
2. 処理番号を描画端点の最大番号(8)とし(S2)、まず、描画端点I(番号(8))を処理対象として最初の描画多角形データの生成開始とする(S3)。
【0084】
3. 描画端点I(番号(8),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0085】
4. 描画端点I(番号(8),種別(交点入))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(7),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0086】
5. 描画端点(番号(7),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0087】
6. 描画端点(番号(7),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上、反時計回りに交点出の描画端点はないので、反時計回りにある表示領域枠の隅(α)を新たな描画端点(番号(9),種別(交点入))に登録し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S11)。
【0088】
7. 描画端点(番号(9),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0089】
8. 描画端点(番号(9))の種別は交点入であり、表示領域枠の同じ線分(αβ)上、反時計回りに交点出の描画端点(番号(3),種別(交点出))があるので、最も近い描画端点(番号(3),種別(交点出))を選択し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S10)。なお、この場合、最も近い描画端点は描画端点(番号(3),種別(交点出))1つだけである。
【0090】
9. 描画端点(番号(3),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0091】
10. 描画端点(番号(3),種別(交点出))の種別は交点入でないので、処理番号を1だけ小さくして描画端点B(番号(2),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0092】
11. 描画端点B(番号(2),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0093】
12. 描画端点B(番号(2),種別(領域内))の種別は交点入でないので、処理番号を1だけ小さくして描画端点A(番号(1),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0094】
13. 描画端点A(番号(1),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0095】
14. 描画端点A(番号(1),種別(領域内))の種別は交点入でなく、それより小さい番号の描画端点はないので、当該描画多角形データの生成終了とし、S13に進む(S6),(S7),(S12)。
【0096】
15. 処理済みでない描画端点が存在し、その最大番号は(6)であるので、描画端点(番号(6),種別(交点出))を処理対象として次の描画多角形データの生成開始とし、S4以下の処理を行う(S13),(S14),(S15)。
【0097】
16. 描画端点(番号(6),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0098】
17. 描画端点(番号(6),種別(交点出))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点D(番号(5),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0099】
18. 描画端点D(番号(5),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0100】
19. 描画端点D(番号(5),種別(領域内))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(4),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【0101】
20. 描画端点(番号(4),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【0102】
21. 描画端点(番号(4),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上に描画端点(番号(6),種別(交点出))があるが、これは処理済みであるので、当該描画多角形データの生成終了とし、S13に進む(S6),(S9),(S10),(S4),(S12)。
22. 以上により処理済みでない描画端点はなくなるので、処理を終了する(S13)。
【0103】
以上の処理により、(8),(7),(9),(3),(2),(1)の描画多角形データと(6),(5),(4)の描画多角形データ、すなわち2つ塗りつぶし面が得られる。
【0104】
図14は、本発明の表示システムの第2実施形態を示す機能ブロック図である。第2実施形態は、本発明をHMD面上に種々の多角形の仮想情報を表示する表示システムとして構成されている。これによれば、例えば、利用者の周りに、あたかも多角形状の物体が存在するかのような表示を行うことができる。このように、本発明は、ナビゲーションシステムに限らず、種々の表示システムとして構成できる。
【0105】
図14において、図1と同一あるいは同等部分には同じ符号を付している。第2実施形態が第1実施形態と異なるのは、図1の三次元矢印情報演算部13と二次元矢印情報投影演算部14に代えて三次元仮想情報演算部18と二次元仮想情報投影演算部19を備え、三次元仮想情報演算部18および二次元仮想情報投影演算部19が仮想情報20を処理対象とする点である。第1実施形態は、仮想情報がナビゲーション用の矢印である場合に相当する。
【0106】
ここで、三次元仮想情報演算部18、二次元仮想情報投影演算部19および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に表示部17を付加した構成が、表示システムに必要な構成である。また、第2実施形態でも顔向き取得部15を付加している。
【0107】
仮想情報20は、それが存在する絶対位置あるいは利用者の位置に対する相対位置の情報と多角形の表示内容を含む。仮想情報20は、予め表示システム内に保存されるものでもよいし、通信によりネットワーク上のサーバや他端末から動的に取得されるものでもよい。
【0108】
三次元仮想情報演算部18は、三次元座標上での利用者の位置に対する仮想情報20の相対位置を算出する。仮想情報20として、その絶対位置と表示内容が提供される場合には、その絶対位置とGPSシステムによって取得される利用者の現在位置情報を比較し、利用者の現在位置に対する仮想情報の相対位置を算出すればよい。また、仮想情報20として、利用者の位置に対する相対位置と表示内容が提供される場合には、その相対位置をそのまま用いることができる。三次元仮想情報演算部18は、さらに、第1実施形態と同様に、仮想情報の奥行きに従って三次元座標上での仮想情報の位置を補正する。
【0109】
二次元仮想情報投影演算部19は、三次元仮想情報演算部18で算出された三次元座標上での仮想情報の各端点の位置をHMD面の二次元座標上での位置に変換し、仮想情報がHMD面に投影されたときのHMD面上での仮想情報の端点の位置を算出する。この際、第1実施形態と同様に、虚像範囲となる端点については端点の位置を再定義を行う。
また、この際、第1実施形態と同様に、虚像範囲となる端点については端点の位置を再定義する。二次元仮想情報投影演算部19が行う処理は、二次元矢印情報投影演算部14が行う処理と実質的に同じである。
【0110】
表示設定部16および表示部17での処理は、第1実施形態と同様であるので説明を省略する。
【0111】
第2実施形態によれば、利用者の周りに、あたかも多角形状の物体が存在するかのように表示する表示システムを構成できる。この場合、利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけをHMD面に表示する構成にしてもよい。これは、三次元仮想情報演算部18が三次元座標上での利用者の位置に対する仮想情報20の相対位置を算出する際に、算出対象とする相対位置に制限を加えることにより実現できる。
【0112】
以上、実施形態を説明したが、本発明は、上記実施形態に限定されるのもではなく、種々に変形されたものも含む。例えば、図1では、顔の向きや傾きを検知する顔向き取得部15を1つのセンサモジュールとして構成しているが、顔の向きや傾きをそれぞれ検知するのに適した加速度センサ、地磁気センサを別々のセンサモジュールとして構成することもできる。また、センサモジュールは、表示内容設定装置に搭載されていてもよいし、HMD(表示部17)に搭載されていてもよいし、単独の装置として構成されていてもよい。
【符号の説明】
【0113】
11・・・位置情報取得部、12・・・ナビゲーション情報取得部、13・・・三次元矢印情報演算部、14・・・二次元矢印情報投影演算部、15・・・顔向き取得部、16・・・表示設定部、17・・・表示部、18・・・三次元仮想情報演算部、19・・・二次元仮想情報投影演算部、20・・・仮想情報
【特許請求の範囲】
【請求項1】
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算した仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する第1のステップと、
前記第1のステップにより補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する第2のステップと、
前記第2のステップにより変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する第3のステップと、
前記第3のステップにより生成された画像を透過型HMDの表示面に投影表示する第4のステップを備えたことを特徴とする表示方法。
【請求項2】
前記第1のステップは、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正することを特徴とする請求項1に記載の表示方法。
【請求項3】
前記第1のステップは、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて実行されることを特徴とする請求項1または2に記載の表示方法。
【請求項4】
前記第2のステップは、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える処理を含むことを特徴とする請求項1ないし3のいずれかに記載の表示方法。
【請求項5】
前記第3のステップは、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する処理を含むことを特徴とする請求項1ないし4のいずれかに記載の表示方法。
【請求項6】
仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項1ないし5のいずれかに記載の表示方法。
【請求項7】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項1ないし5のいずれかに記載の表示方法。
【請求項8】
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算された仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する三次元情報演算部と、
前記三次元情報演算部により補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する二次元情報投影演算部と、
前記二次元情報投影演算部により変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する表示設定部と、
前記第4のステップにより生成された画像を透過型HMDの表示面に投影表示する表示部を備えたことを特徴とする表示システム。
【請求項9】
前記三次元情報演算部は、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正することを特徴とする請求項8に記載の表示システム。
【請求項10】
前記三次元情報演算部は、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて補正を実行することを特徴とする請求項8または9に記載の表示システム。
【請求項11】
前記二次元情報投影演算部は、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える機能を有することを特徴とする請求項8ないし10のいずれかに記載の表示システム。
【請求項12】
前記表示設定部は、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する機能を有することを特徴とする請求項8ないし11のいずれかに記載の表示システム。
【請求項13】
仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項8ないし12のいずれかに記載の表示システム。
【請求項14】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項8ないし12のいずれかに記載の表示システム。
【請求項1】
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算した仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する第1のステップと、
前記第1のステップにより補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する第2のステップと、
前記第2のステップにより変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する第3のステップと、
前記第3のステップにより生成された画像を透過型HMDの表示面に投影表示する第4のステップを備えたことを特徴とする表示方法。
【請求項2】
前記第1のステップは、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正することを特徴とする請求項1に記載の表示方法。
【請求項3】
前記第1のステップは、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて実行されることを特徴とする請求項1または2に記載の表示方法。
【請求項4】
前記第2のステップは、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える処理を含むことを特徴とする請求項1ないし3のいずれかに記載の表示方法。
【請求項5】
前記第3のステップは、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する処理を含むことを特徴とする請求項1ないし4のいずれかに記載の表示方法。
【請求項6】
仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項1ないし5のいずれかに記載の表示方法。
【請求項7】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項1ないし5のいずれかに記載の表示方法。
【請求項8】
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算するとともに、演算された仮想情報の端点の位置を、利用者の視点からの仮想情報の奥行きに応じて補正する三次元情報演算部と、
前記三次元情報演算部により補正された仮想情報の端点の位置を、透過型HMDの表示面上の位置に変換する二次元情報投影演算部と、
前記二次元情報投影演算部により変換された仮想情報の位置を用いて、透過型HMDの表示面に投影表示する画像を生成する表示設定部と、
前記第4のステップにより生成された画像を透過型HMDの表示面に投影表示する表示部を備えたことを特徴とする表示システム。
【請求項9】
前記三次元情報演算部は、演算した仮想情報の端点の位置を、縦横方向については利用者の視点からの仮想情報の端点の奥行きの約1乗に比例させて補正し、奥行き方向については利用者の視点からの仮想情報の端点の奥行きの約2乗に比例させて補正することを特徴とする請求項8に記載の表示システム。
【請求項10】
前記三次元情報演算部は、利用者の視点からの仮想情報の端点の奥行きが一定距離以上の端点のみについて補正を実行することを特徴とする請求項8または9に記載の表示システム。
【請求項11】
前記二次元情報投影演算部は、透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代える機能を有することを特徴とする請求項8ないし10のいずれかに記載の表示システム。
【請求項12】
前記表示設定部は、透過型HMDの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面の交点を求め、該交点を表示面外の端点に代わりに用いて透過型HMDの表示面に投影表示する画像を生成する機能を有することを特徴とする請求項8ないし11のいずれかに記載の表示システム。
【請求項13】
仮想情報が、ナビゲーションにおける矢印であり、GPSシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項8ないし12のいずれかに記載の表示システム。
【請求項14】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項8ないし12のいずれかに記載の表示システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−47866(P2011−47866A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−198132(P2009−198132)
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]