(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明の全方位画像編集プログラム及び全方位画像編集装置に係る好適な実施形態について図面を参照しながら説明する。なお、本発明の全方位画像編集プログラム及び全方位画像編集装置は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において、適宜変更可能である。
【0013】
本発明の全方位画像編集プログラム及び装置では、仮想空間内において、作業者の全方位を覆う背景に見立てた画像である全方位画像を、座標変換により2次元のスクリーン画像に投影し、表示装置に表示する。全方位画像の編集を目的とする作業者は、まず、ポインティング装置により、仮想空間内の視線方向、ならびに視野角の変更等を行い、スクリーン画像内の全方位画像の表示を更新させ、そのスクリーン画像を手がかりとし、スクリーン画像と同じ座標系であるドローイング画像に対してポインティング装置により2次元的にドローイング(描き込み)を行う。ドローイング終了後、ドローイング画像に対して座標変換を行い、全方位画像の適切な位置に投影する。作業者は、このように視線変更とドローイングの手順を繰り返すことで、全方位画像を完成させる。以下、詳述する。
【0014】
図1には本発明の一実施形態に係る全方位画像編集装置の構成を示し説明する。
【0015】
この
図1に示されるように、全方位画像編集装置1は、パーソナルコンピュータ10と表示装置20、ポインティング装置30等からなる。
【0016】
パーソナルコンピュータ10は、マルチタスク対応プロセッサ等からなる中央制御部11と、一時記憶装置としてのRAM等からなるメインメモリ12、グラフィックカード等の画像制御部13、入出力制御部14、内蔵不揮発性記憶媒体15、メディア読み書きインターフェイス16を含む。
【0017】
画像制御部13は、ビデオメモリ13aも備えている。ビデオメモリ13aとは、パーソナルコンピュータ10本体のメインメモリ12と同じく、一時的にデータを保存する場所で、グラフィックカードについているメモリはVRAMとも称される。画面に3Dグラフィック画像を表示する場合、その際に必要となるデータ量は大きくなる。画像制御部13で処理を終えたデータはビデオメモリ13aに保存されて随時使われていく。ビデオメモリ13aの容量が多いほど、細かい3Dグラフィック画像でも、スムーズに不良もなく表示する事ができるようになる。
【0018】
表示装置20は、液晶ディスプレイ等に代表される、画像を表示することができる装置である。ポインティング装置30は、マウスやタッチパネル、ペンタブレットに代表される、座標入力及び/又はボタン入力が可能な装置である。
【0019】
プログラムデータ50や方位画素対応付けデータ42、全方位画像入力データ40はメディア読み書きインターフェイス16を介して入力され、全方位画像出力データ41はメディア読み書きインターフェィス16を介して出力される。
【0020】
プログラムデータ50とは、本発明が動作可能なソフトウェアである。後述する全方位画像編集プログラムのデータ等がこれに該当する。
【0021】
方位画像対応付けデータ42とは、方位と画素の位置を相互に対応付けるテーブル又は関数である。ポリゴンモデルを用いる場合は、ポリゴンモデルデータがこれに相当し、3次元形状のオブジェクトとなる。方位画像対応付けデータ42は、プログラムデータ50に付随してもよいし、外部で定義されたデータを読み込んでもよい。
【0022】
全方位画像入力データ40、全方位画像出力データ41は、ソフトウェアが扱う画像群である。例えばポリゴンモデルを用いる場合はテクスチャ画像群がこれに相当する。入力されたテクスチャ画像群等はメインメモリ12に一時記憶される。
【0023】
全方位画像入力データ40及びプログラムデータ50は、不図示の外部記憶媒体から読み込んでもよく、通信ネットワークを介して外部コンピュータから受信し、内蔵不揮発性記憶媒体15に取り込んでもよい。出力データは、不図示の外部記憶媒体へ書き込んでもよく、通信ネットワークを介して外部コンピュータに送信してもよい。
【0024】
ここで、
図2には、ポリゴンモデルを利用して全方位画像の編集を行う場合に使用するメインメモリ12のメモリマップの一例を示し説明する。
【0025】
各画像は、不透明度付きの色情報(a:アルファ,r:赤,g:緑,b:青)を2次元的な配列として持つ。「アルファ」とは、不透明度情報を示している。パソコンでは1つのピクセルの色情報を、24ビット(1色につき8ビット、赤・緑・青の3色で8×3=24ビット)という単位で記録している。8ビットでは、256段階の記録ができる。アルファ付きPNG(32ビットPNG)では色情報の他に、各ピクセルの不透明度も8ビットの256段階で記録できる。アルファ値がゼロで完全な透明、255で完全な不透明であることを意味する。
【0026】
ポリゴン頂点は、3次元空間座標(x:水平,y:垂直,z:奥行き)と2次元テクスチャ座標(u:水平,v:垂直)とを持つ。ポリゴン面は、三角形を表わすため、ポリゴン頂点への参照を3つとテクスチャ画像への参照をレイヤー枚数分だけ持つ。ポリゴンモデルは、3次元形状を表わすため、ポリゴン頂点とポリゴン面とをそれぞれ配列として持つことになる。1つのレイヤーが持つテクスチャ群の構造がどのレイヤーについても同一である場合、テクスチャ画像への参照は、レイヤー内の相対的な参照を1つとしてもよい。
【0027】
スクリーン画像とは、全方位画像を座標変換により2次元座標平面上に投影し、表示装置20により作業者に提示する画像である。
【0028】
ドローイングとは、主にポインティングデバイスを用いて2次元(平面)の画像に対して図形や線等の描き込みを行う作業である。ドローイング用画像(ドローイング画像)とは、作業者が実際にドローイングを行う対象とする2次元(平面)の画像である。ドローイング用画像は、スクリーン画像とは別の記憶域にあり、スクリーン画像と同じ座標系であり、ドローイング開始前は完全に透明な状態とする。ドローイングを施した箇所は不透明度情報及び色情報を更新する。これは、即ち作業者がスクリーン画像に重なっている透明な層にドローイングを行うことに等しい。ドローイングパラメータとは、ドローイングの手法および属性を決定するパラメータである。手法は、フリーハンド、直線、矩形、円、画像の貼り付け、等が挙げられる。属性は、線の場合は幅や色、図形の場合は塗りつぶしの模様、等が考えられる。パラメータの種類が多いほど表現方法が多彩となりうる。尚、本願でいう「ドローイング(drawing)」には、一般的な「ペインティング(painting)」も概念上含まれる。
【0029】
ポリゴンモデルを利用することはあくまでも一例であり、全方位画像の表示や編集における手段を技術的に制限するものではない。全方位に画素が対応付けられていれば、ポリゴンモデルやテクスチャの概念を用いることも必須ではない。例えば、球面ミラーを用いた全方位カメラ等から得られるような全方位画像に対しての編集も可能となる。
【0030】
ここで、全方位を覆う背景の例として、
図3に示されるような正二十面体ポリゴンモデルを用意し、その中心を視点とする場合を考える。視点は移動しないことを前提とする。
【0031】
ポリゴンモデルには2つのテクスチャ画像を持たせ、上層(作業者から見て手前)と下層(作業者から見て奥)のレイヤーとして扱う。本実施形態では、各レイヤーの描画または表示に用いる視線角度として、全レイヤー共通の視線角度を用いることを可能とする。これにより、各レイヤーの視線角度が一致することが重要な用途(たとえば、「線」を目的とするレイヤーと「塗り」を目的とするレイヤーとを用いる用途)としての使用が可能となる。
【0032】
但し、正二十面体ポリゴンモデルを扱うことは、あくまでも一例にすぎない。各ポリゴン面に対応するテクスチャ画像が設定されていれば、どのようなポリゴンモデルも可能である。例えば、正二十面体の代わりに立方体等を扱うこともできる。
【0033】
図4には、正二十面体ポリゴンモデルの全ポリゴン面に対応する上層テクスチャの例を示し説明する。各ポリゴン頂点のテクスチャ座標は、正二十面体の展開図に類似した図形の頂点と見なして設定している。図の実線部分はポリゴン面単位で各頂点のテクスチャ座標の位置関係を示しているに過ぎず、実際のテクスチャにはこのような実線を含む必要はない。上層テクスチャは下層テクスチャに重ねるように表示するため、上層テクスチャは不透明度を用いて下層テクスチャとの合成が可能である。作業開始前の上層テクスチャ画像は完全に透明であることが望ましい。
図4の市松模様は透明であることを示すものであり、実際のテクスチャにはこのような模様を含む必要はない。
【0034】
図5には、正二十面体ポリゴンモデルの全ポリゴン面に対応する下層テクスチャの例を示し説明する。各ポリゴン頂点のテクスチャ座標は、上層テクスチャと同様に設定している。作業者が視線角度を把握し易くする手段の例として、テクスチャ全体に不透明のランダムノイズ模様を適用している。最下層のテクスチャは完全な不透明であることが望ましい。これは完成作品に透明又は半透明の画素が残ることを防ぐためである。但し、上層テクスチャを重ねることで不透明にする場合、或いは完成作品を更に別の映像に重ねることを前提としている場合等においては、この限りではない。
【0035】
以下、
図6のフローチャートを参照して、本実施形態に係る全方位画像編集装置1により全方位画像編集プログラムに従って実行される処理の流れを説明する。ここでは、ポインティング装置30が2ボタンマウスであると仮定し、全方位画像編集プログラムの動作の一例を示し、本発明と直接関係のない動作の記述は省略する。この処理は、中央制御部11が全方位画像編集プログラムに従って実行する。
【0036】
本処理を開始すると、ポインティング装置30から座標及びボタンを入力する(ステップS1)。続いて、視線変更モードであるか否かを判断し(ステップS2)、視線変更モードである場合には(ステップS2をYESに分岐)、入力情報を基に視線角度、視野角を更新する(ステップS3)。
【0037】
即ち、視線変更モードでは、左ボタンを押しながら左右にドラッグすると、視線はy軸を中心とした(ヨー)回転をする。左ボタンを押しながら上下にドラッグすると、視線はx軸を中心とした(ピッチ)回転をする。左ダブルクリックすると、視線のピッチ回転は初期(例えば、水平)状態に戻る。右ボタンを押しながら左右にドラッグすると、視線はz軸を中心とした(ロール)回転をする。右ボタンを押しながら上下にドラッグすると、視野角が増減する。右ダブルクリックすると、視線のロール回転は初期(例えば、水平)状態に戻る。こうして視線が変更されたタイミングで詳細は後述するスクリーン更新処理を行う(ステップS10)。視野角を大幅に広げてドローイングすることで、単に広範囲の描き込みだけなく、遠近感の表現が容易となる。即ち、視野角が180度に限りなく近い場合(たとえば、140度〜179.75度)、ドローイング画像の中心から離れた領域(即ちドローイング画像の端付近)でのドローイングは、例として平地において遠方から水平線にかけての地面の表現(特定の方向に大きくつぶれるような遠近感)が期待できる。
【0038】
そして、スクリーン画像の上に合成方法に基づきドローイング用画像を重畳し、画像出力することにより、全方位画像更新処理が行われる前におおよそのドローイング結果を確認可能とする(ステップS11,S12)。即ち、重畳されたドローイング用画像を手がかりに、視線角度や視野角の調整を可能とする。
【0039】
スクリーン画像は、あらかじめ最後に更新されたスクリーン画像を複製しておくことで復元が可能である。これにより、視線情報や視野角等の変更がない場合、スクリーン画像に対して重畳が行われた後、テクスチャ画像からスクリーン画像への描画処理を再び行うことなく、短時間のうちに重畳が行われていない状態に戻すことを可能とする。これはドローイングモードにおいて高速なスクリーン更新となり、ドローイング用画像のリアルタイムな重畳に適している。
【0040】
視線変更モードではない場合には(ステップS2をNOに分岐)、ドローイングモードであるか否かを判断し(ステップS4)、ドローイングモードである場合には(ステップS4をYESに分岐)、ドローイングパラメータおよび合成方法を選択し(ステップS5)、入力情報を基にドローイング用画像に描画をする(ステップS6)。即ち、ドローイングモードでは、スクリーン画像の領域内で左ボタンを押しながらドラッグすることで、ドラッグした座標に相当するドローイング用画像の画素をドローイングパラメータ(色情報、線の幅等)に基づいて更新する。ドローイングは、入力座標をそのまま反映させるフリーハンド手段の他、直線、矩形、格子、楕円等の複数手段を用意してもよい。スクリーン画像の領域内で右ボタンを押すと、ドローイングパラメータの色情報をドラッグした座標に相当するスクリーン用画像の画素と同じ色情報に変更する。
【0041】
そして、スクリーン画像の上に合成方法に基づきドローイング用画像を重畳し、画像出力することにより、全方位画像更新処理が行われる前におおよそのドローイング結果を確認可能とする(ステップS11,S12)。ドローイング用画像の重畳は、ドローイング時にリアルタイムで行うことで、ドローイング作業効率の向上が期待できる。ドローイングモードと視線変更モードを切り替える方法として、操作画面上に切り替え用のボタン等を用意する方法が挙げられる。
【0042】
ドローイングモードでない場合には(ステップS4をNOに分岐)、ドローイングモード終了か否かを判断する(ステップS7)。ドローイング終了とみなす条件としては、ドラッグ中にマウスの左ボタンが離されたタイミングとしてもよいし、これに限定することなく、例えばドローイング終了処理を実行するボタン等を用意してもよい。ここで、ドローイング終了のタイミングを選択可能とするならば、ドローイング用画像に描画をした後、ドローイング終了前に再び視線変更モードに戻ることも可能である。即ち、先述のようにドローイング用画像を重畳させながら、視線角度、視野角の調整が可能である。
【0043】
ドローイング終了とみなされた場合(ステップS7をYESに分岐)、詳細は後述する全方位画像更新処理を実行し(ステップS8)、ドローイング用画像をクリアする(ステップS9)。ドローイング終了後は、直ちに次のドローイングを可能とするため、自動的にドローイングモードに復帰する事が望ましい。全方位画像更新処理に時間がかかる場合、次のドローイング操作を直ちに受け付けられず、スムーズなドローイング操作を阻害する恐れがある。これを防ぐために、ドローイング画像と同じサイズのバッファ用画像を用い、プロセッサのタスクを割り振り、ドローイング処理と全方位画像更新処理を並列に行ってもよい。
【0044】
続いて、詳細は後述するスクリーン更新処理を実行する(ステップS10)。そして、スクリーン画像の上に合成方法に基づきドローイング用画像を重畳し、画像出力する(ステップS11,S12)。ただし、ドローイング終了におけるドローイング用画像の重畳は、ドローイング処理と全方位画像更新処理を並列に行う場合等を除いた多くの場合で、当該条件下においてドローイング用画像は事前にクリアされ、完全に透明な状態であるので、この状態の画像を重畳する事は、事実上意味を成さない。
【0045】
ハードウェア等による高速な画像処理の手段を用い、全方位画像更新処理が短時間(たとえば、10ミリ秒間以内)で完了できる場合、かつ、ドローイング終了前に再び視線変更モードに戻ることを不要とする場合、ドローイングモードにおいてドローイング用画像に何らかの更新を行った後、直ちにドローイング終了の処理に移行し、再びドローイングモードに戻ることで、リアルタイムで全方位画像の更新かつ表示が可能となる。これにより、ドローイング用画像を重畳しなくとも、ドローイング作業効率の向上が期待できる。
【0046】
以上の操作方法および動作は一例であり、これに限定せず別の操作方法を適用、追加してもよいことは勿論である。
【0047】
次に
図7のフローチャートを参照して、
図6のステップS10で実行されるスクリーン更新処理について詳述する。ここでは、ポリゴンモデルを用いる場合を想定している。
【0048】
本スクリーン更新処理では、先ず視線角度に対応するポリゴン頂点の座標(ビュー座標系)を算出し(ステップS21)、視野角に対応するポリゴン頂点の座標(射影座標系、スクリーン座標系)を算出し(ステップS22)、詳細は後述するが、テクスチャ画像(テクスチャ座標系)からスクリーン画像(スクリーン座標系)への描画処理を行い(ステップS23)、リターンする。
【0049】
テクスチャ画像からスクリーン画像への描画処理は、従来のテクスチャマッピングと同等の手法を用いることができる。尚、ポリゴンモデルを用いない場合においても、視線角度、視野角からスクリーンの各画素に対応する方位を求め、方位画素対応付けデータに基づき座標変換し、全方位画像からスクリーン画像へ描画すればよい。
【0050】
以下、
図8のフローチャートを参照して、
図7のステップS23で実行される、テクスチャ画像(テクスチャ座標系)からスクリーン画像(スクリーン座標系)への描画処理の流れを説明する。ここでは、作業者が実際に観測することのできるスクリーン画像の更新方法を示している。
【0051】
このテクスチャ画像(テクスチャ座標系)からスクリーン画像(スクリーン座標系)への描画処理を開始すると、全てのレイヤーの抽出が完了したか否かを判断し(ステップS31)、全てのレイヤーの抽出が完了していないと判断されると(ステップS31をNOに分岐)、次のレイヤーを抽出し(ステップS32)、レイヤーに対応する全ポリゴン面の抽出が完了したか否かを判断する(ステップS33)。ここで、レイヤーに対応する全ポリゴン面の抽出が完了していないと判断されると(ステップS33をNOに分岐)、次のポリゴン面を抽出し(ステップS34)、スクリーン画像においてポリゴン面に対応する全画素走査が完了したか否かを判断する(ステップS35)。
【0052】
このステップS35において、全画素走査が完了していなければ(ステップS35をNOに分岐)、スクリーン画像の次画素を走査し(ステップS36)、更新するスクリーン画像の画素に対応するテクスチャ画像の画素、およびその近傍の画素から不透明度と色情報とを抽出、ならびに算出し(ステップS37)、不透明度と色情報とを用い、スクリーン画像の画素を更新し(ステップS38)、上記ステップS35に戻る。
【0053】
一方、ステップS35にて、全画素走査が完了していれば(ステップS35をYESに分岐)、上記ステップS33に戻り、上記処理を繰り返す。こうして、レイヤーに対応する全ポリゴン面の抽出が完了し(ステップS33をYESに分岐)、全レイヤーの抽出を完了すると(ステップS31をYESに分岐)、リターンする。
【0054】
なお、画像描画の為の演算は、中央制御部の代わりに専用のハードウェアを用いてもよい。スクリーン画像の描画の際にバイリニア等のフィルタリングを行い、画質の向上を図ってもよい。また、描画処理毎に全レイヤーを描画する代わりに、予め全レイヤーの複製を結合した1つの画像を作成しておき、それをテクスチャとみなしてスクリーン画像へ描画してもよい。この場合、結合画像の作成はドローイング後に行われるテクスチャ画像更新終了時に行うことになる。
【0055】
ここで、
図9には、ポリゴンモデルの中心から任意の視線を用い、下層テクスチャに上層テクスチャを重ねてスクリーン画像に投影した例を示す。但し、上層テクスチャは完全に透明としているため、結果的に下層テクスチャのみが見える状態である。同図では、ポリゴン面単位で頂点のスクリーン座標の位置関係を分かり易くするためにポリゴン面の境界を実線で表しているが、実際には、このような実線を描画する必要はない。
【0056】
次に、
図10のフローチャートを参照して、
図6のステップS8で実行される全方位画像更新処理について、ポリゴンモデルを用いる場合を例に挙げて、説明する。
【0057】
この全方位画像更新処理を開始すると、先ず視線角度に対応するポリゴン頂点の座標(ビュー座標系)を算出し(ステップS41)、次いで視野角に対応するポリゴン頂点の座標(射影座標系、スクリーン座標系)を算出し(ステップS42)、詳細は後述するが、ドローイング用画像(スクリーン座標系)からテクスチャ画像(テクスチャ座標系)への描画処理を行う(ステップS43)。そして、ポリゴン面の端に対応するテクスチャ画像を補完し(ステップS44)、本処理を終了し、リターンする。このように、座標変換における入出力関係が、スクリーン更新処理で用いている投影とは逆になる。
【0058】
描画手段によっては、ポリゴン面のつなぎ目である端部分が描画されなかったり、不自然になったりする場合がある。その画素については、周りの画素から適切な方法で補完を行う等をして自然なつなぎ目にするとよい。
【0059】
また、ポリゴンモデルを用いない場合においても、方位画素対応付けデータに基づき全方位画像の各画素に対して方位を求め、視野角内に含まれる場合、その方位をスクリーン座標に変換し、その座標に対応するドローイング画像の画素及びその周辺画素を求め、ドローイング画像から全方位画像へ描画すればよい。
【0060】
次に
図11のフローチャートを参照して、
図10のステップS43で実行されるドローイング用画像(スクリーン座標系)からテクスチャ画像(テクスチャ座標系)への描画処理の流れを説明する。ここでは、作業者が行ったドローイングの内容を、選択したレイヤーのテクスチャに反映させる方法を示している。
【0061】
レイヤーを選定し(ステップS51)、レイヤーに対応する全ポリゴン面の抽出が完了したか否かを判断し(ステップS52)、抽出を完了していなければ(ステップS52をNOに分岐)、次のポリゴン面を抽出し(ステップS53)、テクスチャ画像においてポリゴン面に対応する全画素走査が完了したか否かを判断する(ステップS54)。
【0062】
このステップS54で全画素走査が完了していないと判断されると(ステップS54をNOに分岐)、テクスチャ画像の次画素走査を行い(ステップS55)、更新するテクスチャ画像の画素に対応するドローイング用画像の画素、およびその近傍の画素から不透明度と色情報とを抽出、ならびに算出し(ステップS56)、不透明度と色情報とを用い、合成方法に基づきテクスチャ画像の画素を更新し(ステップS57)、ステップS54に戻ることになる。
【0063】
一方、上記ステップS54でテクスチャ画像においてポリゴン面に対応する全画素走査を完了していると判断されると(ステップS54をYESに分岐)、上記ステップS52に戻る。こうして、レイヤーに対応する全ポリゴン面の抽出を完了したと判断されると(ステップS52をYESに分岐)、リターンする。
【0064】
なお、ドローイング画像をテクスチャ画像へ合成する方法は、標準的な合成方法のほかに、不透明度を減少方向に向かわせるような(消去)合成方法や、色値を乗算させるような(ハイライト)合成方法等を選択可能としてもよい。画像描画のための演算は、中央制御部の代わりに専用のハードウェアを用いてもよい。テクスチャ画像の描画の際にバイリニア等のフィルタリングを行い、画質の向上を図ってもよい。
【0065】
ここで、
図12には、ドローイングの例を示す。即ち、ドローイング画像に、半透明の円および格子状の破線を描き込んでいる例を示している。ポリゴンモデルを投影させたスクリーン画像の上に、ドローイング画像を標準的な合成方法で重畳している。
【0066】
図13には、ドローイング結果を示す。即ち、同図では、
図11に示したようなドローイング用画像(スクリーン座標系)からテクスチャ画像(テクスチャ座標系)への描画処理により、上層テクスチャ画像を標準的な合成方法で更新した状態を示している。
【0067】
図14には、上層テクスチャ画像を下層テクスチャ画像に結合する様子を示す。レイヤーの独立が不要となった場合、レイヤー同士の結合を可能としてもよい。
図14は上層テクスチャを下層テクスチャに結合した例である。このとき、結合元(この場合は上層)のレイヤーをクリアすることで、新規のレイヤーとして使用可能になる。
【0068】
ここで、
図15には作業者が観測可能なスクリーン画像の推移を示し、作業手順を説明する。視点は立方体ポリゴンモデルの中心、テクスチャは上層および下層の2つで、下層は不透明のランダムノイズ模様を適用、上層テクスチャは完全な透明を適用している。
【0069】
この例では、初期状態から(#1)、上層テクスチャが選択され、「A」がドローイングされ、ドローイング終了され(#2)、視線変更された後(#3)、「B」がドローイングされ、ドローイング終了され(#4)、視線変更された後(#5)、「C」がドローイングされ、ドローイング終了され(#6)、視線変更された後(#7)、下層テクスチャが選択され、斜線がドローイングされ、ドローイング終了されている(#8)。
【0070】
こうして生成されたテクスチャ画像(上層テクスチャを下層テクスチャに結合済み)の様子は
図16に示される。そして、作品例は、
図17に示される。
【0071】
次に、
図18のフローチャートを参照して、本発明の実施形態に係る全方位画像編集装置により作品データとしてファイルに出力する処理の流れを示し説明する。
【0072】
ここでは、例として、作品データは、作品基本情報、ドローイング再現データ、視線移動データ、画像閲覧プログラム、ポリゴン頂点群、ポリゴン面群、およびテクスチャ画像をすべて含むものとし、該作品データは、再び編集装置から読み込み、編集作業を続行することができるものとする。また、閲覧装置が存在する場合、鑑賞者が作品データを閲覧することも可能であるものとする。
【0073】
本処理を開始すると、パック用フォルダを準備し(ステップS61)、作品基本情報をファイルに書き出す(ステップS62)。作品基本情報とは、作品データに含まれているデータの種類や作品の著作名等が含まれた情報である。続いて、ドローイング再現データをファイルに書き出す(ステップS63)。ドローイング再現データとは、作業者のドローイング手順を再現するためのシーケンスデータである。ドローイング時の視線情報、ドローイングパラメータ、ドローイング画像からテクスチャ画像への合成方法、選択レイヤー、ドローイング終了のタイミング等のシーケンスがこれに相当する。
【0074】
次いで、視線移動再現データをファイルに書き出す(ステップS64)。視線移動再現データは、見回しを自動的に行うためのシーケンスデータであり、作品を効果的に映像化するためのカメラワークとなる。続いて、画像閲覧プログラムをファイルに書き出す(ステップS65)。画像閲覧プログラムとは、外部の閲覧用プログラムを必要とせず、スタンドアロンで閲覧が可能なプログラムである。
【0075】
続いて、ポリゴン頂点群をファイルに書き出し(ステップS66)、ポリゴン面群をファイルに書き出し(ステップS67)、全てのレイヤーの書き出しが完了したか否かを判断する(ステップS68)。ここで、全てのレイヤーの書き出しが完了していないと判断された場合には(ステップS68をNOに分岐)、次のレイヤーを抽出し(ステップS69)、レイヤーに対応する全テクスチャ画像の書き出しが完了したか否かを判断する(ステップS70)。そして、当該書き出しが完了していないと判断された場合には(ステップS70をNOに分岐)、次のテクスチャ画像を抽出し(ステップS71)、テクスチャ画像をファイルに書き出し(ステップS72)、上記ステップS70に戻る。
【0076】
そして、レイヤーに対応する全テクスチャ画像の書き出しが完了したと判断されると(ステップS70をYESに分岐)、上記ステップS68に戻る。そして、全てのレイヤーの書き出しが完了したと判断されると(ステップS68をYESに分岐)、全ファイルをパックし(ステップS73)、パックしたデータのファイルを作成し(ステップS74)、リターンする。「パック」とは、作品データに含まれるデータを圧縮し、作品データを容易に配布可能なファイルに変換する処理である。たとえば、ZIPファイルフォーマット等に変換する処理がこれに相当する。
【0077】
尚、作品データとして実際に含めるデータの種類は、必要に応じて作業者が取捨選択できるようにしてもよい。例えば、鑑賞者が閲覧装置によって単純に作品データを見回すのみと仮定する。この場合には、ドローイング再現データは冗長であり、必ずしも必要ではない。また、テクスチャ画像はレイヤーの結合を行うことで、テクスチャ画像の数が減少し、閲覧装置側でレイヤーの結合を行う負担をなくすことも可能となる。さらに、汎用性のあるファイル形式として作品データを配布する場合、データを圧縮せず、作成したすべてのファイルを含めたフォルダ自体を作品データとしてもよい。
【0078】
次に、
図19のフローチャートを参照して、本発明の実施形態に係る全方位画像編集装置により見回し映像を動画として作成する手順を説明する。
【0079】
処理を開始すると、全ての視線移動再現データの抽出を完了したか否かを判断し(ステップS81)、完了していないと判断されると(ステップS81をNOに分岐)、次の視線移動再現データを抽出し(ステップS82)、視線移動再現データを基に視線角度、視野角を更新し(ステップS83)、スクリーン更新処理を実行する(ステップS84)。そしてスクリーン画像を1フレームの画像としてファイルに書き出し、上記ステップS81に戻る。こうして、全ての視線移動再現データの抽出を完了すると(ステップS81をYESに分岐)、リターンする。
【0080】
このように、本処理では、視線移動を再現するデータにより1フレームごとに視線を僅かずつ移動していき、各々のフレームを描画、ならびにファイルへの書き出しを行う。ファイル形式は、AVIやMPG、MOV等に代表される一般的な動画ファイル形式、または連番画像ファイル群の形式等が挙げられるが、これらに限定されない。
【0081】
図20を参照して、座標変換の概念を述べる。同図の上方には、正距方位図法に基いた全方位画像のラスターイメージを示しており、同図の下方には、3次元の全方位仮想空間を示している。この全方位仮想空間にはスクリーン画像およびドローイング画像のラスターイメージを併せて図示している。全方位画像への入力は実線矢印で示しており、全方位画像からの出力は破線矢印で示している。
【0082】
図21のフローチャートを参照して、全方位画像(任意の座標系)および視線情報からスクリーン画像(スクリーン座標系)への描画処理の流れを説明する。ここでは、作業者が実際に観測することのできるスクリーン画像の更新方法を示している。当該処理は、
図6のステップS10でポリゴンモデルを用いない場合に実行される。
【0083】
スクリーン更新処理を開始すると、先ず全てのレイヤーの抽出が完了しているか否かを判断する(ステップS91)。そして、全てのレイヤーの抽出が完了していなければ(ステップS91をNOに分岐)、次のレイヤーを抽出し(ステップS92)、レイヤーに対応する全ての全方位画像の抽出が完了したか否かを判断する(ステップS93)。そして、該抽出が完了していなければ次の全方位画像を抽出し(ステップS94)、スクリーン画像において全画素走査が完了したか否かを判断する(ステップS95)。
【0084】
ここで、スクリーン画像において全画素走査が完了していないと判断されると(ステップS95をNOに分岐)、スクリーン画像の次画素走査を実施し(ステップS96)、更新するスクリーン画像の画素と視線情報とに対応する3次元ベクトルを算出し(ステップS97)、3次元ベクトルの方位に対応する全方位画像の画素、およびその近傍の画素から不透明度と色情報とを抽出、ならびに算出し(ステップS98)、不透明度と色情報とを用いてスクリーン画像の画素を更新し(ステップS99)、ステップS95に戻る。
【0085】
スクリーン画像において全画素走査を完了したと判断されると(ステップS95)、ステップS93に戻る。そして、レイヤーに対応する全ての全方位画像の抽出が完了したものと判断されると(ステップS93をYESに分岐)、ステップS91に戻る。そして、全てのレイヤーの抽出を完了したと判断されると(ステップS91をYESに分岐)、リターンすることになる。
【0086】
いま、例えば、球面ミラーを用いた全方位カメラ等から得られるような全方位画像を再現する場合の例を考える。
【0087】
スクリーン画像(w:幅,h:高さ)の画素(u:水平方向,v:垂直方向)と視線情報(ヨー角,ピッチ角,ロール角,視野角)とに対応する3次元ベクトル(x,y,z)の方位は、コンピュータグラフィックス分野における従来の計算方法を用いて求める。
【0088】
次いで、3次元ベクトル(x,y,z)の方位から全方位画像(w:幅,h:高さ)の画素(u:水平方向,v:垂直方向)への座標変換において、従来の正距方位図法に基づき以下のような計算方法を用いる。
PIは、円周率
rは、2次元ベクトル(x,z)の長さ、sqrt(x×x+z×z)
tは、2次元ベクトル(y,r)のX軸とのなす角の範囲を「0度〜180度」から「0〜1」に正規化したもの、atan2(r,−y)÷PI
uは、(1+x×t÷r)×w÷2
vは、(1−z×t÷r)×h÷2
この例に限定されることなく、3次元ベクトルの方位と全方位画像の座標変換が相互に可能であれば、どのような計算方法を用いてもよい。
【0089】
なお、画像描画のための演算は、中央制御部の代わりに専用のハードウェアを用いてもよい。また、スクリーン画像の描画の際にバイリニア等のフィルタリングを行い、画質の向上を図ってもよい。さらに、描画処理毎に全レイヤーを描画する代わりに、予め全レイヤーの複製を結合した1つの画像を作成しておき、それを全方位画像とみなしてスクリーン画像へ描画してもよい。この場合、結合画像の作成はドローイング後に行われる全方位画像更新終了時に行うことになる。
【0090】
次に
図22のフローチャートを参照して、ドローイング用画像(スクリーン座標系)及び視線情報から全方位画像(任意の座標系)への描画処理の流れを説明する。ここでは作業者が行ったドローイングの内容を選択したレイヤーの全方位画像に反映させる方法を示している。当該処理は、
図6のステップS8でポリゴンモデルを用いない場合に実行される。
【0091】
この描画処理に入ると、レイヤーを選定し(ステップS101)、レイヤーに対応する全ての全方位画像の抽出が完了したか否かを判断する(ステップS102)。ここで、レイヤーに対応する全方位画像の抽出が完了していないと判断された場合には(ステップS102をNOに分岐)、次の全方位画像を抽出し(ステップS103)、全方位画像において全画素走査が完了しているか否かを判断する(ステップS104)。
【0092】
ここで、全方位画像において全画素走査が完了していないと判断された場合には(ステップS104をNOに分岐)、全方位画像の次の画素を走査し(ステップS105)、更新する全方位画像の画素に対応する3次元ベクトルを算出し(ステップS106)、3次元ベクトルの方位と視線情報とに対応するドローイング用画像の画素、およびその近傍の画素から不透明度と色情報とを抽出、ならびに算出し(ステップS107)、不透明度と色情報とを用い、合成方法に基づき全方位画像の画素を更新し(ステップS108)、ステップS104に戻る。
【0093】
そして、全方位画像において全画素走査が完了していると判断された場合には(ステップS104をYESに分岐)、ステップS102に戻る。そして、レイヤーに対応する全ての全方位画像の抽出を完了していると判断された場合には(ステップS102をYESに分岐)、リターンする。
【0094】
ここで、再び球面ミラーを用いた全方位カメラ等から得られるような全方位画像を再現する場合の例を考える。
【0095】
座標変換については、全方位画像(w:幅,h:高さ)の画素(u:水平方向,v:垂直方向)から3次元ベクトル(x,y,z)の方位への座標変換において、従来の正距方位図法に基づき、以下のような計算方法を用いる。すなわち、3次元ベクトルの方位から全方位画像の画素への座標変換とは逆の座標変換に相当する。
PIは、円周率
nuは、uの範囲を「0〜w」から「−1〜+1」に正規化したもの、2×u÷w−1
nvは、vの範囲を「h〜0」から「−1〜+1」に正規化したもの、1−2×v÷h
rは、2次元ベクトル(nu,nv)の長さ、sqrt(nu×nu+nv×nv)
xは、nu×sin(r×PI)÷r
yは、−cos(r×PI)
zは、nv×sin(r×PI)÷r
この例に限定されることなく、3次元ベクトルの方位と全方位画像の座標変換が相互に可能であれば、どのような計算方法を用いてもよい。
【0096】
3次元ベクトル(x,y,z)の方位と視線情報(ヨー角,ピッチ角,ロール角,視野角)とに対応するスクリーン画像(w:幅,h:高さ)の画素(u:水平方向,v:垂直方向)は、コンピュータグラフィックス分野における従来の計算方法を用いて求める。
【0097】
ドローイング画像を全方位画像へ合成する方法は、標準的な合成方法のほかに、不透明度を減少方向に向かわせるような(消去)合成方法や、色値を乗算させるような(ハイライト)合成方法等を選択可能としてもよい。また、画像描画のための演算は、中央制御部の代わりに専用のハードウェアを用いてもよい。さらに、全方位画像の描画の際にバイリニア等のフィルタリングを行い、画質の向上を図ってもよい。
【0098】
次に
図23には、直方体モデルまたは立方体モデルを使用した全方位画像更新処理の概念図を示し説明する。
【0099】
ポリゴンモデルを用いる方法で各面が矩形である場合に、GPU(Graphics Processing Unit)を用いて容易に実装することができる。直方体モデルまたは立方体モデルを使用した場合、「全方位画像の表示」としてはモデルの中心部が視点となり、テクスチャを持った全6面をスクリーン画像にレンダリングする。これに対し、「全方位画像の更新」を行う場合、各面のテクスチャにレンダリングを行う。これについての手段を示す。
【0100】
図示の如く視野角を含んだ視線情報に対応する長方錐を作成する。このとき、ドローイング画像を長方形底面とみなし、視点は長方形底面と向かい合う頂点とみなし、直方体モデルの中心に位置する。ドローイング画像を描画するGPU長方形ポリゴンのテクスチャとして扱う。直方体モデルの6つの長方形面を抽出する。長方形面の「上辺」「下辺」「右側辺」「左側辺」は予め定義しておく。
【0101】
各長方形面のテクスチャをGPUレンダリング対象とみなす。GPUビュー変換時の視線角度について、視線方位は「視点」から「長方形面の中心」に向かう方位とする。視線上方向は「長方形面の中心」から「長方形面の上辺の中点」に向けての方位とする。GPU射影変換時の視野角は、「テクスチャ画像の上辺の中点」「視点」「テクスチャ画像の下辺の中点」をなす角とする。GPU射影変換時のアスペクト比は、直方体モデルにおける長方形面の縦の長さに対する横の長さとする。直方体モデルが立方体であればGPU射影変換時の視野角は90度、アスペクト比は1になる。
【0102】
以下、
図24のフローチャートを参照して、直方体モデルまたは立方体モデルを使用した全方位画像更新処理の流れを示し説明する。
【0103】
本処理を開始すると、先ずレイヤーを選定し(ステップS111)、視点を原点とし、z座標を1とし、観測中の視野角とアスペクト比に応じた長方形ポリゴン(座標情報はx,y,zおよびu,v)をGPUポリゴンデータとして作成し(ステップS112)、ドローイング画像(ピクセル色情報はa,r,g,b)をGPUテクスチャとして設定する(ステップS113)。
【0104】
続いて、直方体モデル面(長方形)を6面全て抽出完了したか否かを判断する(ステップS114)。ここで、6面全てを抽出完了していないと判断された場合には(ステップS114をNOに分岐)、直方体モデル面(長方形)を抽出し(ステップS115)、直方体モデル面に対応するテクスチャ画像をGPUレンダリング対象として設定し(ステップS116)、視点と直方体モデル面の位置関係から視線方位および視線上方向を作成し、GPUビュー行列として設定し(ステップS117)、視点と直方体モデル面の位置関係から視野角およびアスペクト比を作成し、GPU射影行列として設定し(ステップS118)、GPUポリゴンデータをレンダリングし(ステップS119)、ステップS114に戻る。
【0105】
こうして、直方体モデル面(長方形)を6面全て抽出完了したと判断されると(ステップS114をYESに分岐)、リターンする。
【0106】
以上説明したように、本発明の一の実施形態によれば、操作入力を行う操作入力手段としてのポインティング装置30、各種画像を表示する表示手段としての表示装置20と、全方位画像編集プログラムに従って制御する中央制御手段としての中央制御部11とを備え、上記中央制御手段は、上記操作入力手段から少なくとも座標及びボタンの入力情報を受付け、視線変更モードである場合には、上記入力情報を基に視線角度、視野角を更新し、スクリーン更新処理を行い、上記表示手段に画像出力し、ドローイングモードである場合には、少なくともドローイングパラメータを選択し、当該ドローイングパラメータを基にドローイング用画像に描画をし、ドローイング終了の場合には、全方位画像更新処理を実行し、ドローイング用画像をクリアし、スクリーン更新処理を行い、上記表示手段に画像出力することを特徴とする全方位画像編集装置が提供される。
【0107】
更に上記中央制御手段としての中央制御部11は、スクリーン画像の上に所定の合成方法に基づきドローイング用画像を重畳して、上記表示手段に画像出力することを特徴としてよい。更に、上記中央制御手段としての中央制御部11は、ドローイング用画像に描画後、スクリーン更新処理を行い、スクリーン画像の上に所定の合成方法に基づきドローイング用画像を重畳して、上記表示手段に画像出力することを特徴としてよい。
【0108】
更に上記中央制御手段としての中央制御部11は、上記スクリーン更新処理では、視線角度に対応するポリゴン頂点の座標を算出し、視野角に対応するポリゴン頂点の座標を算出し、テクスチャ画像からスクリーン画像への描画処理を行うことを特徴としてよい。更に、上記中央制御手段としての中央制御部11は、テクスチャ画像からスクリーン画像への描画処理では、スクリーン画像の画素を走査し、更新するスクリーン画像の画素に対応するテクスチャ画像の画素及びその近傍の画素から不透明度と色情報とを抽出並びに算出し、不透明度と色情報とを用い、スクリーン画像の画素を更新し、スクリーン画像においてポリゴン面に対応する全画素走査が完了し、レイヤーに対応する全ポリゴン面の抽出が完了し、全レイヤーの抽出が完了するまで処理を繰り返すことを特徴としてよい。
【0109】
更に上記中央制御手段としての中央制御部11は、上記全方位画像更新処理では、視線角度に対応するポリゴン頂点の座標を算出し、視野角に対応するポリゴン頂点の座標を算出し、ドローイング用画像からテクスチャ画像への描画処理を行うことを特徴としてよい。更に、上記中央制御手段としての中央制御部11は、上記ドローイング用画像からテクスチャ画像への描画処理では、テクスチャ画像の画素走査を行い、更新するテクスチャ画像の画素に対応するドローイング用画像の画素及びその近傍の画素から不透明度と色情報とを抽出並びに算出し、不透明度と色情報とを用いて所定の合成方法に基づきテクスチャ画像の画素を更新し、テクスチャ画像においてポリゴン面に対応する全画素走査が完了し、レイヤーに対応する全ポリゴン面の抽出が完了するまで処理を繰り返すことを特徴としてよい。
【0110】
更に、本発明の一実施形態によれば、パーソナルコンピュータ10が、操作入力手段としてのポインティング装置30から少なくとも座標及びボタンの入力情報を受付け、視線変更モードである場合には、上記入力情報を基に視線角度、視野角を更新し、スクリーン更新処理を行い、表示手段としての表示装置20に画像出力し、ドローイングモードである場合には、少なくともドローイングパラメータを選択し、当該ドローイングパラメータを基にドローイング用画像に描画をし、ドローイング終了の場合には、全方位画像更新処理を実行し、ドローイング用画像をクリアし、スクリーン更新処理を行い、表示手段に画像出力する中央制御手段として機能することを特徴とする全方位画像編集プログラムが提供される。ここで、上記中央制御手段としての中央制御部11が、スクリーン画像の上に所定の合成方法に基づきドローイング用画像を重畳して、上記表示手段に画像出力することを特徴としてよい。また、上記中央制御手段としての中央制御部11が、ドローイング用画像に描画後、スクリーン更新処理を行い、スクリーン画像の上に所定の合成方法に基づきドローイング用画像を重畳して、上記表示手段に画像出力することを特徴としてよい。