(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-15
(45)【発行日】2024-03-26
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 15/04 20110101AFI20240318BHJP
【FI】
G06T15/04
(21)【出願番号】P 2019190258
(22)【出願日】2019-10-17
【審査請求日】2022-10-17
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】佐藤 智一
【審査官】松永 隆志
(56)【参考文献】
【文献】特開2019-046378(JP,A)
【文献】特開平11-073521(JP,A)
【文献】特開平06-103385(JP,A)
【文献】特開平09-282485(JP,A)
【文献】特開2014-229171(JP,A)
【文献】佐藤 寛幸 ほか3名,自由なカメラワークによって撮影された多視点画像系列を用いるテクスチャマッピング手法,電子情報通信学会論文誌 ,2002年05月01日,第J85-D-II巻, 第5号,p.907~917
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/04
(57)【特許請求の範囲】
【請求項1】
オブジェクトの三次元形状データに対応する、少なくとも前記オブジェクトの色を表すテクスチャマップを生成する画像処理装置であって、
前記三次元形状データを構成する構成要素に対して、前記オブジェクトに対する複数の視点の中から1つの視点を選択し、同じ視点が選択されかつ当該構成要素の
直接的および間接的に隣接する複数の構成要素を1つのグループとしてまとめ、前記複数の構成要素をグループに分類するグループ化手段と、
前記グループに属する複数の構成要素を前記選択された視点へ射影した写像を、前記グループに対応する領域として二次元マップ上に設定する設定手段と、
選択された視点の画像から、前記領域に応じた画素値を決定する決定手段と、
決定された前記領域に応じた画素値に基づいてテクスチャマップを生成する生成手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記グループ化手段は、前記複数の視点からの画像における前記構成要素の解像度に応じて、前記1つの視点を選択することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記設定手段は、前記領域を前記領域の面積の順に基づいて、互いに重ならないようにして、前記二次元マップ上に設定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記設定手段は、前記領域を前記領域の面積の順に基づいて、前記二次元マップ上に設定し、前記領域に対応する選択された視点の画像の画素値と前記テクスチャマップの画素値との差が所定の閾値より小さい場合は、新たに設定する領域を設定済みの領域に重ねて設定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項5】
前記グループ化手段は、前記1つのグループに分類された前記複数の構成要素のうち、他の構成要素に遮蔽された構成要素を該グループから除外することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記オブジェクトの前記三次元形状データは、ポリゴンを前記構成要素とするポリゴンメッシュで表現されることを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記オブジェクトの前記三次元形状データは、頂点を前記構成要素とする点群で表現されることを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項8】
前記オブジェクトの前記三次元形状データは、ボクセルを前記構成要素とするボリュームデータで表現されることを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項9】
前記テクスチャマップは、前記選択された視点に対する深度情報を含むことを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
【請求項10】
前記テクスチャマップは、前記オブジェクトの表面の凹凸を表す高さ情報を含むことを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項11】
前記テクスチャマップは、異方性テクスチャを表現するための法線情報を含むことを特徴とする請求項1乃至10のいずれか1項に記載の画像処理装置。
【請求項12】
前記設定手段は、前記グループに対応する領域の総面積に応じた二次元マップを生成することを特徴とする請求項1乃至11のいずれか1項に記載の画像処理装置。
【請求項13】
コンピュータを請求項1乃至12のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【請求項14】
オブジェクトの三次元形状データに対応する、少なくとも前記オブジェクトの色を表すテクスチャマップを生成する画像処理方法であって、
前記三次元形状データを構成する構成要素に対して、前記オブジェクトに対する複数の視点の中から1つの視点を選択し、同じ視点が選択されかつ当該構成要素の
直接的および間接的に隣接する複数の構成要素を1つのグループとしてまとめ、前記複数の構成要素をグループに分類するグループ化ステップと、
前記グループに属する複数の構成要素を前記選択された視点へ射影した写像を、前記グループに対応する領域として二次元マップ上に設定する設定ステップと、
選択された視点の画像から、前記領域に応じた画素値を決定する決定ステップと、
決定された前記領域に応じた画素値に基づいてテクスチャマップを生成する生成ステップと、
を含むことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、三次元空間内のオブジェクトを描画するために、オブジェクトの三次元形状を表すデータへオブジェクト表面の色を表すテクスチャデータをマッピングするテクスチャマッピングが行われている。テクスチャマッピングには、テクスチャデータを二次元平面に展開し、画像形式で保存したテクスチャマップが用いられる。
【0003】
特許文献1は、オブジェクトの三次元形状を表すポリゴンメッシュモデルを構成する三角形のポリゴンメッシュを射影した三角形の面積が最も大きくなる視点を選択し、その視点のテクスチャデータを利用してテクスチャマップを生成することを開示している。この技術では、テクスチャデータが割り当てられる三角形を直角二等辺三角形に変形し、それらをテクスチャマップ上に敷き詰めている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の方法では、テクスチャデータが割り当てられる三角形が、直角二等辺三角形に変形されてしまう。そのため、そのテクスチャデータによるテクスチャマップを利用してテクスチャマッピングを行い、オブジェクトを描画すると、オブジェクトの画質が低下してしまう可能性が生じる。
【0006】
本発明はこのような問題に鑑みてなされたものであり、描画したオブジェクトの画質が低下しないように、テクスチャマップを生成することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一実施形態において、オブジェクトの三次元形状データに対応する、少なくとも前記オブジェクトの色を表すテクスチャマップを生成する画像処理装置は、前記三次元形状データを構成する構成要素に対して、前記オブジェクトに対する複数の視点の中から1つの視点を選択し、同じ視点が選択されかつ当該構成要素の直接的および間接的に隣接する複数の構成要素を1つのグループとしてまとめ、前記複数の構成要素をグループに分類するグループ化手段と、前記グループに属する複数の構成要素を前記選択された視点へ射影した写像を、前記グループに対応する領域として二次元マップ上に設定する設定手段と、選択された視点の画像から、前記領域に応じた画素値を決定する決定手段と、決定された前記領域に応じた画素値に基づいてテクスチャマップを生成する生成手段と、を有する。
【発明の効果】
【0008】
本発明によれば、描画したオブジェクトの画質が低下しないように、テクスチャマップを生成することができる。
【図面の簡単な説明】
【0009】
【
図1】第一の実施形態における画像処理装置の機能ブロック図である。
【
図2】第一の実施形態における画像処理のフローチャートである。
【
図3】第一の実施形態におけるグループ化処理のフローチャートである。
【
図4】第一の実施形態における断片配置処理フローチャートである。
【
図5】第一の実施形態における三次元空間内のオブジェクトと撮像視点とを表す図である。
【
図6】第一の実施形態における撮像画像とポリゴン島の断片を表す図である。
【
図7】第一の実施形態におけるテクスチャ付きポリゴンメッシュデータを示す図である。
【
図8】第一の実施形態における画像処理装置のハードウェア構成図である。
【
図9】第二の実施形態における断片配置処理のフローチャートである。
【
図10】第一の実施形態における断片配置処理を模式的に説明する図である。
【
図11】第二の実施形態における断片配置処理を模式的に説明する図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、以下の実施形態は本発明を限定するものではない。また、以下の実施形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【0011】
<第一の実施形態>
第一の実施形態では、三次元空間内のオブジェクトを取り囲むようにして配置された複数の撮像装置で撮像された画像と、オブジェクトの三次元形状を表すポリゴンメッシュとを入力として、テクスチャ付きのポリゴンメッシュモデルを生成する方法を説明する。ポリゴンメッシュモデルは、オブジェクトの三次元形状を表現するデータ(すなわち、三次元形状データ)である。ポリゴンメッシュのテクスチャは、テクスチャマップ上にテクスチャの画素値(色情報)を記述することで表現される。画素値が記述され、画像形式で保存されたテクスチャマップを、テクスチャ画像ともいう。なお、複数の撮像装置間の位置関係はキャリブレーション済みであり、それぞれのキャリブレーションパラメータが事前に記憶されているものとする。
【0012】
図1は、本実施形態における画像処理装置の機能ブロック図である。本実施形態における画像処理装置は、視点設定部100、モデル取得部101、グループ化部102、断片形成部103、配置部104、及びテクスチャ値決定部105を有する。
【0013】
視点設定部100は、各撮像装置の視点のキャリブレーションパラメータを不図示の記憶部から取得する。
【0014】
モデル取得部101は、オブジェクトの三次元形状を表すポリゴンメッシュデータを不図示の記憶部から取得する。
【0015】
グループ化部102は、取得したキャリブレーションパラメータを用いて、ポリゴンメッシュを構成する複数のポリゴンを複数のグループに分類し、各グループに属するポリゴンのインデックスリストを生成する。本実施形態では、ポリゴンのグループをポリゴン島と呼ぶ。
【0016】
断片形成部103は、ポリゴン島のテクスチャマップ上での大きさと形を定義する断片(フラグメントとも呼ぶ)を、ポリゴン島毎に形成する。
【0017】
配置部104は、ポリゴン島毎に形成された各断片をテクスチャマップ上に配置し、ポリゴンの頂点に対応するテクスチャ座標(テクスチャマップ上の二次元位置)を算出し、テクスチャ座標情報を含むポリゴンメッシュデータを不図示の記憶部に記憶する。
【0018】
テクスチャ値決定部105は、不図示の記憶部から各撮像装置の視点に対応する撮像画像を取得し、各ポリゴン島の表面色を表す色情報をテクスチャマップ上に記述し、不図示の記憶部に画像データとして保存する。
【0019】
このように、本実施形態におけるテクスチャ付きのポリゴンメッシュモデルは、テクスチャ座標情報を含むポリゴンメッシュデータとテクスチャマップの画像データとによって記述される。
【0020】
次に、
図2を用いて、本実施形態における画像処理のフローを説明する。
図2のフローチャートで示される一連の処理は、画像処理装置のCPUがROMまたはHDDに格納されている制御プログラムをRAMに展開して実行することにより行われる。あるいはまた、フローチャートにおけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。フローチャートの説明における記号「S」は、当該フローチャートにおける「ステップ」を意味する。その他のフローチャートについても同様である。
【0021】
まず、S200において、視点設定部100が、各撮像装置の視点のキャリブレーションパラメータを設定する。
【0022】
S201において、モデル取得部101が、オブジェクトのポリゴンメッシュデータを取得する。
【0023】
S202において、グループ化部102が、ポリゴン毎に、ポリゴンを最も高画質に撮像した視点を選択し、同じ視点が選択されかつ隣接するポリゴン同士を一つのグループに統合する。詳細は、
図3を参照して後述する。グループ化部102は、グループ毎のポリゴン(すなわち、ポリゴン島)のインデックスリストを出力する。
【0024】
S203において、断片形成部103が、各ポリゴン島に属するポリゴンを、選択した視点に射影し、その写像である各ポリゴン島の二次元の断片を形成する。後述するように、形成した断片の形や大きさにしたがって、各ポリゴン島のテクスチャの色情報が記述される。断片情報は、写像の外接矩形(具体的には、外接矩形の左上の画素位置と、幅及び高さ)と、断片マップ(外接矩形内の写像と重なる画素のマップ)を保持する。
【0025】
S204において、配置部104が、全ての断片を一つのテクスチャマップ上に配置し、配置先の断片の外接矩形の左上の座標と、断片に対となるポリゴン島に含まれるポリゴンの頂点に対応するテクスチャマップ上のテクスチャ座標を算出する。すなわち、配置部104は、全ての断片を二次元マップ上に設定する。詳細は、
図4を参照して後述する。
【0026】
S205において、テクスチャ値決定部105は、撮像画像を読込み、選択した視点における断片に重なる画素の画素値をテクスチャマップ上にコピーすることで、各断片に対応するテクスチャマップ上のテクセルの画素値を決定する。なお、テクスチャマップの画素値(例えば、色情報)の決定方法は、これに限らず、選択した視点以外の視点の撮像画像の画素値を混ぜたり、遮蔽判定によって選択した視点の画素値を使わない等のその他の方法でもよい。
【0027】
次に、
図5~
図7を用いて、上記の処理フローを模式的に説明する。
【0028】
図5は、三次元空間内の立方体オブジェクトの形状を表すポリゴンメッシュ503と、それを取り囲むように配置された3つの撮像装置の視点500~502を表す。ここでは、簡単のためにポリゴンメッシュ503を構成する複数のポリゴンのうち、ポリゴンF0~F3のテクスチャを生成する処理を説明する。ポリゴンF0~F3は、頂点V0~V5によって構成される。
【0029】
図6は、上述した3つの視点からポリゴンメッシュ503を撮像した画像と、各画像の2次元空間に射影されたポリゴン島の断片を表す。画像600~602は、3つの視点500~502のそれぞれから撮像された画像を示す。この例では、ポリゴンF0とポリゴンF1が同一のグループに分類されて同一のポリゴン島に所属し、視点500から撮像された画像の2次元空間603に射影された断片610を形成している。また、ポリゴンF2とポリゴンF3が同一のグループに分類されて同一のポリゴン島に所属し、視点502から撮像された画像の2次元空間605に射影された断片611を形成している。断片610は、頂点C0~C3に囲まれた領域で表される。頂点C0~C3はそれぞれ、ポリゴンメッシュ503の頂点V0~V4に対応する射影位置(テクスチャ座標)を示す。また、断片611は、頂点C4~C7に囲まれた領域で表される。頂点C4~C7はそれぞれ、ポリゴンメッシュ503の頂点V1~V5に対応する射影位置を示す。なお、視点501から撮像された画像はポリゴンF0~F3に対して選択されなかったため、当該画像の2次元空間604に断片は形成されていない。
【0030】
図7は、上述した断片をテクスチャマップ上に配置して生成されたテクスチャ付きポリゴンメッシュデータの例を示す。
図7(a)は、ポリゴンメッシュ503の頂点V0~V5の頂点座標を記述したテーブルを示す。
図7(B)は、断片610及び611の頂点C0~C7のテクスチャ座標を記述したテーブルを示す。
図7(C)は、ポリゴンメッシュ503のポリゴン情報を記述したテーブルを示し、ポリゴンメッシュ503を構成するポリゴンF0~F3の頂点V0~V5と、断片610及び611の頂点C0~C7との対応関係が記述される。
図7(D)は、テクスチャマップを画像データとして記述したものである。
【0031】
次に、
図3のフローチャートを参照して、ポリゴンメッシュを構成するポリゴンのグループ化処理(S202)の詳細な処理フローを説明する。
【0032】
まず、S300において、グループ化部102は、ポリゴンメッシュを構成するポリゴン毎に(すなわち、オブジェクトの三次元形状を構成する構成要素毎に)、最も解像度が高い視点を選択する。具体的には、各ポリゴンの写像が画角内にあり、表面が見える視点(つまり、面法線とポリゴンから視点位置への方向ベクトルの内積が正になる視点)のうち、ポリゴンの写像の面積が最大となる視点を選択する。ただし、視点の選択方法はこれに限らず、例えば面に対して最も正対した視点を選択したり、方向と面積の両方を考慮したり、その他画角の中心近くに射影される視点を選択するなど、他の方法を用いてもよい。
【0033】
S301において、グループ化部102は、ポリゴンメッシュのトポロジを解析し、各ポリゴンについて、同じ視点が選択され、かつ頂点を共有する隣接ポリゴンを求める。
【0034】
その後、後述するS302~S304の処理を、S305の判定処理により全てのポリゴンがいずれかのグループに所属するまで繰り返し、グループ化処理を終了する。
【0035】
S302において、グループ化部102は、どのグループにも所属していない任意のポリゴンを起点として、同じ視点が選択されかつ直接又は間接的に隣接する、どのグループにも所属していないポリゴンを全て検出し、1つのグループにまとめる。起点となったポリゴンと、検出されたポリゴンが、1つのポリゴングループを構成する。なお、間接的に隣接するポリゴンとは、直接的に隣接するポリゴンに、さらに隣接するポリゴンのことをいう。すなわち、対象のポリゴンの近くにある複数のポリゴンを1つのグループにまとめる。
【0036】
S303において、グループ化部102は、ポリゴングループを、選択した視点に投影し、デプスマップを作成する。
【0037】
S304において、グループ化部102は、デプスマップを用いた遮蔽判定により、その他のポリゴンに隠れたポリゴンをグループから除外し、そのグループの作成を完了する。遮蔽判定処理を行うことで、テクスチャマップのテクセルに複数のポリゴンが重なって対応づくことを防ぐことができる。
【0038】
このように、本実施形態では、ポリゴンメッシュを構成するポリゴンがグループ化され、ポリゴン島が形成される。
【0039】
続いて、
図4のフローチャートを参照して、ポリゴン島の断片配置処理(S204)の詳細な処理フローを説明する。
【0040】
まず、S400において、配置部104は、ポリゴン島の断片を、外接矩形の面積の降順にソートし、テクスチャマップの初期サイズを設定する。テクスチャマップのサイズは、横縦で断片の外接矩形の画素数の最大値を求め、それぞれ最大値以上の2の冪数とする。
【0041】
S401において、配置部104は、設定されたテクスチャマップのサイズに従って、テクスチャマップ上への断片の配置を管理する配置済みマップのデータ領域を確保し、0(未配置を表す)で初期化する。配置済みマップのサイズは、テクスチャマップと同じサイズとする。
【0042】
その後、配置部104は、後述するS402~S404の処理を、S405の判定処理により全ての断片をテクスチャマップ上に配置するまで繰り返し、断片配置処理を終了する。
【0043】
S402において、配置部104は、テクスチャマップ上で断片の配置可能な場所を探索する。具体的には、配置部104は、配置済みマップを左上からラスタ順に走査し、断片マップと配置済みマップとを照らし合わせて、配置済みマップにおける配置済みの画素と断片マップの重なりの有無を判定する。配置済みの画素と断片マップの重なりが無ければ(断片マップに対応する配置済みマップの値が全て0であれば)配置成功とし、走査を終了する。
【0044】
S403において、配置部104は、断片配置の成否を判断し、成功していればS404に進み、失敗していればS407に進む。
【0045】
S407において、配置部104は、テクスチャマップのサイズを縦横2倍にして、S401に戻り、配置処理をやり直す。
【0046】
S404において、配置部104は、断片にラスタ位置を登録し、断片マップと重なる配置済みマップの領域の値を1(配置済みを表す)にする。
【0047】
S405において、配置部104は、全ての断片が配置されたかどうか判定し、未処理の断片があればS402に戻り、次の断片を処理する。一方、全ての断片の処理が完了していれば、S408に進む。
【0048】
S408において、配置部104は、断片の配置に応じて各ポリゴンにテクスチャマップ上のテクスチャ座標を付与する。具体的には、選択視点におけるテクスチャ座標に、選択視点とテクスチャマップにおける断片の外接矩形の左上の画素位置の差分を足すことで算出する。
【0049】
図10は、本実施形態における断片配置処理を模式的に説明する図である。ここでは、
図10(a)に示す各ポリゴンの断片1001、1002、1003、及び1004を、
図10(b)に示すように、テクスチャマップ1100上に配置する過程を説明する。
【0050】
まず、断片1001がテクスチャマップ1100上に配置される。次いで、断片1002が、配置済みの断片1001に重ならないようにテクスチャマップ1100上に配置される。次いで、断片1003が、配置済みの断片1001及び1002に重ならないように配置される。最後に、断片1004が、配置済みの断片1001~1003に重ならないように配置される。断片は、面積の降順にソートされて処理されるので、面積の大きい断片から順番に配置される。また、各断片は、形状及び大きさを維持したまま配置される。
【0051】
図10(c)は、断片1004をテクスチャマップ1100上に配置する際の、配置済みマップ1200を用いた重なり判定の過程を示す。図示されたように、断片1004は、配置済みマップ1200を左上からラスタ順に走査し、他の断片が配置済みの領域(黒で塗られた領域)と重ならない領域を探索する。
【0052】
このように、本実施形態における断片配置処理では、各ポリゴンの断片をテクスチャマップ上に配置し、各ポリゴンにテクスチャマップ上のテクスチャ座標を付与する。
【0053】
以上説明したように、ポリゴンメッシュと複数視点の撮像画像から、テクスチャ付きのポリゴンメッシュデータが生成される。本実施形態では、同一の視点が選択され、かつ隣接したポリゴンを1つのグループにまとめて断片を形成し、テクスチャマップ上に配置する。また、形成された断片は、形状及び大きさを維持したまま、テクスチャマップ上に配置される。本実施形態によると、描画したオブジェクトの画質が低下しないようにすることができる。また、その際に生成されるテクスチャ画像(すなわち、テクスチャマップ)の画素数を低減することができる。
【0054】
(ハードウェア構成)
図8を参照して、本実施形態における画像処理装置のハードウェア構成について説明する。画像処理装置800は、CPU801、ROM802、RAM803、補助記憶装置804、表示部805、操作部806、通信I/F807、及びバス808を有する。
【0055】
CPU801は、ROM802やRAM803に格納されているコンピュータプログラムやデータを用いて画像処理装置800の全体を制御することで、
図1に示す各機能を実現する。なお、画像処理装置800がCPU801と異なる1又は複数の専用のハードウェアまたはGPU(Graphics Processing Unit)を有し、CPU801による処理の少なくとも一部を専用のハードウェアまたはGPUが実行してもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。ROM802は、変更を必要としないプログラムなどを格納する。RAM803は、補助記憶装置804から供給されるプログラムやデータ、及び通信I/F807を介して外部から供給されるデータなどを一時記憶する。補助記憶装置804は、例えばハードディスクドライブ等で構成され、画像データや音声データなどの種々のデータを記憶する。
【0056】
表示部805は、例えば液晶ディスプレイやLED等で構成され、ユーザが画像処理装置800を操作するためのGUI(Graphical User Interface)などを表示する。操作部806は、例えばキーボードやマウス、ジョイスティック、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU801に入力する。
【0057】
通信I/F807は、画像処理装置800の外部の装置との通信に用いられる。例えば、画像処理装置800が外部の装置と有線で接続される場合には、通信用のケーブルが通信I/F807に接続される。画像処理装置800が外部の装置と無線通信する機能を有する場合には、通信I/F807はアンテナを備える。バス808は、画像処理装置800の各部をつないで情報を伝達する。
【0058】
図8では、表示部805と操作部806が画像処理装置800の内部に存在するものとするが、表示部805と操作部806との少なくとも一方が画像処理装置800の外部に別の装置として存在していてもよい。この場合、CPU801が、表示部805を制御する表示制御部、及び操作部806を制御する操作制御部として動作してもよい。
【0059】
<第二の実施形態>
第一の実施形態では、ポリゴンメッシュの全てのポリゴンの断片を、テクスチャマップ上で重ならないように配置する方法を説明した。しかし、ポリゴンメッシュのテクスチャには、繰り返しパタンや、ほとんど変化の無い領域が複数存在することもある。そこで、本実施形態では、テクスチャマップ上でのポリゴンの断片の重なりを許し、複数の断片に同一のテクスチャ領域を利用することで、テクスチャ画像の画素数を更に低減する方法を説明する。
【0060】
本実施形態は、第一の実施形態と比較して、配置部104とテクスチャ値決定部105の処理が異なる。本実施形態では、配置部104が、断片の配置と共に、テクスチャマップの画素値の決定を行う。
【0061】
図9は、本実施形態における断片配置処理の詳細な処理フローを示す。ここでは、
図4に示した処理フローと異なる部分を主に説明する。
図9のS900、S903、S905、S907、及びS908の処理は、
図4のS400、S403、S405、S407、及びS408の処理と同様であるため、説明は省略する。
【0062】
本実施形態では、S901において、配置部104は、テクスチャマップと配置済みマップの両方のデータ領域を確保し、初期化を行う。
【0063】
S902において、配置部104は、
図4のS402と同様に断片の配置可能な場所を探索するが、本実施形態では、断片が配置可能かどうかの判定方法が異なる。ここでは、断片マップに重なる視点画像の画素値とテクスチャマップ上の画素値の比較を行う。画素値の差が所定の閾値より小さい場合、配置済みマップの値が1(配置済みを表す)の領域があったとしても、断片はその領域に配置可能であると判定する。画素値の差は、断片マップにおける画素値の二乗差分の平均を用いる。配置済みマップの値が0(未配置を表す)の画素は、画素値の差の計算対象から除外する。なお、画素値の差はこれに限らず、例えば差の絶対値の最大値を用いてもよいし、差の絶対値の和を用いてもよい。
【0064】
S904において、配置部104は、断片にテクスチャマップ上のラスタ位置を登録する。次いで、配置部104は、配置済みマップの値が0(未配置を表す)の画素に対して、画素値の決定を行う。最後に、配置部104は、断片マップと重なる配置済みマップの領域の値を1(配置済みを表す)に設定する。このように、本実施形態では、二次元マップ上で断片が設定済みの領域において、画素値の差が所定の閾値より小さい場合は、新たに設定する断片を当該設定済みの領域に重ねて設定することができる。
【0065】
図11は、本実施形態における断片配置処理を模式的に説明する図である。ここでは、
図10と同様に、
図11(a)に示す各ポリゴンの断片1001、1002、1003、及び1004を、
図11(b)に示すように、テクスチャマップ1100上に配置する過程を説明する。なお、断片1001と断片1004は、類似のテクスチャを有する。
【0066】
断片1001~1003は、第一の実施形態と同様に、順次、配置済みの断片に重ならないようにテクスチャマップ1100上に配置される。一方、断片1004は、断片1001に類似のテクスチャを有するため、テクスチャマップ1100上で断片1001と重なるように配置される。
【0067】
図11(c)は、断片1004をテクスチャマップ1100上に配置する際の、配置済みマップ1200を用いた重なり判定の過程を示す。図示されたように、断片1004は、配置済みマップ1200を左上からラスタ順に走査し、他の断片が配置済みの領域(黒で塗られた領域)であっても、画素値の差が所定の閾値より小さい場合、配置可能であると判定する。
【0068】
以上説明したように、本実施形態によると、テクスチャの類似度の高いポリゴン島間で、テクスチャマップの同じ領域を共有することができ、第一の実施形態と比較してテクスチャ画像の画素数をさらに小さくすることができる。本構成は、テクスチャを形成する対象に地面が含まれる場合など、面積が大きく単純なテクスチャを持つオブジェクトに対して有効に作用する。
【0069】
ここまで、オブジェクトの三次元形状のデータ表現の例として、ポリゴンを構成要素とするポリゴンメッシュを用いたが、三次元形状のデータ表現はこれに限定されない。例えば、頂点を構成要素とする点群データや、ボクセルを構成要素とするボリュームデータ等のオブジェクトの表面の形を表現できるものであれば適用可能である。
【0070】
また、テクスチャマップには、法線情報を記述して異方性テクスチャを表現したり、深度情報を記述してテクスチャマップに三次元情報を持たせたり、高さ情報を記述してオブジェクト表面に凹凸を付与したりするなど、その他の情報を記述してもよい。
【0071】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0072】
100 視点設定部
101 モデル取得部
102 グループ化部
103 断片形成部
104 配置部
105 テクスチャ値決定部