(57)【要約】【課題】２Ｄ表示装置用の３Ｄコンテンツデータを立体ディスプレイ装置用データに加工して出力するステレオビューアを実現する。【解決手段】３Ｄコンテンツデータを入力する入力部と、そのデータから左目用と右目用の２次元表示画像を生成する画像生成部と、左目と右目の位置および視線方向用のデータ保持部と、を備える。左目と右目間はｄで、その視線方向は、距離に応じた輻輳角で交わる。画像生成部は、左目右目用画像用記憶領域を水平方向に分割して、左目用右目用２Ｄ表示画像を生成する。視線方向をθ変えるには、横をｘ方向、縦をｙ方向、ｘとｙに垂直な手前をｚ方向とするとき、左目位置（ｘl、ｙl、ｚl）と右目位置（ｘr、ｙr、ｚr）との差を（−ｄ×ｃｏｓ（θ）、ｙl−(１/χ)×ｙr、ｄ×ｓｉｎ（θ））、とする。この式を含め、プログラム中の圧縮率χで縦横比を調整し、見やすい画像とする。【選択図】図６
2011070432.tif 000002
【特許請求の範囲】
【請求項１】
観察者に３次元画像表示用の左目用画像と右目用画像とを提示するためのそれぞれの表示信号を出力する装置であって、
異なる視点から見た画像を２次元表示装置に表示することのできる３次元コンテンツデータを入力する入力部と、
上記３次元コンテンツデータの、予め決められた左目位置および視線方向と右目位置および視線方向それぞれから見た左目用２次元表示画像と右目用２次元表示画像を生成する画像生成部と、
上記左目用２次元表示画像と右目用２次元表示画像間でそれぞれの変化の同期をとる同期部と、
上記左目位置および視線方向と右目位置および視線方向のそれぞれのデータを保持するデータ保持部と、を備え、
上記左目位置と右目位置は、所定の距離（ｄ）を隔てたものであり、
上記左目視線方向と右目視線方向とは、対象物までの距離に応じた輻輳角をもって交わり、
上記画像生成部は、表示画像記憶領域を左目用画像用記憶領域と右目用画像用記憶領域とに水平方向に分割したそれぞれの領域に、上記左目用２次元表示画像と右目用２次元表示画像とを生成し、
左目から右目に向かう横方向をｘ方向とし、ｘ方向に垂直で表示画像の上向き縦方向をｙ方向とし、ｘ方向とｙ方向に垂直な手前方向をｚ方向とするとき、視線方向を角度θだけ変える場合に、左目位置（ｘl、ｙl、ｚl）と右目位置（ｘr、ｙr、ｚr）について、
【数３】
2011070432.tif 000005
とし、圧縮率χを変えることで見やすい縦横比の画像を表示することを特徴とする３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【請求項２】
アナグリフ方式の３次元画像表示用の左目用画像と右目用画像とを提示するために色変換を行う画像変換部を通して出力することを特徴とする請求項１に記載の３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【請求項３】
液晶シャッター方式の３次元画像表示用の左目用画像と右目用画像とを交互に出力する画像変換部を通して出力することを特徴とする請求項１に記載の３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【請求項４】
偏光フィルタ方式の３次元画像表示装置の左目用画像と右目用画像とを提示するために、上記左目用画像と右目用画像を、互いに直交する偏光が透過する領域に合わせて配列する画像変換部を通して出力することを特徴とする請求項１に記載の３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【請求項５】
視差障壁方式またはレンチキュラーレンズ方式の３次元画像表示装置の左目用画像と右目用画像とを、視差障壁またはレンチキュラーレンズの縦縞に合わせて、前記縦縞の1周期中に縦縞状の左目用画像と右目用画像を交互に並列して配置する画像変換部を通して出力することを特徴とする請求項１に記載の３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【請求項６】
３次元画像表示における移動において、
観察者から見て横方向の移動は、上記左目位置および右目位置の移動で行い、
観察者から見て縦方向の移動は、上記３次元コンテンツデータにおける回転で行う、
ことを特徴とする請求項１から５のいずれか１つに記載の３次元コンテンツを立体コンテンツに自動変換するステレオビューア。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、インターネットウエブサイト上で主に提供され通常のディスプレイ装置用の３次元コンテンツを、立体ディスプレイ装置用の立体コンテンツに自動変換するステレオビューアに関するものである。
【背景技術】
【０００２】
一般に、テキストのみの画面に比べて２Ｄ（２次元）画像で表現できる情報量はより多く、さらに、２Ｄのコンテンツと比較して３Ｄ（３次元）コンテンツの情報量はより多い。３次元コンテンツの場合は、テキストを読まなくても直感的に内容を理解できることもある。インターネットウエブを３次元で表現することによるメリットに、この様に、２Ｄコンテンツに比べてより多くの情報量を表現できるという点がある。このようなことから、３Ｄ表現を採用したサイトが次第に増加している。
【０００３】
３Ｄのオブジェクトを記述する言語としては、例えば、ＶＲＭＬ（Virtual Reality Modeling Language：仮想現実モデリング言語）や、その後継規格としてＸ３Ｄ（ＸＭＬベースの３次元コンピュータグラフィックスを表現するためのファイルフォーマット）がある。また、ＷＰＦ（Windows Presentation Foundation）なども知られている。
【０００４】
上記の言語を用いて、仮想３次元空間に３Ｄコンテンツが表現される。また、その３Ｄコンテンツの閲覧者は、通常、上記仮想３次元空間に設けた視点から見た景色を２Ｄ表示装置に表示することで閲覧するが、上記視点を自由に移動させるか自由な位置に置くなどして、３次元コンテンツであることを確認し、実感することができる。
【０００５】
本発明は、画像が静止した状態でも上記３次元コンテンツの立体性を実感できる様にするために、上記の３次元コンテンツのデータを立体ディスプレイ装置用データに加工して出力するステレオビューアに関するものである。この、立体ディスプレイ装置は、より実物に近い表示ができることから、展示用の表示の他に、コンピュータゲーム、訓練用シミュレータ、装置の遠隔操作の表示装置、などに既に用いられており、またその応用分野は拡大している。
【０００６】
本発明の想定する立体ディスプレイ装置は、左右の目それぞれに異なる画像を提供することで３次元表示を行うものであり、このような方式のものとしては、例えばメガネを使用するものとして、（１）左右の映像をそれぞれ赤と青の光で重ねて映写し、左右の映像に直交する直線偏光をかけて重ねて投影し、それぞれ赤と青のカラーフィルタの付いたメガネで分離するアナグリフや、（２）左右の映像に直交する直線偏光をかけて重ねて投影し、これを偏光フィルタにより分離する偏光フィルタ方式、（３）映像に合わせて、左右の映像が交互に遮蔽されるように液晶シャッターが駆動するメガネを利用する液晶シャッター方式、などが知られている。また、メガネを使用しない方式のものとしては、（４）視差障壁を設けて、左右の目に別々の光線を入射するようにしたもの、（５）光線再生型であるが、レンチキュラーレンズやフライアイレンズアレイを用いて光線の波面を再生するインテグラルディスプレイ、などが知られている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】T.Okino,H.Murata,K.Taima,T.Iinuma,K.Oketani：「New television with 2D/3D image conversion technologies」、Proceedings of SPIE - The International Society for Optical Engineers. vol.2653 pp.96-103(1996)
【非特許文献２】荒屋真二：「ＶＲＭＬ/X3D 技術講座」、http://www.fit.ac.jp/~araya/jis/、VRML Automation、sample 8.（2008年9月８日）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明では、２Ｄ表示装置用に用意された３次元コンテンツのデータを立体ディスプレイ装置用データに加工して出力するステレオビューアを実現することである。
【課題を解決するための手段】
【０００９】
本発明のステレオビューアは、観察者に３次元画像表示用の左目用画像と右目用画像とを提示するためのそれぞれの表示信号を出力する装置である。この装置は、異なる視点から見た画像を２次元表示装置に表示することのできる３次元コンテンツデータを入力する入力部と、上記３次元コンテンツデータの、予め決められた左目位置および視線方向と右目位置および視線方向それぞれから見た左目用２次元表示画像と右目用２次元表示画像を生成する画像生成部と、上記左目用２次元表示画像と右目用２次元表示画像間でそれぞれの変化の同期をとる同期部と、上記左目位置および視線方向と右目位置および視線方向のそれぞれのデータを保持するデータ保持部と、を備える。上記左目位置と右目位置は、所定の距離（ｄ）を隔てたものであり、上記左目視線方向と右目視線方向とは、対象物までの距離に応じた輻輳角をもって交わる。この輻輳角は、より遠くの対象物に対してはより小さい。また、上記画像生成部は、表示画像記憶領域を左目用画像用記憶領域と右目用画像用記憶領域とに水平方向に２分割したそれぞれの領域に、上記左目用２次元表示画像と右目用２次元表示画像とを生成する。これは、画像表示装置の記憶領域に関するものである。視線方向を変える場合は、左目から右目に向かう横方向をｘ方向とし、ｘ方向に垂直で表示画像の上向き縦方向をｙ方向とし、ｘ方向とｙ方向に垂直な手前方向をｚ方向とするとき、視線方向を角度θだけ変える場合に、左目位置（ｘl、ｙl、ｚl）と右目位置（ｘr、ｙr、ｚr）について、以下の様に変換する。
【００１０】
【数１】
2011070432.tif 000003
【００１１】
ここで、圧縮率χを０．５より大きくすることで、横が狭い画像を表示し、圧縮率χをそれより小さくすることで、横幅のある画像を表示することができる。この圧縮率χの値を調節することにより、３Ｄコンテンツを画面サイズの異なった複数の立体ディスプレイ装置のもとで表示することが可能になる。このステレオビューアの出力は、サイドバイサイド型の表示装置、例えばヘッドマウントディスプレイの左目用画像と右目用画像として出力する。
【００１２】
本発明をアナグリフ方式の３次元画像表示に適用する場合は、その左目用画像と右目用画像とを提示するために色変換を行う画像変換部を通して出力する。
【００１３】
また、液晶シャッター方式の３次元画像表示、例えばフィールドシークェンシャル液晶表示装置、に適用する場合は、その左目用画像と右目用画像とを交互に出力する画像変換部を通して出力する。
【００１４】
また、偏光フィルタ方式の３次元画像表示装置の左目用画像と右目用画像とを提示するためには、上記左目用画像と右目用画像を、互いに直交する偏光が透過する領域に合わせて配列する画像変換部を通して出力する。
【００１５】
視差障壁方式またはレンチキュラーレンズ方式では、専用のメガネを用いる必要が無いが、この３次元画像表示装置の左目用画像と右目用画像とは、その視差障壁またはレンチキュラーレンズの縦縞に合わせて、前記縦縞の1周期中に縦縞状の左目用画像と右目用画像を交互に並列して配置する画像変換部を通して出力する。
【００１６】
また、観察者から見て横方向の移動は、上記左目位置および右目位置の移動で行い、観察者から見て縦方向の移動は、上記３次元コンテンツデータにおける回転で行う。この様に、３次元画像表示における移動成分を分解することによって、観察者が自由な観察位置で観察するためのプログラムを容易に作成できるようになる。
【発明の効果】
【００１７】
この発明によって、インターネットウエブサイト上の２Ｄ表示装置用に用意された３次元コンテンツのデータを用いて、立体画像表示をリアルタイムで行うことができる。
【図面の簡単な説明】
【００１８】
【図１】ルート１に、ウェブサイトのＶＲＭＬコンテンツを閲覧する従来の方法（非立体的な閲覧方法）を示し、ルート２は、本発明のステレオビューアを用いる方法を示す。
【図２】立体アニメ動画を例に、立体コンテンツを制作して閲覧するまでを示す図である。
【図３】閲覧者が立体視のもとで仮想世界をウォークスルーすることを可能にするための、ステレオビューアに付加する同期機構を説明する図である。
【図４】ウェブサイトからダウンロードされたＶＲＭＬコンテンツが立体ディスプレイ装置に立体画像として表示されるまでの流れを示す図である。
【図５】両眼視差を考慮した左眼位置座標と右目位置座標の関係を示す図である。
【図６】ステレオビューアが、パソコン（Windows（登録商標）パソコン）に備わっているＷＥＢブラウザ（ＩＥ）とインストールされたＶＲＭＬプラグイン「Cortona VRML Client」（以下、Cortonaと略記する）を用いてＶＲＭＬコンテンツの立体視化を行うためのプログラムは、＜１＞ＨＴＭＬ言語で記述された２画像生成プログラム、＜２＞ＶＲＭＬ言語で記述された立体視設定プログラム、＜３＞JavaScript(登録商標)言語で記述された画像同期プログラムの３つから構成されるが、その立体視を実現するウォークスルーに限定して、これらのプログラムの連携について説明するための図である。
【図７】コード１を示す図である。
【図８】コード２を示す図である。
【図９】コード３を示す図である。
【図１０】コード４を示す図である。
【図１１】コード５を示す図である。
【図１２】コード６を示す図である。
【図１３】コード７を示す図である。
【図１４】コード８を示す図である。
【図１５】コード９を示す図である。
【図１６】コード１０を示す図である。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明のステレオビューアについて説明する。これを用いることで、例えば、ウェブサイト上のＶＲＭＬ（Virtual Reality Modeling Language ：仮想現実モデリング言語）コンテンツに対して、閲覧者との間で対話によるウォークスルーを行いながら仮想世界を立体視で閲覧することが出来るようになる。このステレオビューアは、通常の非立体のＶＲＭＬコンテンツをそのまま立体コンテンツに変換することを可能とする。閲覧者はこれを用いることにより、ウェブサイトにアップロードされたＶＲＭＬコンテンツを、ＷＥＢブラウザのもとでウォークスルーしながら立体視で閲覧することが出来るのである。
【実施例１】
【００２０】
図１のルート１に、ウェブサイトのＶＲＭＬコンテンツを閲覧する従来の方法（非立体的な閲覧方法）を示す。通常、ＶＲＭＬコンテンツはホームページの一部としてウェブページに埋め込まれ、ウェブサイトにアップロードされる。閲覧者は、ＶＲＭＬコンテンツを描画するソフトウェア（以降、ＶＲＭＬプラグインと言う）をＷＥＢブラウザのプラグンとして、あらかじめクライアントパソコンにインストールしておく。ルート１では、閲覧者がＷＥＢブラウザからウェブページをアクセスすると、そこに埋め込まれたＶＲＭＬコンテンツのソースコードをＶＲＭＬプラグインが解析し、その仮想世界を画面に描画する、というものである。
【００２１】
これに対して、図１のルート２は、本発明のステレオビューアを用いる方法を示す。この方法は、通常の２次元（２Ｄ）ディスプレイ装置に代えて立体（３Ｄ）ディスプレイ装置を用い、ＶＲＭＬコンテンツを立体視化表示するステレオビューアをルート１に追加したものである。ステレオビューアはソフトウェアで実現することも可能で、例えば、ウェブサイトで稼動するプログラムとして、ＨＴＭＬ（HyperText Markup Language）、ＶＲＭＬ、JavaScript(登録商標)の３つの言語で記述することができる。
【００２２】
ルート２についてより詳しく説明すると、閲覧者がＷＥＢブラウザを用いて、ステレオビューアの構成要素の１つであるＨＴＭＬ言語によるプログラム（ウェブページ）をアクセスすると、ステレオビューアからリンクされたＶＲＭＬコンテンツがウェブサイトからダウンロードされる。そして、ステレオビューアが立体視環境を準備し、そのもとでＶＲＭＬプラグインが立体視可能な画像を立体ディスプレイ装置に描く。
【００２３】
以下に、このステレオビューアが、ウェブサイトのＶＲＭＬコンテンツから立体視可能な仮想世界を、如何にして生成するのかを示す。
【００２４】
立体コンテンツを制作して閲覧するまでを、立体アニメ動画を例に取ると、以下のようなプロセスに分けられる（図２）。なお以降、プロセス＜１＞、＜２＞等は、ここで挙げたプロセスを指しているものとする。
プロセス＜１＞：立体視の原理に基づく適切な立体フォーマットを有する立体表示装置を選定する。
プロセス＜２＞：左眼用と右眼用の１対のアニメ画像の枠組みを表示装置に適合する形式で用意する。
プロセス＜３＞：左右２枚のアニメ画像を、視差を付けて生成する。
プロセス＜４＞：時間順に流れる多数対の左右のアニメ画像に対して、左右同期させて描画する機構を設ける。
プロセス＜５＞：アニメ画像から構成される動画映像を立体表示装置に掛けて閲覧する。
【００２５】
ウェブサイトのVRMLコンテンツを立体視する原理的なプロセスは、通常のテレビ番組の立体視を行う上記のプロセスと同じである。
【００２６】
テレビの分野では、立体アニメ動画と同様なプロセスで、通常のテレビ番組（非立体番組）を立体視する技術が開発されている。そのプロセスは次の通りである。
プロセス＜１＞は、立体テレビの立体フォーマットとして、サイドバイド形式が採用される。
プロセス＜２＞は、テレビ画面は左右に２分割され、左眼用を左画面、右眼用を右画面に対応させ、その画面を、
プロセス＜３＞で生成された２画像を表示する領域とする。そしてプロセス＜３＞で、その２つの画像から左右の視差の付いた１対の画像が作られるが、このための視差アルゴリズムを考案するのが難しい。現在のところ、映像の水平方向の動きから奥行きを推定するアルゴリズム（ＭＴＤ法）（非特許文献１）、および背景や色を奥行きの手掛かりとするアルゴリズムなどが開発されている。いずれにしてもプロセス＜３＞では、奥行き判定を半導体演算素子で高速処理している。また、
プロセス＜４＞の左右の同期と描画は、電子的な高速な処理の流れの過程でプロセス＜４＞と同時に実現している。
プロセス＜５＞で、視聴者は通常のテレビ番組を立体テレビで受信する。これにより番組を立体視で閲覧できる。
【００２７】
まず、立体ディスプレイ装置の立体フォーマットを定めることにする。ステレオビューアが表示対象とする立体ディスプレイ装置のフォーマットは、「サイドバイサイド形式」を採用する（プロセス＜１＞）。この形式は、古くから立体写真用のフォーマットとして用いられていたが、２１世紀に入ると液晶立体ディスプレイ装置や立体テレビ放送の受像機に応用され、現在では、いくつもある立体フォーマットの中で代表的なものとなっている（他にトップアンドボトム形式、フィールドシーケンシャル形式、フレームシーケンシャル形式などがある）。立体フォーマットが立体ディスプレイ装置とＶＲＭＬコンテンツの間で一致しないと、立体表示は不可能である。
【００２８】
サイドバイサイド形式の立体ディスプレイ装置を用いた立体視化の流れを、図２の内容に沿って説明する。
（１）まず、ディスプレイ装置の１画面は左右の２画面に分割する。
（２）次に、左画面には左眼用画像、右画面には右眼用画像の枠組みを用意する（プロセス＜２＞）。
（３）この時、２つの画像は横方向が２分の１に圧縮し、左右の両画像の間で両眼視差と輻輳角を付ける。
（４）ウォークスルーを行なう度に、左右の画像の間で同期を取りながら描画する（プロセス＜４＞）。
（５）閲覧時にはハードウェア機能（またはソフトウェア機能）を用いて、左右の画像をともに横方向を２倍に拡大し、両画像を重ね合わせる。閲覧者はこのディスプレイ画面を立体視する（プロセス＜５＞）。
【００２９】
ステレオビューアが描画を任せるＶＲＭＬプラグイン側では、左右の２つの描画エンジンが稼動する。閲覧者が仮想世界をウォークスルーする場合、分割された左右どちらかの画面からマウスドラッグにより、ウォークスルー情報を与えることになるが、本ビューアでは右画面からその情報を与え、その情報は右画面の描画エンジンから左画面の描画エンジンに瞬時に伝えられる必要がある。このような伝達を可能とする手段がＶＲＭＬプラグイン側に用意されていれば、左右の描画エンジンは同期の取れた左右の画像を描くことが出来る。これがステレオビューアにおける同期（プロセス＜４＞）である。
【００３０】
同期を取るには、マウス操作によるウォークスルーだけではなく、他にも色々な指示情報が考えられるが、このような同期機構をステレオビューアに付加することにより、立体視のもとで閲覧者は、仮想世界をウォークスルーすることが可能になるのである（図３）。上記のような同期を可能とする手段を提供するＶＲＭＬプラグインとしては、パラレルグラフィックス社のCortonaがあるので、これを用いる例を以下に示す。
【００３１】
ウェブサイトからダウンロードされたＶＲＭＬコンテンツが、立体ディスプレイ装置に立体画像として表示されるまでの流れを図４に示す。この図４を用いて、ステレオビューアの全体像を説明する。図４は、次の３つの部分に分けられている。［Ｉ］の部分は、立体視化の対象となるもの（ＶＲＭＬコンテンツ）であり、［II］の部分がステレオビューアであり、［III］の部分が、閲覧に用いる立体ディスプレイ装置とＷＥＢブラウザ（ＩＥ）と実際の描画を担当するＶＲＭＬプラグイン（Cortona）である。より具体的には、ウェブサイト５からインターネットを介して入力部１がＶＲＭＬコンテンツを取得する。データ保持部２Ｌ、２Ｒにそれぞれ保持された左目、右目の位置と視線方向データを、同期部３を介して同期をとることで、ウォークスルーにおいてずれが無いようにする。これらのコンテンツやデータをもとに画像生成部４Ｌ、４Ｒが、それぞれ左目、右目用画像を生成する。生成された画像は、描画エンジン６Ｌ、６Ｒを介して、立体ディスプレイ装置７の左、右画面７Ｌ、７Ｒに描画される。
【００３２】
また、このステレオビューアは、次の３つの要素プログラムから構成される。
（１）  ２画像生成プログラム（ＨＴＭＬ言語で記述：プロセス＜２＞を担当）
（２）  立体視設定プログラム（ＶＲＭＬ言語で記述：プロセス＜３＞を担当）
（３）  画像同期プログラム（JavaScript(登録商標)言語で記述：プロセス＜４＞を担当）
この要素プログラムの概要は、次の通りである。
（１′）２画像生成プログラムは、プロセス＜２＞を実現する。これはＨＴＭＬ言語で記述されるウェブページであり、左右の２画像の枠組みを立体ディスプレイ装置に生成する働きをする（ＨＴＭＬ言語のTable機能を利用）。
（２′）このウェブページには、プロセス＜３＞を実現する立体視設定プログラムが埋め込まれ（ＨＴＭＬ言語のEmbed機能を利用）、左右両眼用の画像に視差を与える。このプログラムはＶＲＭＬ言語で記述され、［III］の部分のウェブサイトにアップロードされているＶＲＭＬコンテンツにＵＲＬ（Uniform Resource Locator：統一資源位置指定子）を介して連結する（ＶＲＭＬ言語のInline機能を利用）。
（３′）そして２つの立体視設定プログラムの間には、画像同期プログラムが介在する。JavaScript(登録商標)言語で記述されたこのプログラムは、プロセス＜４＞を実現し、左右の画像の同期を保つ働きをする。この画像同期プログラムは、CortonaのVRML Automation機能に立体視に関するウォークスルーなどの情報を伝える。
そして最終段階で、立体視情報を受け取ったCortonaの左右の描画エンジンは、視差の伴った左右画像を描画するのである。なお、ステレオビューアはウェブ関連の言語で記述されるため、［Ｉ］の部分のウェブサイトにアップロードすることが可能となる。
【００３３】
次に、ＶＲＭＬコンテンツの画像を２つ用意する方法を述べる。ＶＲＭＬプラグイン（Cortona）は、１つのＶＲＭＬコンテンツに１つの描画エンジンが対応する仕様になっている。そのため、１つのウェブページに同一内容の２つのＶＲＭＬコンテンツを埋め込むと、ＶＲＭＬプラグインの描画エンジンが２つ同時に起動して２枚の画像を生成する。この特性を利用してディスプレイ画面を左右に２分割し、そこに２つの画像を左右に並置して描画することにする。これにより、立体フォーマットがサイドバイサイド形式となる。
【００３４】
画像の実際の埋め込みは、図７のコード１のようにＨＴＭＬ言語のTableタグを用いて行う（9）（紙面の都合で必要最小限の内容しか記していない）。Tableタグの中のTdタグ（Objectタグでもよい）を用いて２画面を設定する。その中にEmbedタグを用いてＶＲＭＬコンテンツに連結する立体視設定プログラム（ＶＲＭＬ言語で記述されたもの）を埋め込む。その所在の設定はsrcアトリビュートで行う。Tableタグの全体は、ウェブページのBodyタグ部分に記載する。
【００３５】
Embedタグのscrアトリビュートに設定された２つのVRMLプログラム（プログラム名はstereoL.wrlとstereoR.wrl）は、ＶＲＭＬプラグインの２個の描画エンジンによって左右の分割画面に描画する。ただし、厳密に言えば、２つのＶＲＭＬプログラムは、ウェブサイト上のＶＲＭＬコンテンツにリンクを張っているだけであり、そのリンク先のＶＲＭＬコンテンツの仮想世界が描画される。２つのＶＲＭＬプログラムは前述したように立体視設定プログラムであり、その役割は、リンク先のＶＲＭＬコンテンツに立体視情報を与えることである。なお、当然のことであるが、左右画像の間に視差が付かなければ、その画像の間では立体視感は生じない。
【００３６】
２画像生成プログラム（プログラム名はstereo.html）のコードの全体像は、図８のコード２のようになる（必要最小限の内容のみ記載）。このプログラムは、ウェブページを構成し、ステレオビューアの中で最初に起動されるプログラムである。その起動はＷＥＢブラウザ（ＩＥ）によって行われる。
【００３７】
ＷＥＢブラウザは、このウェブページをアクセスすると、画面を横に２分割して立体視可能な２画像を左右に作り出す。なお、Scriptタグのsrcアトリビュートに示されたJavaScript(登録商標)プログラム（プログラム名はStereoAPI.ja）は、左右の画像の同期を取るプログラム（第５章で述べた画像同期プログラム）である。このプログラムは、ウェブページの実行が開始された時点で、Bodyタグのonloadアトリビュートによって画像同期プログラムの中のinitメソッドが呼び出されると、これによってローディングされる。
【００３８】
次に、左右画像の間に設ける必要のある視差の設定について説明する。
ＶＲＭＬプラグインがコントロールする１つの仮想世界には、ウォークスルーする透明な１つ（１人）のアバターが存在し、そのアバターの眼（１つの眼しか持たない）を通して、閲覧者は仮想世界を眺める。そこで、左右２つの仮想世界に存在する２つのアバターのそれぞれの眼を、立体視を担う左眼と右眼に対応させ、それに両眼視差と輻輳角を与える。
【００３９】
アバターの画像についても、両眼視差とは、左眼と右眼との間に距離（人間の両眼の距離は６．５ｃｍ程度）があり、この差によって描かれる左画像と右画像の違いを両眼視差という。この視差により立体感が生み出される。また輻輳角とは、両眼の視線の成す角度をいう。両眼の視線を手前から遠方に移すに従って、輻輳角は正の値から零に変化する。この角度の調整によって立体像全体の遠近感を定めることが出来る。輻輳角が零（つまり、視線は平行で交わらない場合であり、交差点はアバターから無限遠にある）であれば、立体像全体は画面から飛び出して感じられるが、輻輳角が増す（つまり、視線は交わり、交差点は無限遠からアバターの手前に移る）に従って、同じように立体視する閲覧者にとっては、立体像全体は画面の奥に引っ込むように感じられる。
【００４０】
アバターにとっての輻輳角は、人間における輻輳角とは異なり、負の値を与えることが出来る。この場合には、視線の交差点は、アバターの後方に存在することになり、このときは、立体視する閲覧者にとっては、輻輳角が零から負の方向で小さくなるに従って、立体像全体は、輻輳角が零に比べて、画面からより手前に飛び出すように感じられる。
【００４１】
２画像の視差は、アバターの左眼と右眼の両眼視差の値で決まる。アバターの眼はＶＲＭＬ言語ではViewpointノードに対応しているので、立体視用の眼をViewpointノードを用いて作ることにする。Viewpointノードのpositionフィールドが眼の位置、orientationフィールドが視線方向を担うことになる。ＶＲＭＬ言語においては、Transformノードと呼ばれる座標変換ノードが用意されている。このノードを用いて座標の平行移動、回転、縮小拡大を行うが、このノードはViewpointノードとも併用することが出来る。以下にＶＲＭＬ言語を用いて、アバターの左眼の視点を定める方法を、図９のコード３を参照して以下に述べる（紙面の都合上、必要最小限の内容のみ記述する）。
【００４２】
この例は、ワールド座標系内で、アバターの左眼が座標点（ｘ，ｙ，ｚ）にあり、視線方向は水平面上でｙ軸を中心にθ回転している場合（δ＝±１、０≦θ≦２π）の例である。ｘ値とｚ値は両眼視差と右眼の座標点から算出される値であり、αは輻輳角で、それは視線がαラジアン（−ａ1≦α≦ａ2、ここで、ａ1とａ2はともに正値であり、実用上は約５度以下の値）だけｙ軸を中心に回転することを示す。仮想空間をウォークスルーする場合には、positionフィールドの値を構成するｘ、ｙ、ｚ値および、orientationフィールドの値を構成するδ値とθ値は、ともに右眼のそれらと同期を取ってリアルタイムに変化する。
【００４３】
ステレオビューアが表示対象とするサイドバイサイド形式の立体ディスプレイ装置は上記のように、立体視の閲覧の際に、ハードウェア機能（またはソフトウェア機能）によって、左右の両画像が横に２倍に伸ばされて画面一杯に広がり、２重に重なり合う。そこで、両画像を描画生成する段階で、その画像の縦対横の比率を２対１の縦長にする必要があるが、これは立体メガネの視野を縦対横の比率について１対２の横長にするのと同じである。視野の縦対横の比率を変更するのは、上記の図９のコード３全体に図１０のコード４に示す座標変換を施すことによって行なう。図１０のコード４の２行目のχについては、χ＝０．５とする。
【００４４】
立体視設定プログラムは、左眼用と右眼用の２つ（プログラム名はstereoL.wrlとstereoR.wrl）があり、そのコードの全体像は、図１１のコード５、図１２のコード６のようになる（紙面の都合で必要最小限の内容しか記していない）。コード５におけるχについては、χ＝０．５とする。これら２つのプログラムが、図１３のコード７の画像同期プログラムと連携して左右の画像に視差を与えるが、この点については、後段で説明する。
【００４５】
立体視設定プログラムの働きは、次のように３つある。（１）右眼用の立体視設定プログラムに立体視情報とウォークスルー実行に必要なアバター情報を設定する。これらの情報は、左右画像間の同期プログラムによって読み取られ、そのプログラムで利用される。（２）上記の様に、アバターに立体メガネを装着させる。（３）描画対象のＶＲＭＬコンテンツのＵＲＬを設定する。実際に仮想世界として描画されるコンテンツはこのＵＲＬを持つＶＲＭＬコンテンツである。
【００４６】
実際のウォークスルーにおいては、右眼の視点位置のデータは、ＶＲＭＬプラグインによって右眼用の立体視設定プログラムのProximitySensorノードにデータとして反映される。そして、そのデータをリアルタイムに画像同期プログラムが読み取り、そのデータに両眼視差を加えた値が左眼の視点位置として、左眼のViewpointノードに伝達される。
【００４７】
ここで、左右画像の間の同期は、以下のように行う。
閲覧者がアバターの動きをコントロールして仮想世界を自由にウォークスルーできるようにするには、上記の一対のアバターについて、リアルタイムで連動する必要がある。このため、２画像を描画するＶＲＭＬプラグインの２つの描画エンジンを以下のように同期させる。
【００４８】
ＶＲＭＬプラグインの左右の対話機構は、それぞれ単独での操作が可能であるが、左眼用の対話機構を停止し、右眼用の対話機構だけでアバターを操作し、その右眼用のアバターの視点情報を左眼用のアバターの視差を加えた視点情報として伝えることが出来れば、左右のアバターの動きを一体化することが可能となる。そのもとで、左右の描画エンジンが左右の画像を同時に描画するのである。
【００４９】
動作している左右の描画エンジンの間で情報を交換する仕組みは、ＶＲＭＬ言語では用意されていない。しかし、ＶＲＭＬプラグインのCortonaを提供するパラレルグラフィックス社は、「VRML Automation」と同社が呼んでいるこの仕組みをサポートしている。そこで、非特許文献２に沿う以下のようなVRML Automationを用いて、画像同期プログラムを制作した。
【００５０】
VRML Automationは、Document Object Model（DOM）と同じような概念で設計され、JavaScript(登録商標)言語のもとで使用される。その構文と使い方はＤＯＭに似ている。
【００５１】
最初に、JavaScript(登録商標)言語で記述された画像同期プログラム（プログラム名はStereoAPI.js）のコードの全体像を、図１３のコード７（非特許文献２に記載のsample８の枠組みを利用）に示す（但し、ウォークススーに関する必要最小限の内容のみ記す）。ただし、コード７におけるχについては、χ＝０．５とする。
【００５２】
このプログラムは、ＷＥＢブラウザがコード２の２画像生成プログラム（stereo.html）をアクセスすると、その時点でローディングされ、最初にinitメソッドが実行される。このメソッドは種々の初期設定を行い（立体度、輻輳角、ヘッドライト、ウォークスルー速度などの初期設定を行うが、そのコードの記載は省略する）、その終了の後、walkThroughメソッドを呼び出してそれを駆動する。この駆動は図１４のコード８のJavaScript(登録商標)言語のsetIntervalメソッドによって行われる。
【００５３】
ここで、walkthroughメソッドの呼び出しは、３０ミリ秒間に１回、閲覧者による仮想世界のウォークスルー終了まで繰り返し行われる。walkthroughメソッド内部では、右眼（そのノードIDはViewR）の視点の位置情報はProximitySensorノード（そのノードＩＤはＰＳ）から図１５のコード９のVRML Automation命令によって取得され、変数(xR,yR,zR)にセットされる。そして、この右眼の視点の位置情報が図１６のコード１０のVRML Automation命令 によって、両眼視差による補正が加えられた左眼（そのノードＩＤはViewL）の視点の位置情報として、左眼のViewpointノード（そのノードＩＤはＶＰ）に伝えられる。θは他の情報から求められる視線方向に関する換算角度であり、コード１０におけるχについては、χ＝０．５とする。この伝達は３０ミリ秒に１回繰り返され、それに合わせてCortonaの左右の描画エンジンが駆動する。これにより、左右の画像の描画はリアルタイムに同期を取ることが出来るのである。同様な方法によって輻輳角やヘッドライトの向きの同期も取ることができる。
【００５４】
上記の説明では、両眼視差の設定について注釈を付記しないで記述したが、以下にそれについての説明を行う。ワールド座標におけるアバターの右眼の視点位置を座標（ｘr、ｙr、ｚr）とし、視線の向きが水平面に沿っている場合、両眼視差（距離）をdとし、水平面内における視線角度をワールド座標系の原点を中心としてθとすると、図５から、両眼視差を考慮した左眼の位置座標（ｘl、ｙl、ｚl）は、ｚ軸が下向き正なので次の様に表すことができる。
【００５５】
【数２】
2011070432.tif 000004
【００５６】
ここで、ｙ座標にχ＝０．５を掛けているのは、立体メガネの視野を横方向に２倍にして、ＶＲＭＬコンテンツの立体フォーマットをサイドバイサイド形式とするためである。
【００５７】
このようにステレオビューアにおける視差の設定は非常に簡単である。しかし、注意が必要である。それは「アバターが装着する立体メガネは、アバターがワールド座標系内で水平面に沿って眺める場合にのみ有効に作用する」ということである。
【００５８】
ウェブサイトのＶＲＭＬコンテンツは景観をシミュレートするものが多く、ウォークスルーは地面歩行や水平飛行が主となり、視線方向を水平面上に沿ように限定しても、実用上それほど問題はない。それゆえ、アバターが装着する立体メガネは、視線方向を水平面方向だけに限定した。
【００５９】
しかし、アバターが仮想世界を地面に対して非平行な視線方向から眺める場合（見上げる、あるいは見おろす場合）にも立体視を行うことが出来るようことについて次に説明する。
【００６０】
まず、一般のＶＲＭＬプラグインにおけるウォークスルーは、アバター以外の仮想世界を構成する物体をワールド座標系に固定し、アバターだけがワールド座標系の空間を移動することによって実現される。以降これを、「視点水平移動によるウォークスルー方式」と呼ぶ。さらに、空間における移動や回転は相対的なものであり、アバターをワールド座標系に固定して、それ以外の仮想世界を構成する物体をワールド座標系の空間で移動や回転させても、閲覧者から眺めると、正常なウォークスルーを行っているように見える。
【００６１】
そこで、本実施例では、任意の視線方向から仮想世界の閲覧を可能にするため、アバター以外の仮想世界自体を直接、ワールド座標系のもとで回転させた後、アバターの立体メガネによってワールド座標系の水平面に沿った方向から眺めるという「仮想世界回転によるウォークスルー方式」を用いる。これによって、閲覧者は、仮想世界を地面に対して水平でない視線方向から眺めることが出来るようになる。
【００６２】
仮想世界の回転は、ステレオビューアの操作卓に設けたボタンを通じて行う。ステレオビューアの内部では、ＶＲＭＬ言語に用意されているCylinderSensorノードとSphereSensorノードによって回転が行われ、その回転情報がVRMLプラグインであるCortonaの描画エンジンに伝えられ、描画が行われる。これと同時に、立体視への対応は、上記の立体メガネを用いて行なう。
【００６３】
ウォークスルーにおける視線方向を、「水平方向」と「それ以外の方向」の２つに分離したのは、後者の処理において必要な多数の行列演算式の導出とその記述を避け、それをCortona以降のグラフィックドライバーにまかせるためである。この方策により、プログラム作成者の負担は軽減され、また、数値演算負荷を抑制することができる。
【００６４】
ステレオビューアは、パソコン（Windows（登録商標）パソコン）に備わっているＷＥＢブラウザ（例えば、インターネットエクスプローラー：ＩＥ）とインストールされたＶＲＭＬプラグイン（Cortona）を用いてＶＲＭＬコンテンツの立体視化を行う。そのステレオビューアのプログラムは、＜１＞ＨＴＭＬ言語で記述された２画像生成プログラム、＜２＞ＶＲＭＬ言語で記述された立体視設定プログラム、＜３＞JavaScript(登録商標)言語で記述された画像同期プログラムの３つから構成される。図６に、立体視を実現するウォークスルーに限定して、これらのプログラムの連携について、全体を関連付けて説明する。
【００６５】
閲覧者がＶＲＭＬコンテンツを立体視で眺める場合、ウェブページとしての２画像生成プログラムをＷＥＢブラウザ（ＩＥ）を用いてアクセスする。この２画像生成プログラムには、閲覧対象のＶＲＭＬコンテンツのＵＲＬを登録している立体視設定プログラムが埋め込まれている。ＩＥはウェブページに記載された情報に従い、ＶＲＭＬコンテンツの２画像を用意し、ＶＲＭＬプラグイン（Cortona）を起動する。そして、Cortonaは２つの左右画像用の立体視設定プログラムを読み込み、そこに登録されたＵＲＬのリンク先で閲覧対象であるＶＲＭＬコンテンツの初期画像を左右の２画面に表示する（図６の太い破線の流れ）。これに合わせて、画像同期プログラムのinitメソッドが起動され、立体視の準備設定が行なわれる（図６の太い実線の流れ）。そして、初期画面は立体視設定プログラムの働きによって、立体視可能状態となる（図６の太い破線の流れ）。その後、画像同期プログラムのwalkthroughメソッドが３０ミリ秒単位で繰り返し呼び出される。
【００６６】
閲覧者がウォークスルーのためにマウスを用いて、右画面（立体視ディスプレイ装置が立体視可能な状態では、左右画面が重なって表示されるが、その時は右画面を構成する部分）をドラッグすると、右画像のアバターの視点情報が右画像用の立体視設定プログラムに伝わる（図６の太い実線の流れ）。それによって右画面のCortona描画エンジンが右画像を更新描画し、ウォークスルーの結果は右画面に即座に反映する（図６の太い破線の右方向の流れ）。
【００６７】
画像同期プログラムのwalkthroughメソッドは、右画像のアバターの視点の動きをリアルタイムで監視している。ウォークスルーが行われると、右画像のアバターの視点情報が、VRML Automationの助けを借りて右画像用の立体視設定プログラムから取得され、その情報と両眼視差に基づいて、左画像のアバターの視点位置が計算される。そして、VRML Automationの助けを借りて左画像用の立体視設定プログラムに視点情報が伝えられる（図６の太い実線の流れ）。その視点を左画像のアバターの視点情報として、左画面のCortona描画エンジンが左画像を更新描画する（図６の太い破線の左方向の流れ）。walkthroughメソッドはこのサイクルを３０ミリ秒毎に繰り返し、左右の画像は立体視状態のままで同期するのである。
【００６８】
上記の右画像と左画像とを入れ替えた構成にしても上記と同様な走査で同様な立体画像が得られることは明らかである。
【産業上の利用可能性】
【００６９】
上記のステレオビューアを利用に供するには、運用の問題を解決する必要がある。まず、第一は、閲覧対象のＶＲＭＬコンテンツのＵＲＬを得ることである。第二は、仮想世界の状況を知ることである。仮想世界は一般に、すべてが同じ幾何学的な縮尺で制作されるわけではない。ある仮想世界は、ウォークスルーしないと全体を把握できないような巨大な空間を持つ景観かもしれないし、また別のある仮想世界は、一目で分かるような単なる仮想物体かもしれない。前者は景観シミュレーションの仮想世界、後者は自動車模型の仮想世界に当たると言える。
【００７０】
このような状況が異なる種々の仮想世界に対応するステレオビューアには、あらかじめ仮想世界の幾何学的な情報などを与えておく必要がある。例えば、＜１＞仮想世界のワールド座標系に対する中心位置、＜２＞アバターがウォークスルーを行う速度、＜３＞アバターが乗り越える段差の高さ、＜４＞閲覧開始時点でのアバターの位置、＜６＞立体度、＜７＞輻輳角、＜８＞ヘッドライト強度などの情報である。ステレオビューアは、このような情報をパラメータとして事前に登録するテーブルを内部に確保している。ステレオビューアを用いる場合には、ＶＲＭＬコンテンツの各仮想世界ごとに、このテーブルを用意する必要がある。
【００７１】
また、ステレオビューアを用いて仮想世界を立体視で常時楽しみたい閲覧者にとっては、テーブルの集合体が台帳（登録台帳と呼ぶ）として構築され、それは事前に用意されていれば便利であることは容易に理解できる。この登録台帳は、新規の仮想世界が生成されたら、その情報（パラメータ）が追加されるというものである。この台帳はインターネット上の検索エンジンサイトの検索台帳と同じ性格のものとなる。一般の閲覧者がＷＥＢブラウザのもとでステレオビューアを起動すると、登録台帳は閲覧者に対して仮想世界のスムーズなウォークスルーを行わせ、最適な立体感を感知させるである。
【００７２】
本発明は、下記の様なそれぞれの画像変換部を備えることで、アナグリフ方式、偏光フィルタ方式、液晶シャッター方式、または視差障壁方式やレンチキュラーレンズ方式などの３次元画像表示装置に適用することができる。
【００７３】
（１）まず、上記の様に生成した左目用画像と右目用画像との、色変換を行う画像変換部を備えることで、アナグリフ方式の３次元画像表示用に用いることができる。（２）また、液晶シャッター方式の３次元画像表示装置に適用するためには、上記の様に生成した左目用画像と右目用画像とを交互に、直交する偏光面を変えて出力する画像変換部を備えるようにすればよい。（３）また、偏光フィルタ方式の３次元画像表示装置では、互いに直交する偏光が透過する領域が横縞（または縦縞）に配列されており、上記左目用画像と右目用画像をこの縞状領域の左目用領域と右目用領域に合わせて配列する画像変換部を通して出力する。（４）また、視差障壁方式またはレンチキュラーレンズ方式の場合は、視差障壁または円筒状レンズが縦縞に配置されており、この１周期中に縦縞状の左目用画像と右目用画像を交互に並列して配置する画像変換部を通して出力する。
【００７４】
上記においては、ウォークスルーを中心に説明したが、このウォークスルーは、ステレオフォトビューアやステレオビデオビューアに使用できることは当然のことである。これらのビューアでは、ステレオ画像の任意の場所を自由に滑らかに拡大縮小することは出来ない場合が多いが、このウォークスルーを適用することにより、その場所を自由にかつ滑らかに拡大縮小を行うことが可能になる。この際、縦横サイズの調整を、コード４の２行目、コード５の３行目におけるχを０．５とするとき、コード１０の３行目のχとして０．５から僅かにずらした値を用いることで行うことができる。本発明は、ＶＲＭＬコンテンツだけではなく、写真やビデオ映像の立体映像表示ソフト（ステレオビューア）の制作にも、容易に適用できることは明らかである。
【符号の説明】
【００７５】
１  入力部
２  データ保持部
３  同期部
４Ｌ、４Ｒ  画像生成部
５  ウェブサイト
６  ブラウザ
６Ｌ、６Ｒ  描画エンジン
７  立体ディスプレイ装置
７Ｌ、７Ｒ  画面
【図１】
2011070432.tif 000006
【図２】
2011070432.tif 000007
【図３】
2011070432.tif 000008
【図４】
2011070432.tif 000009
【図５】
2011070432.tif 000010
【図６】
2011070432.tif 000011
【図７】
2011070432.tif 000012
【図８】
2011070432.tif 000013
【図９】
2011070432.tif 000014
【図１０】
2011070432.tif 000015
【図１１】
2011070432.tif 000016
【図１２】
2011070432.tif 000017
【図１３】
2011070432.tif 000018
【図１４】
2011070432.tif 000019
【図１５】
2011070432.tif 000020
【図１６】
2011070432.tif 000021