本発明は、コンピュータグラフィックスの作成に用いられるテクスチャマッピング技術に関する。
近年、計算機(コンピュータ)の性能向上に伴い、写実性の高いコンピュータグラフィックスの制作環境が整いつつある。特に、グラフィック処理専用に動作するGPU(Graphic Processing Unit)の性能は飛躍的に向上しており、リアルタイムで動画を演算する能力を有するGPUが容易に入手可能になった。また、コンピュータグラフィックスが利用される機会も増え、映画を始め、テレビ、インターネット、雑誌等のメディア広告や、製品カタログ、ニュース番組での説明映像など、あらゆる媒体でコンピュータグラフィックスが利用されている。
製品カタログでは、「製品」という実在する物体をコンピュータグラフィックスで描いた画像や映像が掲載される。コンピュータグラフィックスを利用するメリットは、実物を実際に用意して撮影する際の様々な制約から解放されることにある。たとえば、車の走行シーンをビデオ撮影したい場合、走行場所をまず決める必要がある。このとき、広告効果を損なわないようにするためには、特定の条件を満たすロケ場所の確保が必要になる。また、実写は天候に左右され、撮影期間の長期化は、コストアップ、製品の販売計画にも支障をきたす。また、広告効果を高めるために、映像表現を積極的に活用することが有効な場合もある。たとえば、実写では危険が伴うようなアングルで映像を作成したい場合にも、コンピュータグラフィックスを有効に活用できる。
近年、様々なコンピュータグラフィックスの制作方法が開発されている。そのうちの一つとして「テクスチャマッピング」が知られている。「テクスチャマッピング」は、コンピュータによって物体表面の模様や光沢感のリアリティを高める技術であり、あたかも実物のように見える「写実性」を高めることが可能である。「テクスチャ」とは、物体表面が有する模様や光沢感、質感などの総称である。たとえば非特許文献1は、テクスチャマッピングに関する技術を開示している。
図20はテクスチャマッピングの工程の一例を示す。物体の形状(円柱)1001に合わせて物体表面のテクスチャ1002を貼り付けることにより、写実性の高い画像1003が生成される。
テクスチャマッピング技術では、2次元画像のテクスチャを3次元形状に貼り付ける際、通常、四角形であるテクスチャ画像の輝度値を3次元形状に従って変化させる。図20の例では、四角形のテクスチャ画像1002の輝度値を、円柱1001の側面の輝度値に応じて変化させている。その結果、得られた画像1003では、円柱1001に貼り付けられた、丸みを帯びたテクスチャ画像の輝度値は円柱1001の形状にしたがって変化する。そのため、見かけ上の違和感はなくなる。すなわち写実性の高い画像1003が得られる。
コンピュータグラフィックスは、元来、光源からの光が物体に反射され、視点に届いた光の輝度値を計算機で求めることで作成される。実物のようなテクスチャを物体表面に作成するには、テクスチャ画像としてデジタルスチルカメラ等で撮影された実写画像を用い、その実写画像の輝度値を利用することが一般的である。
近年の写実性に対する要求の高まりから、すべてをモデルベースで計算する限界が明らかになっている。たとえば、画像の高精細度への要求が高まり、処理すべき画素数が増大したことにより、計算負荷が爆発的に増加する。これにより、モデルベースでは記述し切れない限界も表出している。
近年のコンピュータグラフィックスの利用範囲の広がりと、写実性への要求の高まりから、実写画像を撮影、あるいは計測して、テクスチャマッピングに利用するイメージベースが多用されている。イメージベースは、コンピュータグラフィック制作において必須となっている。
「明解 3次元コンピュータグラフィックス」、荒屋真二、共立出版、pp.24−26, pp.127−132, pp.144−146, 2003年
しかしながら、従来は、外力を受けて物体形状が変形することに対応可能なテクスチャマッピング手法は存在しなかった。言い換えると、予め与えられた形状に対してはテクスチャ画像の輝度値を変化させることは可能であるが、物体形状が変形する場合にその変形に対応してテクスチャ画像の輝度値を変化させることは行われていなかった。その結果、テクスチャマッピングの写実性が劣化するという課題を有していた。
テクスチャマッピングの写実性を高めるには、実物を撮影、あるいは計測して得たデータを直接用いることが肝心であり、これがイメージベース手法の特徴である。しかしながら、従来の技術は、実写画像として利用するテクスチャ画像の輝度値が固定であり、形状変化した物体は利用されていない。その結果、たとえば、光源の光を直接反射する鏡面反射のテクスチャが不自然になったり、形状変化によって視点からは遮蔽されて見えないはずのテクスチャが貼り付けられたり、実物とは異なる不自然なテクスチャが生成され、写実性が劣化するという問題が存在した。
本発明は上記課題を解決するためになされたものであり、その目的は、テクスチャを貼り付ける形状が変化しても、写実性の高いテクスチャマッピングを実現することにある。
本発明による画像生成システムは、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムであって、外力を与えて変形させた被写体のテクスチャ画像のデータを保持する取得部と、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを保持するメモリ部と、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するテクスチャマッピング部とを備えている。
前記取得部は、さらに外力を計測し、前記テクスチャマッピング部は、計測された前記外力から、前記対象物のポリゴンに対して作用させる応力ベクトルを算出し、前記テーブルを参照してもよい。
前記取得部は、前記外力を与えて変形させた被写体のテクスチャ画像を撮影して前記テクスチャ画像のデータを生成し、前記被写体に与えられた外力に基づく応力ベクトルの大きさおよび始点位置を計測して、前記応力ベクトルの情報を生成し、前記メモリ部は、前記応力ベクトルの情報を前記テーブルに格納してもよい。
前記画像生成システムは、前記対象物の3次元形状に対して複数のポリゴンを設定する形状設定部と、前記外力によって発生する、各ポリゴンの応力ベクトルを算出する応力演算部と、各ポリゴンの位置に関する位置情報および応力ベクトルに基づいて、前記応力ベクトルに最も近いアドレスを有する前記テクスチャ画像の輝度値を特定する検出部をさらに備え、前記メモリ部のテーブルでは、前記応力ベクトルの大きさおよび始点位置がアドレスとして保持され、前記メモリ部は、前記テクスチャ画像の輝度値を前記対象物のポリゴンの輝度値として出力してもよい。
前記取得部は、ひずみセンサと測距センサとを有しており、前記ひずみセンサは、前記応力ベクトルの大きさを計測し、前記測距センサは、前記応力ベクトルの始点位置を計測してもよい。
前記取得部は、前記被写体に与える外力を同じにした状態で、前記応力ベクトルの計測、および、前記テクスチャ画像の撮影を個別に行ってもよい。
前記応力ベクトルの大きさの変化が所定の基準を超えた場合、あるいは応力ベクトルの始点位置の変化が所定の基準を超えたとき、前記取得部は、前記テクスチャ画像を撮影してもよい。
前記ひずみセンサは、前記被写体に接触して配置されて前記外力を計測し、前記応力演算部は、計測された前記外力の情報を受け取り、前記外力によって発生する、各ポリゴンの応力ベクトルを算出してもよい。
前記応力演算部は、ポリゴン単位で設定した質点および前記質点をつなぐバネ弾性を利用したモデルにより、前記応力ベクトルを算出してもよい。
前記画像生成システムは、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力する投影変換部をさらに備えていてもよい。
本発明による画像生成方法は、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムにおいて利用される方法であって、外力を与えて変形させた被写体のテクスチャ画像のデータを用意するステップと、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを用意するステップと、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するステップと、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力するステップとを包含する。
本発明によるコンピュータプログラムは、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムのコンピュータによって実行されるコンピュータプログラムであって、前記コンピュータプログラムは、前記コンピュータに対し、外力を与えて変形させた被写体のテクスチャ画像のデータを用意するステップと、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを用意するステップと、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するステップと、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力するステップとを実行させる。
本発明による記録媒体は、上述のコンピュータプログラムを記録した記録媒体であってもよい。
本発明によれば、変形を生じた実物を実写してテクスチャ画像の輝度値を取得するため、物体の接触によって生じる変形を写実性の高い動画のコンピュータグラフィックスで表現できる。これにより、映像表現力の向上を図ることが可能になる。
2次元画像のテクスチャマッピングの技術を示すブロック図である。
ポリゴンの説明図である。
テクスチャマッピングにおけるポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を説明する図である。
代表点探索部1106の機能を説明する図である。
3次元座標(x,y,z)を用いたテクスチャマッピングを説明する図である。
3次元座標(x,y,z)でテクスチャ画像の輝度値の輝度値を取得するテクスチャマッピングのブロック図である。
外力を受けて物体形状が変形するモデルを組み込んだテクスチャマッピングを示すブロック図である。
質点バネ設定部1702の機能を説明する図である。
アドレス変換テーブル1901を説明する図である。
テクスチャマッピングの工程の一例を示す図である。
実施形態1による画像生成装置100の構成を示すブロック図である。
形状変化に伴って発生する応力ベクトルを説明する図である。
テクスチャ画像の輝度値の取得方法の例を示す図である。
被写体までの距離を計測する方法の例を示す図である。
画像生成装置100の処理手順を示すフローチャートである。
実施形態2による画像生成装置600の構成を示すブロック図である。
テクスチャ画像取得部602の構成例を示す図である。
輝度値取得制御部314の調整画面706を示す図である。
実施形態3による画像生成装置900の構成を示すブロック図である。
2次元画像のテクスチャマッピングを説明する図である。
以下、添付の図面を参照して、本発明による画像生成システムの実施形態を説明する。以下の実施形態1および2においては、複数の構成要素が1つの筐体内に設けられた、画像生成装置として実現される画像生成システムの例を説明する。一方、実施形態3においては、複数の構成要素がネットワークで接続された画像生成システムの例を説明する。
(実施形態1)
本実施形態では、初めにテクスチャを貼り付けるポリゴンの座標からテクスチャ画像の輝度値を取得する画像生成装置を説明する。この画像生成装置は、3次元座標系を、コンピュータグラフィックスが表現される2次元座標系に変換した後、2次元座標とテクスチャ画像の輝度値とを対応付けたテーブルを参照する。その結果、テクスチャの貼り付け位置に応じた輝度値を得ることができる。
まず、上記画像生成装置を説明する。その後、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置を説明する。
なお、「ポリゴン」とは、3次元コンピュータグラフィックスで立体を表現する際に用いられる、多角形の平面データを意味する。物体表面は、座標データに基づいてポリゴンの各頂点をつなぐことによって、表現されている。個々のポリゴンが小さければ小さいほど、その集合として描かれた物体は滑らかに表現できるが、同時に膨大な量の頂点座標データを大量に計算する必要があるため、演算処理や描画により大きな処理負荷がかかる。
図1は、画像生成装置の構成、および、構成要素間のデータフローを示すブロック図である。この図では、テクスチャマッピングを中心とした、コンピュータグラフィックスの作成の流れ(図中の矢印)を示している。画像生成装置は、図1における表示部1111を除いては、コンピュータであるプロセッサと、コンピュータプログラムとによって実現されてもよいし、テクスチャマッピング処理に特化されたプロセッサとによって実現されてもよい。
画像生成装置のジオメトリ演算部1101は、物体の位置や形状などを3次元的に定義し、3次元形状信号1102を出力する。通常、物体形状は多数のポリゴンに分割して記述する。図2は、山形の形状を四角形のポリゴンに分割した例である。ポリゴン1つ1つは、直線から成る四角形であるが、ポリゴンのサイズを小さくするほど曲線を滑らかに表現できる。このように、3次元形状信号1102は、複数のポリゴンの座標(x,y,z)から成る。なお、本明細書においてはポリゴン形状を四角形としているが、これは一例である。ポリゴン形状は他の多角形、たとえば三角形であってもよい。
テクスチャマッピング部1103は、輝度値メモリ部1104が有するテクスチャ画像の輝度値を参照してポリゴンの輝度値を算出する。3次元形状信号1102として取得したポリゴンの座標(x,y,z)は、図3に示すように、テクスチャ画像の輝度値の座標(u,v)に変換される。図3の例では、説明の明確性を高めるために、テクスチャを文字Eとした。テクスチャ画像の輝度値1301は、テクスチャマッピングによって山形の物体形状1302に貼り付けられる。たとえば、文字部に位置する点1303の座標(x,y,z)は点1304の座標(u,v)に対応し、従って、点1303のポリゴンの輝度値は黒を示す0に決定される。一方、背景部に位置する点1305の座標(x,y,z)は点1306の座標(u,v)に対応し、従って、点1305のポリゴンの輝度値は白を示す1に決定される。
ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係は、デザイナが設計時に全組み合わせに対して与えても構わない。しかし、写実性の高い画像、映像を作成する場合、画素数は膨大であり、1組1組、デザイナが対応関係を指定するのは現実的ではない。そこで、一般的には、代表的な対応関係をデザイナが与え、これをもとに、計算機が補間演算等を用いて、全画素の処理を実行する。たとえば、図4の例では、テクスチャ画像の輝度値1301上の点1304、点1306、1401と物体形状1302上の点1305、点1402、点1403が、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を指定する代表点である。指定箇所に属さないポリゴン、たとえば、ポリゴン1404の輝度値は、近傍に位置する点1305、点1402、点1403が有するポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係から補間によって算出する。具体的には、ポリゴン1404の輝度値Lは、下記数1に示すように、ポリゴン1404と点1305の距離D1、ポリゴン1404と点1402の距離D2、ポリゴン1404と点1403の距離D3の逆数で重み付けして線形補間を用いる。
ここで、Liは、テクスチャ画像の輝度値上の点1304、点1306、点1401の輝度値である。
以上より、テクスチャマッピング部1103は、補間演算に必要なポリゴンの輝度値を得るために、ポリゴン座標信号1105を輝度値メモリ部1104に送る。図4の例では、テクスチャマッピングを行う対象は点1404のポリゴンである。この点1404の輝度値を決めるために、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係がわかっている代表点1305、1402、1403の輝度値を輝度値メモリ部1104から取得する。
代表点探索部1106は、テクスチャマッピングを行う対象の点1404の近傍の代表点を探索し、点1305、点1402、点1403を出力する。(x,y,z)→(u,v)変換部1107は、コンピュータグラフィックスのデザイナが設定したポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を有し、この対応関係に従って、点1305、点1402、点1403の座標を(u,v)座標に変換する。最近傍検出部1112は、代表点の(u,v)座標に最も近い(u,v)座標を輝度値メモリ部1104から検出し、ポリゴン座標信号1105として出力する。輝度値メモリ部1104は、ポリゴン座標信号1105として受けた(u,v)座標をデータアドレスとしてテクスチャ画像の輝度値を取得し、テクスチャ輝度信号1108として、テクスチャマッピング部1103に送り返す。輝度補間部1109は、数1を演算し、点1404のポリゴンの輝度値を算出する。
投影変換部1110は、3次元形状を2次元の投影面に変換して、表示部の2次元画像を生成する。非特許文献1が開示するように、投影変換には、遠近感が得られる透視投影法など複数の手法が存在する。
表示部1111は、たとえば液晶表示装置であり、液晶ディスプレイにコンピュータグラフィクスの2次元画像を表示する。
以上により、実写画像を形状に貼り付けて、リアリティの高いテクスチャを生成できる。
しかし、実写画像の光沢や陰影は、2次元形状の実物から得たものであり、3次元の立体構造を持つ実物の光沢や陰影とは異なる。たとえば、鏡面反射を持つ被写体は、光源からの光を正反射するため、局所的に輝度値の高い陰影を有し、光沢感や質感を決める要素となる。2次元のテクスチャ画像の輝度値1002から円柱形状に貼り付けられたテクスチャ画像の輝度値1003は、2次元画像としての光沢や陰影を持ち、3次元形状が折りなす光沢や陰影とは異なる。
そこで、テクスチャ画像の輝度値の光沢や質感が実物と合うように、テクスチャ画像の輝度値を3次元座標とともに計測する。すなわち、図5に示すように、3次元形状の被写体1501をカメラ302で撮影してテクスチャ画像の輝度値を得る。加えて、測距センサ313によって、被写体1501までの距離を計測し、テクスチャ画像の輝度値の画素ごとに、(x,y,z)座標を取得する。テクスチャ画像の輝度値1502は、画素ごとに、(x,y,z)座標と輝度値を有することになり、被写体1501上の計測点(x,y,z)の輝度値を示す。テクスチャマッピングは、円柱1001のポリゴンの座標(x,y,z)に最も近いテクスチャ画像1502の輝度値の(x,y,z)座標を検出し、そのテクスチャ画像の輝度値を描画画像1505に貼り付ける。
上述の処理を実現するための構成を図6に示す。図6は、ポリゴンの座標に基づいてテクスチャ画像の輝度値を取得する画像生成装置の構成、および、構成要素間のデータフローを示すブロック図である。画像生成装置は、図5で説明したポリゴンの座標(x,y,z)でテクスチャ画像の輝度値を取得するテクスチャマッピングを行う。輝度値メモリ部1601には、あらかじめ計測された被写体1501上の計測点の(x,y,z)座標と輝度値とが登録されている。最近傍検出部1602は、3次元形状信号1102で与えられるポリゴンの座標(x,y,z)に最も近い計測点を検出し、これをポリゴン座標信号1105として輝度値メモリ部1601にアドレスする。
これにより、図1に示した2次元のテクスチャ画像の輝度値をマッピング方法では必要となる、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定が不要となる。具体的には、図1における代表点探索部1106と(x,y,z)→(u,v)変換部1106は不要になり、代わって、最近傍検出部1602が輝度値メモリ部1601をアクセスする。また、輝度値メモリ部1601から取得したテクスチャ画像の輝度値そのものがマッピングされるため、輝度補間部1109も不要となる。
従って、図6は、テクスチャ画像の輝度値を実物から実写画像で取得するのみならず、テクスチャ画像の輝度値を取得された(x,y,z)座標も計測するため、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定が不要になる。
これまでは、静的な被写体を対象としてテクスチャ画像の輝度値を変化させる処理を説明した。
コンピュータグラフィックスが、映画や広告、ニュースなどの様々な媒体で利用される際に、複数のフレーム画像から成る動画像として作成されることが多い。動画像を用いて物体の動きや視点位置の移動などを行うと、表現力や説明の分かりやすさを高める効果がある。このような動画像表現において、物体と物体の接触による「物体の変形」は、多くの場面で求められる描画要素であり、コンピュータグラフィックスの写実性向上に大きく寄与するファクタである。上述したテクスチャマッピングを物体の変形に対応させることが可能であれば非常に好ましいといえる。「物体の変形」に対応するためには、ジオメトリ演算部1101(図1、図6)には物体の変形に関係する演算を行う機能が必要になる。
これらを考慮して、次に、変形を伴う物体のテクスチャマッピングを説明する。
図7は、外力を受けて物体形状が変形するモデルを組み込んだテクスチャマッピングを行う画像生成装置のブロック図である。ジオメトリ演算部1701は、図2に示したポリゴンの組み合わせによる形状記述に加えて、図8に示すように、質点1801とバネ1802を持つ。
「真空内での布の挙動の比較による布シミュレーションの精度検証」(田川和義、林宏卓、木島竜吾、小鹿丈夫、日本バーチャルリアリティ学会 第7回大会論文集,pp.361−364,2002年)によれば、物体の弾性をバネの弾性に離散化し、外力に対する引っ張り回復力や曲げ回復力などを設定して、物体の弾性を記述する。重量特性に相当する質点は、通常、ポリゴン頂点に設けられ、従って、バネはポリゴン頂点をつなぐポリゴンの辺に配置される。
上述の文献では、物体として布を想定している。しかしながら、たとえば、「ハプティック・テクスチャを用いた医療トレーニングシステムの開発」(田村信彦,津村徳道,三宅洋一,田辺政裕,山浦晶、VR医学, Vol. No.1, pp.30−37, 2004年)が開示するように、皮膚や臓器など、弾性を有する様々な物体に適用できる。引っ張り回復力Fstretchは下記数2で、曲げ回復力Fbendは下記数3で、それぞれ表現できる。すべてのバネに働く力を求め、各質点に働く力の合力を計算し、その後、下記数4で質点iの座標xiを求める。
数2において、T()は伸び率−引っ張り回復力の関数、lは計算時点でのバネの長さ、l0はバネの初期長、ベクトルLijは質点Piから質点Pjに向かう単位方向ベクトルを表わす。数3において、B()は曲率−モーメントの関数、Kは曲率、ベクトルNiは質点Piと質点Pjを結ぶ直線に垂直な単位法線ベクトルを表わす。数4において、miは質点iの質量、ベクトルviは質点iの速度ベクトル、ベクトルFiは質点iの力ベクトル、ベクトルFiは質点iの力ベクトル、nは現時刻、n+1は次時刻を表わす。
上述のモデルによると、形状変化を一般化して表現することが可能である。すなわち、物体が外力を受けて変形した際には、形状変化を質点の移動として記述することが可能である。この形状変化に関連して、輝度値メモリにアクセスするためのアドレス(座標値)を変更し、その座標値における輝度値を読み出す。このように、座標値によって示されるアドレスを変更することで、適切な輝度値を採用したテクスチャマッピングが可能である。
ジオメトリ演算部1701は、変形後の質点の新しい座標を算出する。具体的には、ジオメトリ演算部1701における、形状設定部1712で物体形状を設定し、質点バネ設定部1702で質点の位置と質量、バネの構造と弾性を設定し、外力設定部1703から外力ベクトル1704を受け、質点位置更新部1705で数2から数4を演算して変形後の質点の新しい座標を算出する。
質点位置更新部1705は、バネ力算出部1706で、たとえば数2や数3を用いてバネに働く力Fiをバネ力ベクトル1707として算出する。そして、質点座標算出部1708で数4により、力ベクトルFiが質点の位置情報xiに変換される。すなわち、物体が変形する原因は力(外力ベクトル1704)で与えられる。そして、質点座標算出部1708が力学系のバネ力ベクトル1707を幾何学系の3次元形状信号1102に置き換えて、質点の移動として物体変形を記述する。
ところで、輝度値メモリ部1720に格納されている計測点(x,y,z)の輝度値は、質点位置更新部1705から見ると、現在時刻nに対応し、次時刻n+1には対応しない。そこで、質点座標算出部1708が行う質点の移動による物体変形の記述を、輝度値メモリ部1720に対しても施す必要がある。具体的には、輝度値メモリ部1720をアクセスするアドレスを質点の移動に呼応して変更する。
アドレス変換部1710は、物体の変形に伴う輝度値メモリ部1720のアドレス変更を行う。質点座標算出部1708が質点の移動(すなわち、座標xi,n+1とxi,nが異なること)を検出すると、質点の移動情報を質点移動信号1711としてアドレス変換部1710へ送る。そして、現時刻nの(x,y,z)座標が次時刻n+1の(x,y,z)座標を参照するよう、アドレス変換テーブルを作成する。図9は、アドレス変換テーブル1901の一例を示す。たとえば、データ1902は、現時刻nにおいて質点が、(x,y,z)=(20,100,90)にあったが、次時刻n+1では、(x,y,z)=(20,100,75)に移動することを示している。
最近傍検出部1602は、現時刻nにおいて、3次元形状信号1102として受け取る(x,y,z)=(20,100,90)の最近傍を検出すれば、適切なテクスチャ画像の輝度値が得られる。しかし、次時刻n+1でもそのまま、同じ位置(x,y,z)=(20,100,90)で輝度値メモリ部1720を参照すると、z方向に25画素ずれた誤ったテクスチャ画像の輝度値を参照してしまう。
そこで最近傍検出部1602は、次時刻n+1では、(x,y,z)=(20,100,75)でアドレス変換テーブル1901を参照する。その結果、データ1902が選ばれ、現時刻nにおいて、(x,y,z)=(20,100,90)にあった計測点のテクスチャ画像の輝度値の輝度が取得される。
アドレス変換テーブル1901は、次時刻n+1に引き続き、時刻n+2、時刻n+3と都度、(x,y,z)座標の更新が必要になる。従って、アドレス変換テーブル1901における次時刻n+1の列1903は、次時刻n+1以降、質点の移動が発生するたびに、上書きで(x,y,z)座標を更新することになる。
一方、現時刻nの列1904に関しては、輝度メモリ部1601との固定的なつながりを維持するため、(x,y,z)座標の書き換えは発生しない。そこで、質点座標算出部1708は、時刻がn+1、n+2と進んでいったとしても、時刻nでの(x,y,z)座標は保持し続けなければならない。数4が示すように、質点座標算出部1708は、連続する時間2つ分の変化を記述するものであり、過去の情報は保存されない。そこで、質点座標算出部1708は、輝度値メモリ部1720が作成された時刻nでの計測点情報を保持しておく必要がある。たとえば、時刻n+10におけるテクスチャマッピングを実行する場合は、次時刻n+1の列1903には、時刻nから時刻n+10の間に移動があった質点の、最新時刻における(x,y,z)座標が登録される。
ところで、アドレス変換テーブル1901の更新作業が完了するまでは、テクスチャマッピングの処理を一時停止する必要がある。そこで、質点座標算出部1708が質点の移動を検出したら、質点移動識別信号1712をONにして、最近傍検出部1602の動作を一時停止する。質点座標算出部1708が全質点のチェックを終えたら、アドレス変換テーブル1901の更新動作は完了する。そして、質点移動識別信号1712をOFFにして、最近傍検出部1602の一時停止を解除し、テクスチャマッピングの処理を再開する。図10は、アドレス変換部1710がポリゴン座標信号1105をアドレスとして用いて輝度メモリ部1601を参照し、テクスチャ画像の輝度値を取得することができる。
以上により、物体が外力を受けて変形した際も、形状変化を質点の移動として記述し、テクスチャ画像の輝度値メモリをアクセスするアドレスを変更することで、テクスチャマッピングが可能である。
これまでの例では、質点の位置の変化に応じてアドレス変換テーブルを修正し、適切なテクスチャ画像の輝度値を得ていた。しかしながら、素材の位置の変化と応力の大きさとの間には関連性があるため、先に説明した座標変換に代えて、応力ベクトルを利用することが可能である。すなわち、外力による形状変化を、ポリゴン位置の移動といったアドレス変換によって特定せず、応力に基づいて特定することが可能である。たとえば柔らかい素材は座標が変化しやすく、その分、引っ張り回復力および曲がり回復力(すなわち応力)が大きくなる。逆に、固い素材は座標が変化しにくいため、応力は比較的小さい。
図11は、本実施形態による画像生成装置100のブロック図を示す。
画像生成装置100は、形状設定部1712、応力演算部101、外力設定部1703、テクスチャマッピング部102、輝度値メモリ部103を有している。
画像生成装置100は、デザイナが設定した物体形状や弾性、外力などをもとに、輝度値メモリ部103に格納されているテーブルを参照する。具体的には、複数のポリゴンの各々についての、各ポリゴンの位置座標(アドレス)に関する位置情報、各ポリゴンの位置に作用する応力ベクトルの情報、および、外力が加えられたときのテクスチャ画像の各輝度値の情報が対応付けられたテーブルを参照する。参照の結果得られた輝度値を、テクスチャ画像の輝度値として採用し、変形する物体形状にその輝度値のテクスチャ画像を貼り付ける。
形状設定部1712は、図3に示した物体形状1302を設定し、外力を受けていない変形なしの形状を設定する。この物体形状1302は、3次元形状信号1102として質点バネ設定部1702に与えられる。
応力演算部101は、質点バネ設定部1702、バネ力算出部1706を有し、3次元形状信号1102として与えられたポリゴンに対して応力を算出する。
質点バネ設定部1702は、図8に示したように、ポリゴン頂点に質点を設定し、質点をつなぐバネ特性を設定する。本実施形態において、バネ特性の設定方法は任意であり、たとえば、非特許文献2が開示する数2や数3を利用して、引っ張り回復力Fstretchや曲がり回復力Fbendの算出方法を設定する。
バネ力算出部1706は、質点バネ設定部1702の設定に従い、数2や数3の演算を実行して力ベクトルFiを算出し、これを応力信号105として出力する。すなわち、外力ベクトル1704が、バネを伸ばしたり、あるいは縮めたりして、数2のバネの長さlや数3の曲率Kが変化させる。これにより、引っ張り回復力Fstretchや曲がり回復力Fbendが発生し、数4の力ベクトルFiが算出される。これが各ポリゴンの応力となる。
外力設定部1703は、物体を変形させる外力ベクトル1704を設定する。物体の変形は、コンピュータグラフィックのデザイナが描画内容として設計する。図12の例であれば、外力ベクトル1704の大きさと、物体形状H01における力点の位置を決めることに相当する。
以上により、各ポリゴンには、ポリゴン座標(x,y,z)と応力ベクトルFiという属性が与えられる。
輝度値メモリ部103は、ポリゴン座標(x,y,z)と応力ベクトルFiをアドレスとして、テクスチャ画像の輝度値をテクスチャマッピング部102の指示にしたがって出力する。テクスチャ画像の輝度値は従来技術と同様に、事前に撮影しておく。
上述のように、本実施形態では、対象物が実在するという前提の下で、その対象物をコンピュータグラフィックスで表現しようとしたときの処理を説明している。よって、実在するその対象物のテクスチャおよび輝度値を予め取得することは可能である。以下、対象物のテクスチャおよび輝度値を取得するための具体的な構成を説明する。
図13は、テクスチャ画像取得部106(図11)の構成例を示す。テクスチャ画像取得部106は、対象物である被写体のテクスチャ画像を取得するのみならず、テクスチャ画像の輝度値を取得することが可能である。テクスチャ画像取得部106は、輝度値取得制御部314を有している。輝度値取得制御部314は、テクスチャ画像取得部106の全体制御を担い、XYZステージ304、カメラ302、測距センサ313の動作を制御する。加えて、通信線306を介して、画像生成装置100との通信を行う。図13の通信線306は、図11のブロック図においては、通信線107に対応する。
被写体301は、テクスチャの取得に用いられる撮影用の物体である。被写体301がXYZステージ304に設置されると、輝度値取得制御部314は支持ポール307と支持ポール308を制御して接触子305で被写体301を変形させる。カメラ302は、被写体301を撮影し、テクスチャ画像の輝度値を取得する。被写体301の表面に複数装着されたひずみセンサ303は、被写体301の応力を計測し、応力ベクトルの大きさを計測する。測距センサ313は、カメラ302に組み込まれ、カメラ302からひずみセンサ303までの距離を計測する。
接触子305の動きの指示は、データ線315を介して、外力設定部1703(図11)から与えられる。外力設定部1703は、コンピュータグラフィックスのデザイナによって操作される。その結果、接触子305は、デザイナの設定通りに被写体301へ外力を与える。
ただし、応力演算部101が有するバネ弾性は、被写体301の実際の弾性に対して誤差を有する、と捉える方が妥当であり、その対処を講じるべきである。そこで、接触子305にひずみセンサ309を装着し、被写体301に与えた外力を計測する。ひずみセンサ309からの計測データが、外力設定部1703に設定された外力ベクトルと一致するように、接触子305の動きを制御して、応力演算部101が有するバネ弾性の誤差を補償する。
ひずみセンサ303の測定データは、応力データ線310を介して、画像生成装置100へ取り込まれる。
カメラ302の撮影データと、測距センサ313の計測データは、画像データ線312を介して、画像生成装置100へ取り込まれる。
なお、本実施形態において、接触子305の制御と、カメラ302によるテクスチャ画像の輝度値の撮影、ひずみセンサ303、309の測定のタイミング制御は任意であり、ひずみセンサ303、309の測定データを常時、画像生成装置100へ取り込んでも構わない。また、テクスチャ画像の輝度値が撮影されたタイミングに合わせて、ひずみセンサ303、309の測定データを取得してもよい。すなわち、カメラ302のシャッタ動作に同期して、応力データ線310からのアナログ信号をサンプリングして離散化する。さらに、カメラ302のシャッタをコンピュータグラフィックスのデザイナが押し、カメラ302がシャッタ作動の識別信号を、輝度値取得制御部314を介して画像生成装置100に送ってもよい。
測距センサ313は、複数のひずみセンサ303を用いた3次元位置の計測に利用される。各ひずみセンサ303の位置は応力ベクトルの始点位置に相当する。本実施形態において、測距方法は任意であるが、たとえば三角測量を利用することが可能である。図14は、三角測量を説明する図である。三角測量とは、三角形の一辺とその両端の角度が決まると三角形が一義的に定まることを利用する測距方式である。既知の距離lだけ離れた2点A,Bから点Pを見る角度をそれぞれα、βとすると、点Pの座標値(x、y)は以下で与えられる。
いま、点Aにレーザー光源を置き、物体表面上の点Pにレーザー光を照射し、点Bに置いたカメラで点Pのレーザー光を捉えて点Pの座標値(x、y)を計測する。点Aのレーザー光源と点Bのカメラを、カメラ302に搭載する。点Bのカメラは、カメラ302の撮像系が兼用しても構わない。
以上により、輝度値メモリ部103を参照するためのアドレスとして必要な応力ベクトルと応力ベクトルの始点位置の3次元座標(x,y,z)が計測データとして取得され、データとして必要なテクスチャ画像の輝度値を実写画像で取得できる。一連の動作は、テクスチャ画像取得部106で成される。なお、テクスチャ画像取得部106は、図13に示す構成(たとえばXYZステージ304、)のみならず、取得されたテクスチャ画像のデータを保持するメモリ(図示せず)を有していてもよい。
なお、応力ベクトルの方向が計測可能であれば、輝度値メモリ部103のアドレスに応力ベクトルの方向を加えてもよい。輝度値メモリ部103のアドレスが、応力ベクトルの大きさと応力ベクトルの始点位置だけで構成されている場合、応力ベクトルの方向が異なっても同じテクスチャ画像の輝度値が参照されることになる。
また、被写体301に装着するひずみセンサ303が装着された位置は、カメラ302から見て、テクスチャ画像の輝度値が遮蔽されたことになり、撮影できない。通常、ひずみセンサ303は小型であるため、ひずみセンサ303の隣接部分のテクスチャ画像の輝度値で代替できる。しかし、被写体が小さく、ひずみセンサ303の大きさが無視できない場合は、ひずみセンサ303による応力計測とカメラ302によるテクスチャ画像の輝度値撮影を別々に行えばよい。すなわち、外力ベクトル1704の制御は、画像生成装置100によって再現性が保証され、接触子305を何度も同じ動きで制御できる。そこで、同じ変形状態を2回設定し、すなわち被写体に与える外力を同じにした状態を2回設定し、応力計測とテクスチャ画像の輝度値撮影を別々に実行すればよい。なお、応力計測を先に行った後、撮影を行ってもよいし、その逆の順序で行ってもよい。
外力による形状変化が発生する度に、適切にテクスチャ画像の輝度値が取得でき、コンピュータグラフィクスの動画像の写実性が高まる。
さらに、応力計測においては、ひずみセンサ303の装着数を少なくするために、応力分布を有限要素法などの計算機モデルで取得しても構わない。本実施形態は、変形したテクスチャ画像の輝度値を実写画像として取得するイメージベース手法に則るもので、テクスチャ画像の輝度値の取得には計算モデルを用いない。一方、応力取得に関しては、本実施形態とは別に、計算機モデルで応力を取得しても構わない。また、応力計測と応力計算モデルを併用するなど、任意の方法を適用可能である。
なお、図13において、説明の都合上、各機器の制御やデータ送信は有線になっているが、本実施形態ではこれに制限を与えるものではなく、無線通信や記録メディアなど、任意の手段を利用できる。輝度値メモリ部103は、画像生成装置100に内蔵されたハードディスクや半導体メモリなどで実装でき、また、取り外し可能なポータブルメディアである光ディスクなども適用できる。
また、図13において、接触子305は、ひずみセンサ309を1つだけ装着しているが、本実施形態は外力ベクトル1704の本数に制限を与えるものではない。すなわち、外力ベクトル1704の計測点を複数用意し、ある時刻で、複数の外力ベクトル1704が計測されても構わない。
再び図11を参照する。テクスチャマッピング部102は、最近傍検出部108を有し、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)と応力信号105として与えられる応力ベクトルに最も類似するデータを輝度値メモリ部103から検出する。ここで「類似する」とは、応力ベクトルが最も近いことを意味する。具体的には、ポリゴンの座標(x,y,z)に最も近い始点位置を有し、かつ、応力ベクトルの大きさが最も近いことを意味する。
最近傍検出部108は、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)に最も類似している(x,y,z)座標を輝度値メモリ部103のアドレスから検出する。次に、検出された(x,y,z)座標を有するデータのうち、応力信号105として与えられる応力ベクトルに最も類似する応力ベクトルを輝度値メモリ部103のアドレスから検出する。この2段階の検出によって、テクスチャ画像の輝度値が特定される。
本実施形態では、物体の変形情報を力学系のみで取り扱い、ポリゴン座標などの幾何学系では変形情報を取り扱わない。従って、輝度値メモリ部103のアドレスである応力ベクトルの始点位置座標(x,y,z)は、3次元形状信号1102として与えられるポリゴン座標との対応付けが目的であり、物体変形に伴う(x,y,z)座標の更新は不要である。輝度値メモリ部103のアドレスである応力ベクトルの始点位置座標(x,y,z)は固定であり、従って、ひずみセンサ303の装着位置を(x,y,z)座標で計測した後は、測距センサ303での距離計測は不要である。最近傍検出部108が、最初に(x,y,z)座標の最近傍を検出し、引き続き、応力ベクトルの最近傍を検出する2段階方式を取る理由は、ここにある。
(x,y,z)座標の最近傍検出は、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)に最も近い応力ベクトルの始点位置座標(x,y,z)を決定する。引き続き、検出された応力ベクトルの始点位置で、形状に関するデータ探索が行われ、具体的には、応力信号105に最も類似する応力ベクトルが検出される。
たとえば、図13において、被写体301にひずみセンサ303を100個装着し、カメラ302で1000回撮影したとすると、輝度値メモリ部103には、10万個(100点×1000回)のテクスチャ画像の輝度値輝度値が格納されることになる。(x,y,z)座標の最近傍検出は、100個のひずみセンサ303の1つを検出し、引き続き、応力ベクトルの最近傍検出は、1000個の応力ベクトルの中から1つが検出される。
図15は、画像生成装置100の処理の手順を示すフローチャートである。
描画設計ステップ501は、コンピュータグラフィックのデザイナが描画設計を行うステップである。第1に、描画する物体の3次元形状をポリゴンの集合として形状設定部1712に設定する。この形状は、外力を受けていない、変形のない形状として設計する。第2に、描画する物体の弾性をバネ弾性として質点バネ設定部1702に設定する。第3に、描画する物体が受ける外力を外力ベクトル1704として外力設定部1703に設定する。
ステップS502以降は、主として画像生成装置100によって行われる処理である。
テクスチャ画像の輝度値設定ステップ502は、テクスチャ画像の輝度値の撮影と応力ベクトルの計測を行うステップである。コンピュータグラフィックのデザイナは、テクスチャ画像の輝度値を取得するために、被写体301を用意し、ひずみセンサ303の貼り付けとカメラ302、測距センサ313の設置を行う。カメラ302はテクスチャ画像の輝度値を撮影し、ひずみセンサ303が応力ベクトルを計測する。ひずみセンサ303の3次元位置座標(x,y,z)は測距センサ313で計測する。ひずみセンサ303の3次元位置座標(x,y,z)と応力ベクトルをアドレスとして、テクスチャ画像の輝度値をデータとして、輝度値メモリ部103に格納する。一連の動作は、テクスチャ画像取得部106で行い、被写体301の変形は、外力設定部1703から受ける外力ベクトル1704が発生するように、XYZステージが制御される。
ポリゴン座標送出ステップ503では、形状設定部1712は、3次元形状信号1102としてポリゴン座標(x,y,z)を応力演算部101とテクスチャマッピング部102へ送出する。
応力演算ステップ504では、バネ力算出部1706は、質点バネ設定部1702の設定と外力設定部1703からの外力ベクトル1704とに基づいて、ポリゴン座標(x,y,z)の応力ベクトルを演算する。
最近傍検出ステップ505では、テクスチャマッピング部102内の最近傍検出部108は、第1に、ポリゴン座標(x,y,z)に最も近い輝度値メモリ部103の(x,y,z)アドレスを検出する。そして、第2に、当該(x,y,z)アドレスを有するデータの中から、そのポリゴンに対して作用させようとする応力ベクトルが最も近いアドレスを検出し、テクスチャ画像の輝度値を出力する。
投影変換ステップ506では、投影変換部1110は、3次元形状を2次元の投影面に変換して、ディスプレイ表示用の2次元画像を生成する。より具体的には、投影変換部1110は、輝度値メモリ部103のテーブルを参照した結果得られた輝度値を適用してテクスチャ画像の輝度値を変化させ、各ポリゴンの位置にそのテクスチャ画像を貼り付ける。表示ステップ507では、表示部1111は2次元画像をディスプレイに表示する。
以上により、画像生成装置100は、外力による形状変化を、応力演算部101という「力学系」に集約し、ポリゴン位置の移動といった「幾何学系」への変換なしに、物体変形のテクスチャマッピングが可能である。言い換えると、本実施形態における幾何学系の設定は固定であり、変形に伴う状況変化はすべて力学系に集約される。
一方、図7に示したテクスチャマッピングは、バネ力算出部1706で算出されたバネ力ベクトル1707で変形情報を力学系で記述した後、質点座標算出部1708でポリゴン位置の移動といった幾何学系に変換している。従って、外力による形状変化が力学系のみに集約される本実施形態の処理では、力学系から幾何学系への変換を行う場合に必要になるアドレス変換が不要となり、テクスチャマッピングの処理が大幅に簡素化される。そして、テクスチャ画像の輝度値を参照し、形状変化が伴う実写画像をテクスチャマッピングできるため、写実性の高いコンピュータグラフィックスを作成できる。また、高い写実性を維持したまま、テクスチャマッピングの高速処理、演算回路のダウンサイジングという効果を発揮する。言い換えると、テクスチャマッピング処理の負荷を軽くできる。その結果、携帯機器などの様々な機器への搭載や、通信帯域が限られたネットワーク利用などにも応用することが可能になり、汎用性をより高めることができる。
なお、考え方としては、図3に説明した、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定を、対象物が変形した都度、追加設定を行う手順も存在する。すなわち、本実施形態のように形状変化を応力変化で捉える、あるいは、従来技術のようにポリゴン位置の変化で捉える、といった機能を使わずに、都度、コンピュータグラフィックのデザイナが自身で、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を追加していく方法である。しかし、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を、人手で追加することは、作業量から考えて非現実的であり、特に、物体変形を描画するには動画が必要である。従って、本実施形態や従来技術のように、コンピュータグラフィックスを生成する機器が、形状変化に伴う状態変化を何らかの仕組みで捉えることは必然と言える。
(実施形態2)
実施形態1では、対象物の形状をどのように変化をさせるかが予め定められていた。
本実施形態では、対象物の形状変化は予め定められておらず、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測する。そして、その結果を利用し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置を説明する。特に、対象物を変形させながら外力ベクトルを計測し、当該計測データを外力設定部に設定する。
図16は、本実施形態による画像生成装置600を示すブロック図である。なお、図11と同様の部分については同じ符号を付し、詳細な説明を省略する。
画像生成装置600は、形状設定部1712、応力演算部101、外力設定部601、テクスチャマッピング部102、輝度値メモリ部103を有している。画像生成装置600は、デザイナが設定した物体形状や弾性、外力などをもとに、特定した輝度値のテクスチャ画像を変形する物体形状に貼り付ける。
外力設定部601は、テクスチャ画像取得部602から送出される外力計測信号603によって設定される。
テクスチャ画像値取得部602は、人(たとえばデザイナー)が対象物に与えた外力を計測し、これを外力設定部601に送出する。図17は、テクスチャ画像取得部602(図16)の構成例を示す。人が接触子701を移動させて、被写体301を変形させる。XYZステージ702は、支持ポール307と支持ポール308に装着されたエンコーダ703、エンコーダ704、エンコーダ705を用いて、接触子701の(x,y,z)座標を計測する。計測された(x,y,z)座標は、輝度値取得制御部314を介して、データ線315を介して画像生成装置600へ送出される。接触子701が被写体301に加えた外力ベクトル1704は、ひずみセンサ309で計測され、ひずみセンサ303の計測データとともに、応力データ線310を介して画像生成装置600へ取り込まれる。外力ベクトル1704の方向は、接触子701の位置変化から取得する。
撮影の指示のタイミングは任意であり、テクスチャ画像取得部602は、一定間隔(たとえば、1/30秒)でテクスチャ画像の輝度値を連続的に取り込んでも構わない。しかしながら、テクスチャ画像取得部602がひずみセンサ309および/または測距センサ313の変化量を監視し、応力ベクトルの大きさの変化が所定の変化量を上回った際や、応力ベクトルの始点位置の変化が所定の基準値を超えたときに、撮影指示を出す方法なども考えられる。変化量に従ってカメラ302がテクスチャ画像の輝度値を撮影する場合は、接触子701が、いわゆる「カメラのシャッタボタン」として機能する。
図18は、輝度値取得制御部314の調整画面706の表示例を示す。
図18に示す「カメラ設定」の枠801は、カメラ302の設定を行うメニューである。そのうち「シャッタ動作」項目802は、カメラ302のシャッタの動作を設定するメニューである。デザイナがボタン(図示せず)などの入力装置を介して「一定間隔」のラジオボタンを選択すると、カメラ302のシャッタは、1秒間の撮影枚数で決まる時間間隔で連続的にテクスチャ画像の輝度値を撮影する。「応力変化」のラジオボタンを選択すると、カメラ302のシャッタは、指定の応力変化が計測される度にテクスチャ画像の輝度値を撮影する。「形状変化」のラジオボタンを選択すると、測距センサ313の計測データを時系列にトレースし、指定の距離変化が計測される度にテクスチャ画像を撮影し、その輝度値を取得する。「シャッタボタン」のラジオボタンを押すと、カメラ302のシャッタを押すたびにテクスチャ画像の輝度値が撮影される。
図18に示す「接触子設定」の枠803は、接触子701の設定を行うメニューである。そのうち、「動作指示」項目804は、接触子の動きの指定方法を設定するメニューである。「インポート」のラジオボタンを押すと、接触子の動き方をテクスチャ画像取得部602以外の外部から指示を受ける。外部からの指示とは、たとえば、外力設定部601である。「なし(人による動作入力)」のラジオボタンを押すと、接触子の動き方の指示はなく、人が接触子を手に持って動かし、XYZステージ702は、エンコーダ703、704、705で接触子の動きを計測する。
以上により、コンピュータグラフィックスのデザイナは、外力ベクトル1704を直接、デザインする必要はなく、実物の変形具合を視覚的に、また触覚的に確認しながら、被写体301への加圧度合いを調整することで外力設定部601を設定できる。たとえば、同じ外力ベクトルを硬さの異なる対象物に与えれば、柔らかい対象物は大きく変形する。変形の度合いが大きければ、テクスチャ画像の輝度値の変化も大きくなり、時間的により細かくテクスチャ画像の輝度値を撮影する必要がある。逆に、硬い対象物は変形が小さいため、テクスチャ画像の輝度値の撮影枚数は少なくできる。デザイナの描画意図として設計される変形の具合は、実物で確認しながら、外力設定部601は、応力ベクトルの計測によって設定される。従って、コンピュータグラフィックの物体変形が実物のように自然になり、かつ、写実性の高いテクスチャ制作が可能になる。
なお、図16における被写体に対する外力の与え方と外力ベクトルの計測方法は、一例であって、ひずみセンサが装着されたグローブを手に装着して、複数本の指で加圧するなど、任意の方法を適用できる。ただし、外力の付与と外力ベクトルの計測を行うがために、被写体301とカメラ302の間に遮蔽物が入り、テクスチャ画像の輝度値が撮影できない場合があり得る。その場合は、上述したように、一旦、外力ベクトル1704と応力ベクトルを計測し、別途、遮蔽の少ないXYZステージで被写体301を変形し、カメラ302でテクスチャ画像の輝度値を撮影する。このとき、それぞれにおいて被写体に与える外力を同一とすることによって、応力計測のセンサなどが被写体を必要以上に隠すことなく、テクスチャ画像の輝度値を撮影できる。
(実施形態3)
本実施形態では、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置について説明する。特に、物体を変形させる外力が、画像生成装置とは別に設けられた入力機器から入力される。
図19は、本実施形態による画像生成装置900のブロック図である。なお、図11と同様の部分については同じ符号を付し、詳細な説明を省略する。
画像生成装置900は、形状設定部1712、応力演算部101、外力受信部601、テクスチャマッピング部102、輝度値メモリ部103を有し、デザイナが設定した物体形状や弾性をもとに、変形する物体形状にテクスチャ画像の輝度値を貼り付ける。物体を変形させる外力は、画像生成装置900の外部から受信する。
外力受信部901は、ネットワーク902を介して外力送信部903から、外力ベクトル1704を取得する。外力送信部903は、たとえば、あらかじめプログラミングされた外力生成モデルから外力ベクトル1704を得て送信したり、あるいは、ひずみセンサの計測データを送信する。
外力生成モデルは、具体的には、コンピュータでの演算を想定し、ネットワークを介した力覚情報の遠隔コミュニケーションを可能にする。
一般に、外力生成モデルは、有限要素法のように、対象物を細かなセルに分割して、セルごとに外力生成モデルを設定する。モデルパラメータ(たとえば、弾性率など)の設定は、各セルに成され、その総体として対象物の形状が決定される。従って、大量に設定された小さなセルごとにモデルパラメータを設定するため、通常、計算量は膨大であり、大規模な計算資源を利用することになる。画像生成装置900は、テクスチャマッピングに特化し、演算負荷が大きい外力ベクトル1704の設定は、画像生成装置900の外部に切り出す。
たとえば有限要素法においては、要素ごとに種々の状況下でどのような力が加わるかを計算する必要があり、計算の負荷が非常に大きい。そのような負荷が大きい計算を、画像生成装置とは異なる外部のコンピュータを利用して行い、計算結果である外力の与え方を画像生成装置900に設定すればよい。
ひずみセンサを外部送信部903に用いる場合は、たとえば、ビデオゲームの入力端末などを想定する。表示部1111にビデオゲームの映像が表示されており、ビデオゲームのプレーヤーはビデオゲームの映像を見ながら、ゲームプレーに関わる様々なアクションを手に持ったひずみセンサから入力する。たとえば、物体を押しつぶす動作を入力する場合は、手に持ったひずみセンサをテーブルに押し付けて、より大きな外力を外力送信部903から画像生成装置900へ入力する。画像生成装置900は、外力受信部901で受信した外力ベクトル1704に従って、応力演算部101で応力信号105を計算し、テクスチャマッピング部102が形状変形に伴ったテクスチャ画像の輝度値を形状にマッピングする。
ビデオゲームを例に説明を行ったが、これは一例であり、たとえば、医療応用も可能である。たとえば、ひずみセンサが内視鏡に装着され、臓器の硬さをひずみセンサで計測し、臓器の変形の様子をコンピュータグラフィクスで描画し、医師は表示部1111を見て視覚的に確認することができる。対象物が遠隔地にあったり、体内にあったり、人が入れない危険な場所にあったり、何らかの制約で人が直接、対象物を触れない場合に、外力送信部903を画像生成装置900から切り離す。
以上のように、対象物が手元にない場合、テクスチャ画像の輝度値は対象物そのものから得ることはできない。そこで、テクスチャ画像取得部106は、代替の被写体を用意し、これを撮影・計測して輝度値メモリ部103に必要な情報を登録することになる。たとえば、内視鏡による臓器の変形を描画する場合、テクスチャは臓器であることが特定されているため、あらかじめ準備しておくことは可能である。また、過去に撮影した映像をそのままテクスチャ画像の輝度値に用いることもできる。ビデオゲームの場合は、描画されるゲーム画面のすべてを用意して輝度値メモリ部103に格納しておく。
仮に、輝度値メモリ部103に登録されていない対象物の外力ベクトル1704が与えられたとしても、最近傍検出部108は、最も類似する応力ベクトルを検出する。そのため、テクスチャマッピングの処理が停止することはなく、何からのテクスチャ画像の輝度値を形状に貼り付けて描画を継続する。表示部1111に表示された描画画像の写実性を高めたい場合は、できるだけ対象物に近い代替の被写体を用意して、テクスチャ画像取得部106からテクスチャ画像の輝度値を追加する。
なお、ネットワーク902は、インターネットのような広域のデータ通信のみならず、コンピュータと周辺機器をつなぐUSB(Universal Serial Bus)やBluetoothのような個人レベルのローカルなデータ通信も含む。また、SD(Secure Digital)メモリカードのような記録メディアを用いて、ネットワーク902と等価な機能を実現でき、本実施形態は機器をつなぐ手段を拘束するものではなく、任意の手段を利用できる。
以上により、画像生成装置900以外で作成された外力ベクトル1704を受信して、テクスチャマッピングを実行でき、輝度値メモリ部103に、あらかじめ、対象物相当のテクスチャ画像の輝度値が用意できた場合は、写実性の高いコンピュータグラフィックスを作成可能である。
上述した各実施形態による画像生成装置の動作は、画像生成装置に搭載されているコンピュータ(プロセッサ)が、RAM(図示せず)に格納されているコンピュータプログラムを実行することによって実現される。画像生成装置は、このコンピュータプログラムにしたがって、上述の動作を行う。たとえば、実施形態1による画像生成装置100は、図15のステップS502からステップS506までの処理を規定するコンピュータプログラムによって動作する。そのようなコンピュータプログラムは、CD−ROM等の記録媒体に記録されて製品として市場に流通され、または、インターネット等の電気通信回線を通じて伝送される。なお、半導体回路にコンピュータプログラムを組み込んだDSP等のハードウェアとして実現されてもよい。
上述の実施形態に記載の発明により、映像表現力の向上を図ることが可能になる。
加えて、実物を用いた実写映像で映像制作をするケースをコンピュータグラフィックスに置き換えることができ、天候や撮影場所などの物理制約から解放され、さらに、実写では危険が伴うようなカメラアングルでの映像制作が可能となる。
以上のように本発明は、映画制作を始め、テレビ、インターネット、雑誌等のメディア広告や、製品カタログなど、様々な媒体で頻繁に利用されているコンピュータグラフィックスの写実性を高め、映像表現力や広告効果の向上に大きく寄与する。特に、形状変化を描画できる動画像のコンピュータグラフィックスは、形状変化を捉えた実写画像により写実性の高いテクスチャを表現できるため、コンピュータグラフィックスの利用者層の拡大につながる。
100 画像生成装置
101 応力演算部
102 テクスチャマッピング部
103 輝度値メモリ部
108 最近傍検出部
1110 投影変換部
1111 表示部
1702 質点バネ設定部
1703 外力設定部
1706 バネ力算出部
1712 形状設定部
本発明は、コンピュータグラフィックスの作成に用いられるテクスチャマッピング技術に関する。
近年、計算機(コンピュータ)の性能向上に伴い、写実性の高いコンピュータグラフィックスの制作環境が整いつつある。特に、グラフィック処理専用に動作するGPU(Graphic Processing Unit)の性能は飛躍的に向上しており、リアルタイムで動画を演算する能力を有するGPUが容易に入手可能になった。また、コンピュータグラフィックスが利用される機会も増え、映画を始め、テレビ、インターネット、雑誌等のメディア広告や、製品カタログ、ニュース番組での説明映像など、あらゆる媒体でコンピュータグラフィックスが利用されている。
製品カタログでは、「製品」という実在する物体をコンピュータグラフィックスで描いた画像や映像が掲載される。コンピュータグラフィックスを利用するメリットは、実物を実際に用意して撮影する際の様々な制約から解放されることにある。たとえば、車の走行シーンをビデオ撮影したい場合、走行場所をまず決める必要がある。このとき、広告効果を損なわないようにするためには、特定の条件を満たすロケ場所の確保が必要になる。また、実写は天候に左右され、撮影期間の長期化は、コストアップ、製品の販売計画にも支障をきたす。また、広告効果を高めるために、映像表現を積極的に活用することが有効な場合もある。たとえば、実写では危険が伴うようなアングルで映像を作成したい場合にも、コンピュータグラフィックスを有効に活用できる。
近年、様々なコンピュータグラフィックスの制作方法が開発されている。そのうちの一つとして「テクスチャマッピング」が知られている。「テクスチャマッピング」は、コンピュータによって物体表面の模様や光沢感のリアリティを高める技術であり、あたかも実物のように見える「写実性」を高めることが可能である。「テクスチャ」とは、物体表面が有する模様や光沢感、質感などの総称である。たとえば非特許文献1は、テクスチャマッピングに関する技術を開示している。
図20はテクスチャマッピングの工程の一例を示す。物体の形状(円柱)1001に合わせて物体表面のテクスチャ1002を貼り付けることにより、写実性の高い画像1003が生成される。
テクスチャマッピング技術では、2次元画像のテクスチャを3次元形状に貼り付ける際、通常、四角形であるテクスチャ画像の輝度値を3次元形状に従って変化させる。図20の例では、四角形のテクスチャ画像1002の輝度値を、円柱1001の側面の輝度値に応じて変化させている。その結果、得られた画像1003では、円柱1001に貼り付けられた、丸みを帯びたテクスチャ画像の輝度値は円柱1001の形状にしたがって変化する。そのため、見かけ上の違和感はなくなる。すなわち写実性の高い画像1003が得られる。
コンピュータグラフィックスは、元来、光源からの光が物体に反射され、視点に届いた光の輝度値を計算機で求めることで作成される。実物のようなテクスチャを物体表面に作成するには、テクスチャ画像としてデジタルスチルカメラ等で撮影された実写画像を用い、その実写画像の輝度値を利用することが一般的である。
近年の写実性に対する要求の高まりから、すべてをモデルベースで計算する限界が明らかになっている。たとえば、画像の高精細度への要求が高まり、処理すべき画素数が増大したことにより、計算負荷が爆発的に増加する。これにより、モデルベースでは記述し切れない限界も表出している。
近年のコンピュータグラフィックスの利用範囲の広がりと、写実性への要求の高まりから、実写画像を撮影、あるいは計測して、テクスチャマッピングに利用するイメージベースが多用されている。イメージベースは、コンピュータグラフィック制作において必須となっている。
「明解 3次元コンピュータグラフィックス」、荒屋真二、共立出版、pp.24−26, pp.127−132, pp.144−146, 2003年
しかしながら、従来は、外力を受けて物体形状が変形することに対応可能なテクスチャマッピング手法は存在しなかった。言い換えると、予め与えられた形状に対してはテクスチャ画像の輝度値を変化させることは可能であるが、物体形状が変形する場合にその変形に対応してテクスチャ画像の輝度値を変化させることは行われていなかった。その結果、テクスチャマッピングの写実性が劣化するという課題を有していた。
テクスチャマッピングの写実性を高めるには、実物を撮影、あるいは計測して得たデータを直接用いることが肝心であり、これがイメージベース手法の特徴である。しかしながら、従来の技術は、実写画像として利用するテクスチャ画像の輝度値が固定であり、形状変化した物体は利用されていない。その結果、たとえば、光源の光を直接反射する鏡面反射のテクスチャが不自然になったり、形状変化によって視点からは遮蔽されて見えないはずのテクスチャが貼り付けられたり、実物とは異なる不自然なテクスチャが生成され、写実性が劣化するという問題が存在した。
本発明は上記課題を解決するためになされたものであり、その目的は、テクスチャを貼り付ける形状が変化しても、写実性の高いテクスチャマッピングを実現することにある。
本発明による画像生成システムは、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムであって、外力を与えて変形させた被写体のテクスチャ画像のデータを保持する取得部と、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを保持するメモリ部と、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するテクスチャマッピング部とを備えている。
前記取得部は、さらに外力を計測し、前記テクスチャマッピング部は、計測された前記外力から、前記対象物のポリゴンに対して作用させる応力ベクトルを算出し、前記テーブルを参照してもよい。
前記取得部は、前記外力を与えて変形させた被写体のテクスチャ画像を撮影して前記テクスチャ画像のデータを生成し、前記被写体に与えられた外力に基づく応力ベクトルの大きさおよび始点位置を計測して、前記応力ベクトルの情報を生成し、前記メモリ部は、前記応力ベクトルの情報を前記テーブルに格納してもよい。
前記画像生成システムは、前記対象物の3次元形状に対して複数のポリゴンを設定する形状設定部と、前記外力によって発生する、各ポリゴンの応力ベクトルを算出する応力演算部と、各ポリゴンの位置に関する位置情報および応力ベクトルに基づいて、前記応力ベクトルに最も近いアドレスを有する前記テクスチャ画像の輝度値を特定する検出部をさらに備え、前記メモリ部のテーブルでは、前記応力ベクトルの大きさおよび始点位置がアドレスとして保持され、前記メモリ部は、前記テクスチャ画像の輝度値を前記対象物のポリゴンの輝度値として出力してもよい。
前記取得部は、ひずみセンサと測距センサとを有しており、前記ひずみセンサは、前記応力ベクトルの大きさを計測し、前記測距センサは、前記応力ベクトルの始点位置を計測してもよい。
前記取得部は、前記被写体に与える外力を同じにした状態で、前記応力ベクトルの計測、および、前記テクスチャ画像の撮影を個別に行ってもよい。
前記応力ベクトルの大きさの変化が所定の基準を超えた場合、あるいは応力ベクトルの始点位置の変化が所定の基準を超えたとき、前記取得部は、前記テクスチャ画像を撮影してもよい。
前記ひずみセンサは、前記被写体に接触して配置されて前記外力を計測し、前記応力演算部は、計測された前記外力の情報を受け取り、前記外力によって発生する、各ポリゴンの応力ベクトルを算出してもよい。
前記応力演算部は、ポリゴン単位で設定した質点および前記質点をつなぐバネ弾性を利用したモデルにより、前記応力ベクトルを算出してもよい。
前記画像生成システムは、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力する投影変換部をさらに備えていてもよい。
本発明による画像生成方法は、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムにおいて利用される方法であって、外力を与えて変形させた被写体のテクスチャ画像のデータを用意するステップと、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを用意するステップと、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するステップと、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力するステップとを包含する。
本発明によるコンピュータプログラムは、対象物のポリゴンの輝度値を、テクスチャ画像を参照して決定する画像生成システムのコンピュータによって実行されるコンピュータプログラムであって、前記コンピュータプログラムは、前記コンピュータに対し、外力を与えて変形させた被写体のテクスチャ画像のデータを用意するステップと、複数のポリゴンの各々について、外力が与えられていないポリゴンの位置に関する位置情報、前記ポリゴンの位置に与えられた外力に基づく応力ベクトルの情報、および、前記外力が与えられたときのテクスチャ画像の輝度値の情報が対応付けられたテーブルを用意するステップと、外力を受けていない対象物のポリゴンの位置の情報、および、前記対象物のポリゴンに対して作用させる応力ベクトルの情報に基づいて前記テーブルを参照するステップと、参照の結果得られた輝度値の情報に基づいて、前記対象物のポリゴンに対して適用されるテクスチャ画像の輝度値を変化させ、前記テクスチャ画像を出力するステップとを実行させる。
本発明による記録媒体は、上述のコンピュータプログラムを記録した記録媒体であってもよい。
本発明によれば、変形を生じた実物を実写してテクスチャ画像の輝度値を取得するため、物体の接触によって生じる変形を写実性の高い動画のコンピュータグラフィックスで表現できる。これにより、映像表現力の向上を図ることが可能になる。
2次元画像のテクスチャマッピングの技術を示すブロック図である。
ポリゴンの説明図である。
テクスチャマッピングにおけるポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を説明する図である。
代表点探索部1106の機能を説明する図である。
3次元座標(x,y,z)を用いたテクスチャマッピングを説明する図である。
3次元座標(x,y,z)でテクスチャ画像の輝度値の輝度値を取得するテクスチャマッピングのブロック図である。
外力を受けて物体形状が変形するモデルを組み込んだテクスチャマッピングを示すブロック図である。
質点バネ設定部1702の機能を説明する図である。
アドレス変換テーブル1901を説明する図である。
テクスチャマッピングの工程の一例を示す図である。
実施形態1による画像生成装置100の構成を示すブロック図である。
形状変化に伴って発生する応力ベクトルを説明する図である。
テクスチャ画像の輝度値の取得方法の例を示す図である。
被写体までの距離を計測する方法の例を示す図である。
画像生成装置100の処理手順を示すフローチャートである。
実施形態2による画像生成装置600の構成を示すブロック図である。
テクスチャ画像取得部602の構成例を示す図である。
輝度値取得制御部314の調整画面706を示す図である。
実施形態3による画像生成装置900の構成を示すブロック図である。
2次元画像のテクスチャマッピングを説明する図である。
以下、添付の図面を参照して、本発明による画像生成システムの実施形態を説明する。以下の実施形態1および2においては、複数の構成要素が1つの筐体内に設けられた、画像生成装置として実現される画像生成システムの例を説明する。一方、実施形態3においては、複数の構成要素がネットワークで接続された画像生成システムの例を説明する。
(実施形態1)
本実施形態では、初めにテクスチャを貼り付けるポリゴンの座標からテクスチャ画像の輝度値を取得する画像生成装置を説明する。この画像生成装置は、3次元座標系を、コンピュータグラフィックスが表現される2次元座標系に変換した後、2次元座標とテクスチャ画像の輝度値とを対応付けたテーブルを参照する。その結果、テクスチャの貼り付け位置に応じた輝度値を得ることができる。
まず、上記画像生成装置を説明する。その後、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置を説明する。
なお、「ポリゴン」とは、3次元コンピュータグラフィックスで立体を表現する際に用いられる、多角形の平面データを意味する。物体表面は、座標データに基づいてポリゴンの各頂点をつなぐことによって、表現されている。個々のポリゴンが小さければ小さいほど、その集合として描かれた物体は滑らかに表現できるが、同時に膨大な量の頂点座標データを大量に計算する必要があるため、演算処理や描画により大きな処理負荷がかかる。
図1は、画像生成装置の構成、および、構成要素間のデータフローを示すブロック図である。この図では、テクスチャマッピングを中心とした、コンピュータグラフィックスの作成の流れ(図中の矢印)を示している。画像生成装置は、図1における表示部1111を除いては、コンピュータであるプロセッサと、コンピュータプログラムとによって実現されてもよいし、テクスチャマッピング処理に特化されたプロセッサとによって実現されてもよい。
画像生成装置のジオメトリ演算部1101は、物体の位置や形状などを3次元的に定義し、3次元形状信号1102を出力する。通常、物体形状は多数のポリゴンに分割して記述する。図2は、山形の形状を四角形のポリゴンに分割した例である。ポリゴン1つ1つは、直線から成る四角形であるが、ポリゴンのサイズを小さくするほど曲線を滑らかに表現できる。このように、3次元形状信号1102は、複数のポリゴンの座標(x,y,z)から成る。なお、本明細書においてはポリゴン形状を四角形としているが、これは一例である。ポリゴン形状は他の多角形、たとえば三角形であってもよい。
テクスチャマッピング部1103は、輝度値メモリ部1104が有するテクスチャ画像の輝度値を参照してポリゴンの輝度値を算出する。3次元形状信号1102として取得したポリゴンの座標(x,y,z)は、図3に示すように、テクスチャ画像の輝度値の座標(u,v)に変換される。図3の例では、説明の明確性を高めるために、テクスチャを文字Eとした。テクスチャ画像の輝度値1301は、テクスチャマッピングによって山形の物体形状1302に貼り付けられる。たとえば、文字部に位置する点1303の座標(x,y,z)は点1304の座標(u,v)に対応し、従って、点1303のポリゴンの輝度値は黒を示す0に決定される。一方、背景部に位置する点1305の座標(x,y,z)は点1306の座標(u,v)に対応し、従って、点1305のポリゴンの輝度値は白を示す1に決定される。
ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係は、デザイナが設計時に全組み合わせに対して与えても構わない。しかし、写実性の高い画像、映像を作成する場合、画素数は膨大であり、1組1組、デザイナが対応関係を指定するのは現実的ではない。そこで、一般的には、代表的な対応関係をデザイナが与え、これをもとに、計算機が補間演算等を用いて、全画素の処理を実行する。たとえば、図4の例では、テクスチャ画像の輝度値1301上の点1304、点1306、1401と物体形状1302上の点1305、点1402、点1403が、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を指定する代表点である。指定箇所に属さないポリゴン、たとえば、ポリゴン1404の輝度値は、近傍に位置する点1305、点1402、点1403が有するポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係から補間によって算出する。具体的には、ポリゴン1404の輝度値Lは、下記数1に示すように、ポリゴン1404と点1305の距離D1、ポリゴン1404と点1402の距離D2、ポリゴン1404と点1403の距離D3の逆数で重み付けして線形補間を用いる。
ここで、Liは、テクスチャ画像の輝度値上の点1304、点1306、点1401の輝度値である。
以上より、テクスチャマッピング部1103は、補間演算に必要なポリゴンの輝度値を得るために、ポリゴン座標信号1105を輝度値メモリ部1104に送る。図4の例では、テクスチャマッピングを行う対象は点1404のポリゴンである。この点1404の輝度値を決めるために、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係がわかっている代表点1305、1402、1403の輝度値を輝度値メモリ部1104から取得する。
代表点探索部1106は、テクスチャマッピングを行う対象の点1404の近傍の代表点を探索し、点1305、点1402、点1403を出力する。(x,y,z)→(u,v)変換部1107は、コンピュータグラフィックスのデザイナが設定したポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を有し、この対応関係に従って、点1305、点1402、点1403の座標を(u,v)座標に変換する。最近傍検出部1112は、代表点の(u,v)座標に最も近い(u,v)座標を輝度値メモリ部1104から検出し、ポリゴン座標信号1105として出力する。輝度値メモリ部1104は、ポリゴン座標信号1105として受けた(u,v)座標をデータアドレスとしてテクスチャ画像の輝度値を取得し、テクスチャ輝度信号1108として、テクスチャマッピング部1103に送り返す。輝度補間部1109は、数1を演算し、点1404のポリゴンの輝度値を算出する。
投影変換部1110は、3次元形状を2次元の投影面に変換して、表示部の2次元画像を生成する。非特許文献1が開示するように、投影変換には、遠近感が得られる透視投影法など複数の手法が存在する。
表示部1111は、たとえば液晶表示装置であり、液晶ディスプレイにコンピュータグラフィクスの2次元画像を表示する。
以上により、実写画像を形状に貼り付けて、リアリティの高いテクスチャを生成できる。
しかし、実写画像の光沢や陰影は、2次元形状の実物から得たものであり、3次元の立体構造を持つ実物の光沢や陰影とは異なる。たとえば、鏡面反射を持つ被写体は、光源からの光を正反射するため、局所的に輝度値の高い陰影を有し、光沢感や質感を決める要素となる。2次元のテクスチャ画像の輝度値1002から円柱形状に貼り付けられたテクスチャ画像の輝度値1003は、2次元画像としての光沢や陰影を持ち、3次元形状が折りなす光沢や陰影とは異なる。
そこで、テクスチャ画像の輝度値の光沢や質感が実物と合うように、テクスチャ画像の輝度値を3次元座標とともに計測する。すなわち、図5に示すように、3次元形状の被写体1501をカメラ302で撮影してテクスチャ画像の輝度値を得る。加えて、測距センサ313によって、被写体1501までの距離を計測し、テクスチャ画像の輝度値の画素ごとに、(x,y,z)座標を取得する。テクスチャ画像の輝度値1502は、画素ごとに、(x,y,z)座標と輝度値を有することになり、被写体1501上の計測点(x,y,z)の輝度値を示す。テクスチャマッピングは、円柱1001のポリゴンの座標(x,y,z)に最も近いテクスチャ画像1502の輝度値の(x,y,z)座標を検出し、そのテクスチャ画像の輝度値を描画画像1505に貼り付ける。
上述の処理を実現するための構成を図6に示す。図6は、ポリゴンの座標に基づいてテクスチャ画像の輝度値を取得する画像生成装置の構成、および、構成要素間のデータフローを示すブロック図である。画像生成装置は、図5で説明したポリゴンの座標(x,y,z)でテクスチャ画像の輝度値を取得するテクスチャマッピングを行う。輝度値メモリ部1601には、あらかじめ計測された被写体1501上の計測点の(x,y,z)座標と輝度値とが登録されている。最近傍検出部1602は、3次元形状信号1102で与えられるポリゴンの座標(x,y,z)に最も近い計測点を検出し、これをポリゴン座標信号1105として輝度値メモリ部1601にアドレスする。
これにより、図1に示した2次元のテクスチャ画像の輝度値をマッピング方法では必要となる、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定が不要となる。具体的には、図1における代表点探索部1106と(x,y,z)→(u,v)変換部1106は不要になり、代わって、最近傍検出部1602が輝度値メモリ部1601をアクセスする。また、輝度値メモリ部1601から取得したテクスチャ画像の輝度値そのものがマッピングされるため、輝度補間部1109も不要となる。
従って、図6は、テクスチャ画像の輝度値を実物から実写画像で取得するのみならず、テクスチャ画像の輝度値を取得された(x,y,z)座標も計測するため、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定が不要になる。
これまでは、静的な被写体を対象としてテクスチャ画像の輝度値を変化させる処理を説明した。
コンピュータグラフィックスが、映画や広告、ニュースなどの様々な媒体で利用される際に、複数のフレーム画像から成る動画像として作成されることが多い。動画像を用いて物体の動きや視点位置の移動などを行うと、表現力や説明の分かりやすさを高める効果がある。このような動画像表現において、物体と物体の接触による「物体の変形」は、多くの場面で求められる描画要素であり、コンピュータグラフィックスの写実性向上に大きく寄与するファクタである。上述したテクスチャマッピングを物体の変形に対応させることが可能であれば非常に好ましいといえる。「物体の変形」に対応するためには、ジオメトリ演算部1101(図1、図6)には物体の変形に関係する演算を行う機能が必要になる。
これらを考慮して、次に、変形を伴う物体のテクスチャマッピングを説明する。
図7は、外力を受けて物体形状が変形するモデルを組み込んだテクスチャマッピングを行う画像生成装置のブロック図である。ジオメトリ演算部1701は、図2に示したポリゴンの組み合わせによる形状記述に加えて、図8に示すように、質点1801とバネ1802を持つ。
「真空内での布の挙動の比較による布シミュレーションの精度検証」(田川和義、林宏卓、木島竜吾、小鹿丈夫、日本バーチャルリアリティ学会 第7回大会論文集,pp.361−364,2002年)によれば、物体の弾性をバネの弾性に離散化し、外力に対する引っ張り回復力や曲げ回復力などを設定して、物体の弾性を記述する。重量特性に相当する質点は、通常、ポリゴン頂点に設けられ、従って、バネはポリゴン頂点をつなぐポリゴンの辺に配置される。
上述の文献では、物体として布を想定している。しかしながら、たとえば、「ハプティック・テクスチャを用いた医療トレーニングシステムの開発」(田村信彦,津村徳道,三宅洋一,田辺政裕,山浦晶、VR医学, Vol. No.1, pp.30−37, 2004年)が開示するように、皮膚や臓器など、弾性を有する様々な物体に適用できる。引っ張り回復力Fstretchは下記数2で、曲げ回復力Fbendは下記数3で、それぞれ表現できる。すべてのバネに働く力を求め、各質点に働く力の合力を計算し、その後、下記数4で質点iの座標xiを求める。
数2において、T()は伸び率−引っ張り回復力の関数、lは計算時点でのバネの長さ、l0はバネの初期長、ベクトルLijは質点Piから質点Pjに向かう単位方向ベクトルを表わす。数3において、B()は曲率−モーメントの関数、Kは曲率、ベクトルNiは質点Piと質点Pjを結ぶ直線に垂直な単位法線ベクトルを表わす。数4において、miは質点iの質量、ベクトルviは質点iの速度ベクトル、ベクトルFiは質点iの力ベクトル、ベクトルFiは質点iの力ベクトル、nは現時刻、n+1は次時刻を表わす。
上述のモデルによると、形状変化を一般化して表現することが可能である。すなわち、物体が外力を受けて変形した際には、形状変化を質点の移動として記述することが可能である。この形状変化に関連して、輝度値メモリにアクセスするためのアドレス(座標値)を変更し、その座標値における輝度値を読み出す。このように、座標値によって示されるアドレスを変更することで、適切な輝度値を採用したテクスチャマッピングが可能である。
ジオメトリ演算部1701は、変形後の質点の新しい座標を算出する。具体的には、ジオメトリ演算部1701における、形状設定部1712で物体形状を設定し、質点バネ設定部1702で質点の位置と質量、バネの構造と弾性を設定し、外力設定部1703から外力ベクトル1704を受け、質点位置更新部1705で数2から数4を演算して変形後の質点の新しい座標を算出する。
質点位置更新部1705は、バネ力算出部1706で、たとえば数2や数3を用いてバネに働く力Fiをバネ力ベクトル1707として算出する。そして、質点座標算出部1708で数4により、力ベクトルFiが質点の位置情報xiに変換される。すなわち、物体が変形する原因は力(外力ベクトル1704)で与えられる。そして、質点座標算出部1708が力学系のバネ力ベクトル1707を幾何学系の3次元形状信号1102に置き換えて、質点の移動として物体変形を記述する。
ところで、輝度値メモリ部1720に格納されている計測点(x,y,z)の輝度値は、質点位置更新部1705から見ると、現在時刻nに対応し、次時刻n+1には対応しない。そこで、質点座標算出部1708が行う質点の移動による物体変形の記述を、輝度値メモリ部1720に対しても施す必要がある。具体的には、輝度値メモリ部1720をアクセスするアドレスを質点の移動に呼応して変更する。
アドレス変換部1710は、物体の変形に伴う輝度値メモリ部1720のアドレス変更を行う。質点座標算出部1708が質点の移動(すなわち、座標xi,n+1とxi,nが異なること)を検出すると、質点の移動情報を質点移動信号1711としてアドレス変換部1710へ送る。そして、現時刻nの(x,y,z)座標が次時刻n+1の(x,y,z)座標を参照するよう、アドレス変換テーブルを作成する。図9は、アドレス変換テーブル1901の一例を示す。たとえば、データ1902は、現時刻nにおいて質点が、(x,y,z)=(20,100,90)にあったが、次時刻n+1では、(x,y,z)=(20,100,75)に移動することを示している。
最近傍検出部1602は、現時刻nにおいて、3次元形状信号1102として受け取る(x,y,z)=(20,100,90)の最近傍を検出すれば、適切なテクスチャ画像の輝度値が得られる。しかし、次時刻n+1でもそのまま、同じ位置(x,y,z)=(20,100,90)で輝度値メモリ部1720を参照すると、z方向に25画素ずれた誤ったテクスチャ画像の輝度値を参照してしまう。
そこで最近傍検出部1602は、次時刻n+1では、(x,y,z)=(20,100,75)でアドレス変換テーブル1901を参照する。その結果、データ1902が選ばれ、現時刻nにおいて、(x,y,z)=(20,100,90)にあった計測点のテクスチャ画像の輝度値の輝度が取得される。
アドレス変換テーブル1901は、次時刻n+1に引き続き、時刻n+2、時刻n+3と都度、(x,y,z)座標の更新が必要になる。従って、アドレス変換テーブル1901における次時刻n+1の列1903は、次時刻n+1以降、質点の移動が発生するたびに、上書きで(x,y,z)座標を更新することになる。
一方、現時刻nの列1904に関しては、輝度メモリ部1601との固定的なつながりを維持するため、(x,y,z)座標の書き換えは発生しない。そこで、質点座標算出部1708は、時刻がn+1、n+2と進んでいったとしても、時刻nでの(x,y,z)座標は保持し続けなければならない。数4が示すように、質点座標算出部1708は、連続する時間2つ分の変化を記述するものであり、過去の情報は保存されない。そこで、質点座標算出部1708は、輝度値メモリ部1720が作成された時刻nでの計測点情報を保持しておく必要がある。たとえば、時刻n+10におけるテクスチャマッピングを実行する場合は、次時刻n+1の列1903には、時刻nから時刻n+10の間に移動があった質点の、最新時刻における(x,y,z)座標が登録される。
ところで、アドレス変換テーブル1901の更新作業が完了するまでは、テクスチャマッピングの処理を一時停止する必要がある。そこで、質点座標算出部1708が質点の移動を検出したら、質点移動識別信号1712をONにして、最近傍検出部1602の動作を一時停止する。質点座標算出部1708が全質点のチェックを終えたら、アドレス変換テーブル1901の更新動作は完了する。そして、質点移動識別信号1712をOFFにして、最近傍検出部1602の一時停止を解除し、テクスチャマッピングの処理を再開する。図10は、アドレス変換部1710がポリゴン座標信号1105をアドレスとして用いて輝度メモリ部1601を参照し、テクスチャ画像の輝度値を取得することができる。
以上により、物体が外力を受けて変形した際も、形状変化を質点の移動として記述し、テクスチャ画像の輝度値メモリをアクセスするアドレスを変更することで、テクスチャマッピングが可能である。
これまでの例では、質点の位置の変化に応じてアドレス変換テーブルを修正し、適切なテクスチャ画像の輝度値を得ていた。しかしながら、素材の位置の変化と応力の大きさとの間には関連性があるため、先に説明した座標変換に代えて、応力ベクトルを利用することが可能である。すなわち、外力による形状変化を、ポリゴン位置の移動といったアドレス変換によって特定せず、応力に基づいて特定することが可能である。たとえば柔らかい素材は座標が変化しやすく、その分、引っ張り回復力および曲がり回復力(すなわち応力)が大きくなる。逆に、固い素材は座標が変化しにくいため、応力は比較的小さい。
図11は、本実施形態による画像生成装置100のブロック図を示す。
画像生成装置100は、形状設定部1712、応力演算部101、外力設定部1703、テクスチャマッピング部102、輝度値メモリ部103を有している。
画像生成装置100は、デザイナが設定した物体形状や弾性、外力などをもとに、輝度値メモリ部103に格納されているテーブルを参照する。具体的には、複数のポリゴンの各々についての、各ポリゴンの位置座標(アドレス)に関する位置情報、各ポリゴンの位置に作用する応力ベクトルの情報、および、外力が加えられたときのテクスチャ画像の各輝度値の情報が対応付けられたテーブルを参照する。参照の結果得られた輝度値を、テクスチャ画像の輝度値として採用し、変形する物体形状にその輝度値のテクスチャ画像を貼り付ける。
形状設定部1712は、図3に示した物体形状1302を設定し、外力を受けていない変形なしの形状を設定する。この物体形状1302は、3次元形状信号1102として質点バネ設定部1702に与えられる。
応力演算部101は、質点バネ設定部1702、バネ力算出部1706を有し、3次元形状信号1102として与えられたポリゴンに対して応力を算出する。
質点バネ設定部1702は、図8に示したように、ポリゴン頂点に質点を設定し、質点をつなぐバネ特性を設定する。本実施形態において、バネ特性の設定方法は任意であり、たとえば、非特許文献2が開示する数2や数3を利用して、引っ張り回復力Fstretchや曲がり回復力Fbendの算出方法を設定する。
バネ力算出部1706は、質点バネ設定部1702の設定に従い、数2や数3の演算を実行して力ベクトルFiを算出し、これを応力信号105として出力する。すなわち、外力ベクトル1704が、バネを伸ばしたり、あるいは縮めたりして、数2のバネの長さlや数3の曲率Kが変化させる。これにより、引っ張り回復力Fstretchや曲がり回復力Fbendが発生し、数4の力ベクトルFiが算出される。これが各ポリゴンの応力となる。
外力設定部1703は、物体を変形させる外力ベクトル1704を設定する。物体の変形は、コンピュータグラフィックのデザイナが描画内容として設計する。図12の例であれば、外力ベクトル1704の大きさと、物体形状H01における力点の位置を決めることに相当する。
以上により、各ポリゴンには、ポリゴン座標(x,y,z)と応力ベクトルFiという属性が与えられる。
輝度値メモリ部103は、ポリゴン座標(x,y,z)と応力ベクトルFiをアドレスとして、テクスチャ画像の輝度値をテクスチャマッピング部102の指示にしたがって出力する。テクスチャ画像の輝度値は従来技術と同様に、事前に撮影しておく。
上述のように、本実施形態では、対象物が実在するという前提の下で、その対象物をコンピュータグラフィックスで表現しようとしたときの処理を説明している。よって、実在するその対象物のテクスチャおよび輝度値を予め取得することは可能である。以下、対象物のテクスチャおよび輝度値を取得するための具体的な構成を説明する。
図13は、テクスチャ画像取得部106(図11)の構成例を示す。テクスチャ画像取得部106は、対象物である被写体のテクスチャ画像を取得するのみならず、テクスチャ画像の輝度値を取得することが可能である。テクスチャ画像取得部106は、輝度値取得制御部314を有している。輝度値取得制御部314は、テクスチャ画像取得部106の全体制御を担い、XYZステージ304、カメラ302、測距センサ313の動作を制御する。加えて、通信線306を介して、画像生成装置100との通信を行う。図13の通信線306は、図11のブロック図においては、通信線107に対応する。
被写体301は、テクスチャの取得に用いられる撮影用の物体である。被写体301がXYZステージ304に設置されると、輝度値取得制御部314は支持ポール307と支持ポール308を制御して接触子305で被写体301を変形させる。カメラ302は、被写体301を撮影し、テクスチャ画像の輝度値を取得する。被写体301の表面に複数装着されたひずみセンサ303は、被写体301の応力を計測し、応力ベクトルの大きさを計測する。測距センサ313は、カメラ302に組み込まれ、カメラ302からひずみセンサ303までの距離を計測する。
接触子305の動きの指示は、データ線315を介して、外力設定部1703(図11)から与えられる。外力設定部1703は、コンピュータグラフィックスのデザイナによって操作される。その結果、接触子305は、デザイナの設定通りに被写体301へ外力を与える。
ただし、応力演算部101が有するバネ弾性は、被写体301の実際の弾性に対して誤差を有する、と捉える方が妥当であり、その対処を講じるべきである。そこで、接触子305にひずみセンサ309を装着し、被写体301に与えた外力を計測する。ひずみセンサ309からの計測データが、外力設定部1703に設定された外力ベクトルと一致するように、接触子305の動きを制御して、応力演算部101が有するバネ弾性の誤差を補償する。
ひずみセンサ303の測定データは、応力データ線310を介して、画像生成装置100へ取り込まれる。
カメラ302の撮影データと、測距センサ313の計測データは、画像データ線312を介して、画像生成装置100へ取り込まれる。
なお、本実施形態において、接触子305の制御と、カメラ302によるテクスチャ画像の輝度値の撮影、ひずみセンサ303、309の測定のタイミング制御は任意であり、ひずみセンサ303、309の測定データを常時、画像生成装置100へ取り込んでも構わない。また、テクスチャ画像の輝度値が撮影されたタイミングに合わせて、ひずみセンサ303、309の測定データを取得してもよい。すなわち、カメラ302のシャッタ動作に同期して、応力データ線310からのアナログ信号をサンプリングして離散化する。さらに、カメラ302のシャッタをコンピュータグラフィックスのデザイナが押し、カメラ302がシャッタ作動の識別信号を、輝度値取得制御部314を介して画像生成装置100に送ってもよい。
測距センサ313は、複数のひずみセンサ303を用いた3次元位置の計測に利用される。各ひずみセンサ303の位置は応力ベクトルの始点位置に相当する。本実施形態において、測距方法は任意であるが、たとえば三角測量を利用することが可能である。図14は、三角測量を説明する図である。三角測量とは、三角形の一辺とその両端の角度が決まると三角形が一義的に定まることを利用する測距方式である。既知の距離lだけ離れた2点A,Bから点Pを見る角度をそれぞれα、βとすると、点Pの座標値(x、y)は以下で与えられる。
いま、点Aにレーザー光源を置き、物体表面上の点Pにレーザー光を照射し、点Bに置いたカメラで点Pのレーザー光を捉えて点Pの座標値(x、y)を計測する。点Aのレーザー光源と点Bのカメラを、カメラ302に搭載する。点Bのカメラは、カメラ302の撮像系が兼用しても構わない。
以上により、輝度値メモリ部103を参照するためのアドレスとして必要な応力ベクトルと応力ベクトルの始点位置の3次元座標(x,y,z)が計測データとして取得され、データとして必要なテクスチャ画像の輝度値を実写画像で取得できる。一連の動作は、テクスチャ画像取得部106で成される。なお、テクスチャ画像取得部106は、図13に示す構成(たとえばXYZステージ304、)のみならず、取得されたテクスチャ画像のデータを保持するメモリ(図示せず)を有していてもよい。
なお、応力ベクトルの方向が計測可能であれば、輝度値メモリ部103のアドレスに応力ベクトルの方向を加えてもよい。輝度値メモリ部103のアドレスが、応力ベクトルの大きさと応力ベクトルの始点位置だけで構成されている場合、応力ベクトルの方向が異なっても同じテクスチャ画像の輝度値が参照されることになる。
また、被写体301に装着するひずみセンサ303が装着された位置は、カメラ302から見て、テクスチャ画像の輝度値が遮蔽されたことになり、撮影できない。通常、ひずみセンサ303は小型であるため、ひずみセンサ303の隣接部分のテクスチャ画像の輝度値で代替できる。しかし、被写体が小さく、ひずみセンサ303の大きさが無視できない場合は、ひずみセンサ303による応力計測とカメラ302によるテクスチャ画像の輝度値撮影を別々に行えばよい。すなわち、外力ベクトル1704の制御は、画像生成装置100によって再現性が保証され、接触子305を何度も同じ動きで制御できる。そこで、同じ変形状態を2回設定し、すなわち被写体に与える外力を同じにした状態を2回設定し、応力計測とテクスチャ画像の輝度値撮影を別々に実行すればよい。なお、応力計測を先に行った後、撮影を行ってもよいし、その逆の順序で行ってもよい。
外力による形状変化が発生する度に、適切にテクスチャ画像の輝度値が取得でき、コンピュータグラフィクスの動画像の写実性が高まる。
さらに、応力計測においては、ひずみセンサ303の装着数を少なくするために、応力分布を有限要素法などの計算機モデルで取得しても構わない。本実施形態は、変形したテクスチャ画像の輝度値を実写画像として取得するイメージベース手法に則るもので、テクスチャ画像の輝度値の取得には計算モデルを用いない。一方、応力取得に関しては、本実施形態とは別に、計算機モデルで応力を取得しても構わない。また、応力計測と応力計算モデルを併用するなど、任意の方法を適用可能である。
なお、図13において、説明の都合上、各機器の制御やデータ送信は有線になっているが、本実施形態ではこれに制限を与えるものではなく、無線通信や記録メディアなど、任意の手段を利用できる。輝度値メモリ部103は、画像生成装置100に内蔵されたハードディスクや半導体メモリなどで実装でき、また、取り外し可能なポータブルメディアである光ディスクなども適用できる。
また、図13において、接触子305は、ひずみセンサ309を1つだけ装着しているが、本実施形態は外力ベクトル1704の本数に制限を与えるものではない。すなわち、外力ベクトル1704の計測点を複数用意し、ある時刻で、複数の外力ベクトル1704が計測されても構わない。
再び図11を参照する。テクスチャマッピング部102は、最近傍検出部108を有し、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)と応力信号105として与えられる応力ベクトルに最も類似するデータを輝度値メモリ部103から検出する。ここで「類似する」とは、応力ベクトルが最も近いことを意味する。具体的には、ポリゴンの座標(x,y,z)に最も近い始点位置を有し、かつ、応力ベクトルの大きさが最も近いことを意味する。
最近傍検出部108は、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)に最も類似している(x,y,z)座標を輝度値メモリ部103のアドレスから検出する。次に、検出された(x,y,z)座標を有するデータのうち、応力信号105として与えられる応力ベクトルに最も類似する応力ベクトルを輝度値メモリ部103のアドレスから検出する。この2段階の検出によって、テクスチャ画像の輝度値が特定される。
本実施形態では、物体の変形情報を力学系のみで取り扱い、ポリゴン座標などの幾何学系では変形情報を取り扱わない。従って、輝度値メモリ部103のアドレスである応力ベクトルの始点位置座標(x,y,z)は、3次元形状信号1102として与えられるポリゴン座標との対応付けが目的であり、物体変形に伴う(x,y,z)座標の更新は不要である。輝度値メモリ部103のアドレスである応力ベクトルの始点位置座標(x,y,z)は固定であり、従って、ひずみセンサ303の装着位置を(x,y,z)座標で計測した後は、測距センサ303での距離計測は不要である。最近傍検出部108が、最初に(x,y,z)座標の最近傍を検出し、引き続き、応力ベクトルの最近傍を検出する2段階方式を取る理由は、ここにある。
(x,y,z)座標の最近傍検出は、3次元形状信号1102として与えられるポリゴンの座標(x,y,z)に最も近い応力ベクトルの始点位置座標(x,y,z)を決定する。引き続き、検出された応力ベクトルの始点位置で、形状に関するデータ探索が行われ、具体的には、応力信号105に最も類似する応力ベクトルが検出される。
たとえば、図13において、被写体301にひずみセンサ303を100個装着し、カメラ302で1000回撮影したとすると、輝度値メモリ部103には、10万個(100点×1000回)のテクスチャ画像の輝度値輝度値が格納されることになる。(x,y,z)座標の最近傍検出は、100個のひずみセンサ303の1つを検出し、引き続き、応力ベクトルの最近傍検出は、1000個の応力ベクトルの中から1つが検出される。
図15は、画像生成装置100の処理の手順を示すフローチャートである。
描画設計ステップ501は、コンピュータグラフィックのデザイナが描画設計を行うステップである。第1に、描画する物体の3次元形状をポリゴンの集合として形状設定部1712に設定する。この形状は、外力を受けていない、変形のない形状として設計する。第2に、描画する物体の弾性をバネ弾性として質点バネ設定部1702に設定する。第3に、描画する物体が受ける外力を外力ベクトル1704として外力設定部1703に設定する。
ステップS502以降は、主として画像生成装置100によって行われる処理である。
テクスチャ画像の輝度値設定ステップ502は、テクスチャ画像の輝度値の撮影と応力ベクトルの計測を行うステップである。コンピュータグラフィックのデザイナは、テクスチャ画像の輝度値を取得するために、被写体301を用意し、ひずみセンサ303の貼り付けとカメラ302、測距センサ313の設置を行う。カメラ302はテクスチャ画像の輝度値を撮影し、ひずみセンサ303が応力ベクトルを計測する。ひずみセンサ303の3次元位置座標(x,y,z)は測距センサ313で計測する。ひずみセンサ303の3次元位置座標(x,y,z)と応力ベクトルをアドレスとして、テクスチャ画像の輝度値をデータとして、輝度値メモリ部103に格納する。一連の動作は、テクスチャ画像取得部106で行い、被写体301の変形は、外力設定部1703から受ける外力ベクトル1704が発生するように、XYZステージが制御される。
ポリゴン座標送出ステップ503では、形状設定部1712は、3次元形状信号1102としてポリゴン座標(x,y,z)を応力演算部101とテクスチャマッピング部102へ送出する。
応力演算ステップ504では、バネ力算出部1706は、質点バネ設定部1702の設定と外力設定部1703からの外力ベクトル1704とに基づいて、ポリゴン座標(x,y,z)の応力ベクトルを演算する。
最近傍検出ステップ505では、テクスチャマッピング部102内の最近傍検出部108は、第1に、ポリゴン座標(x,y,z)に最も近い輝度値メモリ部103の(x,y,z)アドレスを検出する。そして、第2に、当該(x,y,z)アドレスを有するデータの中から、そのポリゴンに対して作用させようとする応力ベクトルが最も近いアドレスを検出し、テクスチャ画像の輝度値を出力する。
投影変換ステップ506では、投影変換部1110は、3次元形状を2次元の投影面に変換して、ディスプレイ表示用の2次元画像を生成する。より具体的には、投影変換部1110は、輝度値メモリ部103のテーブルを参照した結果得られた輝度値を適用してテクスチャ画像の輝度値を変化させ、各ポリゴンの位置にそのテクスチャ画像を貼り付ける。表示ステップ507では、表示部1111は2次元画像をディスプレイに表示する。
以上により、画像生成装置100は、外力による形状変化を、応力演算部101という「力学系」に集約し、ポリゴン位置の移動といった「幾何学系」への変換なしに、物体変形のテクスチャマッピングが可能である。言い換えると、本実施形態における幾何学系の設定は固定であり、変形に伴う状況変化はすべて力学系に集約される。
一方、図7に示したテクスチャマッピングは、バネ力算出部1706で算出されたバネ力ベクトル1707で変形情報を力学系で記述した後、質点座標算出部1708でポリゴン位置の移動といった幾何学系に変換している。従って、外力による形状変化が力学系のみに集約される本実施形態の処理では、力学系から幾何学系への変換を行う場合に必要になるアドレス変換が不要となり、テクスチャマッピングの処理が大幅に簡素化される。そして、テクスチャ画像の輝度値を参照し、形状変化が伴う実写画像をテクスチャマッピングできるため、写実性の高いコンピュータグラフィックスを作成できる。また、高い写実性を維持したまま、テクスチャマッピングの高速処理、演算回路のダウンサイジングという効果を発揮する。言い換えると、テクスチャマッピング処理の負荷を軽くできる。その結果、携帯機器などの様々な機器への搭載や、通信帯域が限られたネットワーク利用などにも応用することが可能になり、汎用性をより高めることができる。
なお、考え方としては、図3に説明した、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係の設定を、対象物が変形した都度、追加設定を行う手順も存在する。すなわち、本実施形態のように形状変化を応力変化で捉える、あるいは、従来技術のようにポリゴン位置の変化で捉える、といった機能を使わずに、都度、コンピュータグラフィックのデザイナが自身で、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を追加していく方法である。しかし、ポリゴンの座標(x,y,z)とテクスチャ画像の輝度値の座標(u,v)の対応関係を、人手で追加することは、作業量から考えて非現実的であり、特に、物体変形を描画するには動画が必要である。従って、本実施形態や従来技術のように、コンピュータグラフィックスを生成する機器が、形状変化に伴う状態変化を何らかの仕組みで捉えることは必然と言える。
(実施形態2)
実施形態1では、対象物の形状をどのように変化をさせるかが予め定められていた。
本実施形態では、対象物の形状変化は予め定められておらず、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測する。そして、その結果を利用し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置を説明する。特に、対象物を変形させながら外力ベクトルを計測し、当該計測データを外力設定部に設定する。
図16は、本実施形態による画像生成装置600を示すブロック図である。なお、図11と同様の部分については同じ符号を付し、詳細な説明を省略する。
画像生成装置600は、形状設定部1712、応力演算部101、外力設定部601、テクスチャマッピング部102、輝度値メモリ部103を有している。画像生成装置600は、デザイナが設定した物体形状や弾性、外力などをもとに、特定した輝度値のテクスチャ画像を変形する物体形状に貼り付ける。
外力設定部601は、テクスチャ画像取得部602から送出される外力計測信号603によって設定される。
テクスチャ画像値取得部602は、人(たとえばデザイナー)が対象物に与えた外力を計測し、これを外力設定部601に送出する。図17は、テクスチャ画像取得部602(図16)の構成例を示す。人が接触子701を移動させて、被写体301を変形させる。XYZステージ702は、支持ポール307と支持ポール308に装着されたエンコーダ703、エンコーダ704、エンコーダ705を用いて、接触子701の(x,y,z)座標を計測する。計測された(x,y,z)座標は、輝度値取得制御部314を介して、データ線315を介して画像生成装置600へ送出される。接触子701が被写体301に加えた外力ベクトル1704は、ひずみセンサ309で計測され、ひずみセンサ303の計測データとともに、応力データ線310を介して画像生成装置600へ取り込まれる。外力ベクトル1704の方向は、接触子701の位置変化から取得する。
撮影の指示のタイミングは任意であり、テクスチャ画像取得部602は、一定間隔(たとえば、1/30秒)でテクスチャ画像の輝度値を連続的に取り込んでも構わない。しかしながら、テクスチャ画像取得部602がひずみセンサ309および/または測距センサ313の変化量を監視し、応力ベクトルの大きさの変化が所定の変化量を上回った際や、応力ベクトルの始点位置の変化が所定の基準値を超えたときに、撮影指示を出す方法なども考えられる。変化量に従ってカメラ302がテクスチャ画像の輝度値を撮影する場合は、接触子701が、いわゆる「カメラのシャッタボタン」として機能する。
図18は、輝度値取得制御部314の調整画面706の表示例を示す。
図18に示す「カメラ設定」の枠801は、カメラ302の設定を行うメニューである。そのうち「シャッタ動作」項目802は、カメラ302のシャッタの動作を設定するメニューである。デザイナがボタン(図示せず)などの入力装置を介して「一定間隔」のラジオボタンを選択すると、カメラ302のシャッタは、1秒間の撮影枚数で決まる時間間隔で連続的にテクスチャ画像の輝度値を撮影する。「応力変化」のラジオボタンを選択すると、カメラ302のシャッタは、指定の応力変化が計測される度にテクスチャ画像の輝度値を撮影する。「形状変化」のラジオボタンを選択すると、測距センサ313の計測データを時系列にトレースし、指定の距離変化が計測される度にテクスチャ画像を撮影し、その輝度値を取得する。「シャッタボタン」のラジオボタンを押すと、カメラ302のシャッタを押すたびにテクスチャ画像の輝度値が撮影される。
図18に示す「接触子設定」の枠803は、接触子701の設定を行うメニューである。そのうち、「動作指示」項目804は、接触子の動きの指定方法を設定するメニューである。「インポート」のラジオボタンを押すと、接触子の動き方をテクスチャ画像取得部602以外の外部から指示を受ける。外部からの指示とは、たとえば、外力設定部601である。「なし(人による動作入力)」のラジオボタンを押すと、接触子の動き方の指示はなく、人が接触子を手に持って動かし、XYZステージ702は、エンコーダ703、704、705で接触子の動きを計測する。
以上により、コンピュータグラフィックスのデザイナは、外力ベクトル1704を直接、デザインする必要はなく、実物の変形具合を視覚的に、また触覚的に確認しながら、被写体301への加圧度合いを調整することで外力設定部601を設定できる。たとえば、同じ外力ベクトルを硬さの異なる対象物に与えれば、柔らかい対象物は大きく変形する。変形の度合いが大きければ、テクスチャ画像の輝度値の変化も大きくなり、時間的により細かくテクスチャ画像の輝度値を撮影する必要がある。逆に、硬い対象物は変形が小さいため、テクスチャ画像の輝度値の撮影枚数は少なくできる。デザイナの描画意図として設計される変形の具合は、実物で確認しながら、外力設定部601は、応力ベクトルの計測によって設定される。従って、コンピュータグラフィックの物体変形が実物のように自然になり、かつ、写実性の高いテクスチャ制作が可能になる。
なお、図16における被写体に対する外力の与え方と外力ベクトルの計測方法は、一例であって、ひずみセンサが装着されたグローブを手に装着して、複数本の指で加圧するなど、任意の方法を適用できる。ただし、外力の付与と外力ベクトルの計測を行うがために、被写体301とカメラ302の間に遮蔽物が入り、テクスチャ画像の輝度値が撮影できない場合があり得る。その場合は、上述したように、一旦、外力ベクトル1704と応力ベクトルを計測し、別途、遮蔽の少ないXYZステージで被写体301を変形し、カメラ302でテクスチャ画像の輝度値を撮影する。このとき、それぞれにおいて被写体に与える外力を同一とすることによって、応力計測のセンサなどが被写体を必要以上に隠すことなく、テクスチャ画像の輝度値を撮影できる。
(実施形態3)
本実施形態では、形状変化した対象物のテクスチャ画像の輝度値を実写し、かつ、形状変化に伴って発生した対象物の応力を計測し、テクスチャを貼り付けるポリゴンの座標と応力をアドレスとしてテクスチャ画像の輝度値を取得する画像生成装置について説明する。特に、物体を変形させる外力が、画像生成装置とは別に設けられた入力機器から入力される。
図19は、本実施形態による画像生成装置900のブロック図である。なお、図11と同様の部分については同じ符号を付し、詳細な説明を省略する。
画像生成装置900は、形状設定部1712、応力演算部101、外力受信部601、テクスチャマッピング部102、輝度値メモリ部103を有し、デザイナが設定した物体形状や弾性をもとに、変形する物体形状にテクスチャ画像の輝度値を貼り付ける。物体を変形させる外力は、画像生成装置900の外部から受信する。
外力受信部901は、ネットワーク902を介して外力送信部903から、外力ベクトル1704を取得する。外力送信部903は、たとえば、あらかじめプログラミングされた外力生成モデルから外力ベクトル1704を得て送信したり、あるいは、ひずみセンサの計測データを送信する。
外力生成モデルは、具体的には、コンピュータでの演算を想定し、ネットワークを介した力覚情報の遠隔コミュニケーションを可能にする。
一般に、外力生成モデルは、有限要素法のように、対象物を細かなセルに分割して、セルごとに外力生成モデルを設定する。モデルパラメータ(たとえば、弾性率など)の設定は、各セルに成され、その総体として対象物の形状が決定される。従って、大量に設定された小さなセルごとにモデルパラメータを設定するため、通常、計算量は膨大であり、大規模な計算資源を利用することになる。画像生成装置900は、テクスチャマッピングに特化し、演算負荷が大きい外力ベクトル1704の設定は、画像生成装置900の外部に切り出す。
たとえば有限要素法においては、要素ごとに種々の状況下でどのような力が加わるかを計算する必要があり、計算の負荷が非常に大きい。そのような負荷が大きい計算を、画像生成装置とは異なる外部のコンピュータを利用して行い、計算結果である外力の与え方を画像生成装置900に設定すればよい。
ひずみセンサを外部送信部903に用いる場合は、たとえば、ビデオゲームの入力端末などを想定する。表示部1111にビデオゲームの映像が表示されており、ビデオゲームのプレーヤーはビデオゲームの映像を見ながら、ゲームプレーに関わる様々なアクションを手に持ったひずみセンサから入力する。たとえば、物体を押しつぶす動作を入力する場合は、手に持ったひずみセンサをテーブルに押し付けて、より大きな外力を外力送信部903から画像生成装置900へ入力する。画像生成装置900は、外力受信部901で受信した外力ベクトル1704に従って、応力演算部101で応力信号105を計算し、テクスチャマッピング部102が形状変形に伴ったテクスチャ画像の輝度値を形状にマッピングする。
ビデオゲームを例に説明を行ったが、これは一例であり、たとえば、医療応用も可能である。たとえば、ひずみセンサが内視鏡に装着され、臓器の硬さをひずみセンサで計測し、臓器の変形の様子をコンピュータグラフィクスで描画し、医師は表示部1111を見て視覚的に確認することができる。対象物が遠隔地にあったり、体内にあったり、人が入れない危険な場所にあったり、何らかの制約で人が直接、対象物を触れない場合に、外力送信部903を画像生成装置900から切り離す。
以上のように、対象物が手元にない場合、テクスチャ画像の輝度値は対象物そのものから得ることはできない。そこで、テクスチャ画像取得部106は、代替の被写体を用意し、これを撮影・計測して輝度値メモリ部103に必要な情報を登録することになる。たとえば、内視鏡による臓器の変形を描画する場合、テクスチャは臓器であることが特定されているため、あらかじめ準備しておくことは可能である。また、過去に撮影した映像をそのままテクスチャ画像の輝度値に用いることもできる。ビデオゲームの場合は、描画されるゲーム画面のすべてを用意して輝度値メモリ部103に格納しておく。
仮に、輝度値メモリ部103に登録されていない対象物の外力ベクトル1704が与えられたとしても、最近傍検出部108は、最も類似する応力ベクトルを検出する。そのため、テクスチャマッピングの処理が停止することはなく、何からのテクスチャ画像の輝度値を形状に貼り付けて描画を継続する。表示部1111に表示された描画画像の写実性を高めたい場合は、できるだけ対象物に近い代替の被写体を用意して、テクスチャ画像取得部106からテクスチャ画像の輝度値を追加する。
なお、ネットワーク902は、インターネットのような広域のデータ通信のみならず、コンピュータと周辺機器をつなぐUSB(Universal Serial Bus)やBluetoothのような個人レベルのローカルなデータ通信も含む。また、SD(Secure Digital)メモリカードのような記録メディアを用いて、ネットワーク902と等価な機能を実現でき、本実施形態は機器をつなぐ手段を拘束するものではなく、任意の手段を利用できる。
以上により、画像生成装置900以外で作成された外力ベクトル1704を受信して、テクスチャマッピングを実行でき、輝度値メモリ部103に、あらかじめ、対象物相当のテクスチャ画像の輝度値が用意できた場合は、写実性の高いコンピュータグラフィックスを作成可能である。
上述した各実施形態による画像生成装置の動作は、画像生成装置に搭載されているコンピュータ(プロセッサ)が、RAM(図示せず)に格納されているコンピュータプログラムを実行することによって実現される。画像生成装置は、このコンピュータプログラムにしたがって、上述の動作を行う。たとえば、実施形態1による画像生成装置100は、図15のステップS502からステップS506までの処理を規定するコンピュータプログラムによって動作する。そのようなコンピュータプログラムは、CD−ROM等の記録媒体に記録されて製品として市場に流通され、または、インターネット等の電気通信回線を通じて伝送される。なお、半導体回路にコンピュータプログラムを組み込んだDSP等のハードウェアとして実現されてもよい。
上述の実施形態に記載の発明により、映像表現力の向上を図ることが可能になる。
加えて、実物を用いた実写映像で映像制作をするケースをコンピュータグラフィックスに置き換えることができ、天候や撮影場所などの物理制約から解放され、さらに、実写では危険が伴うようなカメラアングルでの映像制作が可能となる。
以上のように本発明は、映画制作を始め、テレビ、インターネット、雑誌等のメディア広告や、製品カタログなど、様々な媒体で頻繁に利用されているコンピュータグラフィックスの写実性を高め、映像表現力や広告効果の向上に大きく寄与する。特に、形状変化を描画できる動画像のコンピュータグラフィックスは、形状変化を捉えた実写画像により写実性の高いテクスチャを表現できるため、コンピュータグラフィックスの利用者層の拡大につながる。
100 画像生成装置
101 応力演算部
102 テクスチャマッピング部
103 輝度値メモリ部
108 最近傍検出部
1110 投影変換部
1111 表示部
1702 質点バネ設定部
1703 外力設定部
1706 バネ力算出部
1712 形状設定部