IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7182863情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造
<>
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図1
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図2
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図3
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図4
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図5
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図6
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図7
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図8
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図9
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図10
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図11
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図12
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図13
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図14
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図15
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図16
  • 特許-情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】情報生成装置、情報処理装置、制御方法、プログラム、及びデータ構造
(51)【国際特許分類】
   G06T 15/04 20110101AFI20221128BHJP
【FI】
G06T15/04
【請求項の数】 17
(21)【出願番号】P 2017213225
(22)【出願日】2017-11-02
(65)【公開番号】P2019086918
(43)【公開日】2019-06-06
【審査請求日】2020-10-27
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】佐藤 智一
【審査官】松浦 功
(56)【参考文献】
【文献】特開2001-195603(JP,A)
【文献】特開2012-014744(JP,A)
【文献】特表2015-512072(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/04
(57)【特許請求の範囲】
【請求項1】
物体の形状を表す形状データと前記形状の表面に割り当てられるテクスチャを表すテクスチャデータとを用いて三次元物体を特定するための3Dモデルであって、前記形状データに含まれる第1の構成要素を特定するための第1の情報と、前記第1の構成要素と当該第1の構成要素に対応して割り当てられている前記テクスチャデータに含まれる第2の構成要素との組合せを特定するための第2の情報と、前記組合せを示す値によって前記三次元物体の各面の形状と割り当てられるテクスチャとを特定するための第3の情報と、を含む前記3Dモデルを生成する生成手段と、
前記3Dモデルを出力する出力手段と、
を有し、
前記第2の情報は、前記形状データを構成する頂点の座標値とは異なる値によって記述される、
ことを特徴とする情報生成装置。
【請求項2】
前記第1の構成要素は前記形状データを構成する頂点であり、前記第2の構成要素は前記テクスチャデータを構成する頂点であることを特徴とする、請求項1に記載の情報生成装置。
【請求項3】
前記第1の構成要素は、前記形状データを構成するエッジであり、前記第2の構成要素は前記テクスチャデータを構成するエッジであることを特徴とする、請求項1に記載の情報生成装置。
【請求項4】
前記第1の構成要素は、前記形状データを構成する面であり、前記第2の構成要素は前記テクスチャデータを構成する面であることを特徴とする、請求項1に記載の情報生成装置。
【請求項5】
前記3Dモデルは、前記テクスチャデータに含まれる第2の構成要素を特定するための第4の情報を含むことを特徴とする、請求項1から4のいずれか1項に記載の情報生成装置。
【請求項6】
前記第4の情報における複数の前記第2の構成要素の記述の順序が、前記第2の情報において連続して記述されるべき複数の組合せにおける前記第4の情報を参照するための値の順序と対応する場合、前記生成手段は、順序が対応する範囲に関する第5の情報を含め、かつ、前記複数の組合せのうち、当該順序が対応する範囲に関する組合せについての前記第2の構成要素に関する情報を省略して前記第2の情報を記述するように、前記3Dモデルを生成する、
ことを特徴とする請求項5に記載の情報生成装置。
【請求項7】
前記第2の情報において、前記第2の構成要素が前記テクスチャデータを構成する頂点の座標値によって記述される、
ことを特徴とする請求項1、2、5、又は6のいずれか1項に記載の情報生成装置。
【請求項8】
前記第1の情報における複数の前記第1の構成要素の記述の順序が、前記第2の情報において連続して記述されるべき複数の組合せにおける前記第1の情報を参照するための値の順序と対応する場合、前記生成手段は、順序が対応する範囲に関する第6の情報を含め、かつ、前記複数の組合せのうち、当該順序が対応する範囲に関する組合せについての前記第1の構成要素に関する情報を省略して前記第2の情報を記述するように、前記3Dモデルを生成する、
ことを特徴とする請求項1から7のいずれか1項に記載の情報生成装置。
【請求項9】
物体の形状を表す形状データと前記形状の表面に割り当てられるテクスチャを表すテクスチャデータとを用いて三次元物体を特定するための3Dモデルであって、前記形状データに含まれる第1の構成要素を特定するための第1の情報と、前記第1の構成要素と当該第1の構成要素に対応して割り当てられている前記テクスチャデータに含まれる第2の構成要素との組合せを特定するための第2の情報と、前記組合せを示す値によって前記三次元物体の各面の形状と割り当てられるテクスチャとを特定するための第3の情報と、を含む前記3Dモデルを取得する取得手段と、
前記取得手段により取得された3Dモデルに基づいて、三次元物体の描画を行う描画手段と、
を有し、
前記第2の情報は、前記形状データを構成する頂点の座標値とは異なる値によって記述される、
ことを特徴とする情報処理装置。
【請求項10】
前記3Dモデルは、前記テクスチャデータに含まれる第2の構成要素を特定するための第4の情報を含むことを特徴とする、請求項9に記載の情報処理装置。
【請求項11】
前記3Dモデルは、前記第4の情報における複数の前記第2の構成要素の記述の順序が、前記第2の情報において連続して記述されるべき複数の組合せにおける前記第4の情報を参照するための値の順序と対応する場合、順序が対応する範囲に関する第5の情報と、前記複数の組合せのうち、当該順序が対応する範囲に関する組合せについての前記第2の構成要素に関する情報が省略された前記第2の情報とを含む、
ことを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記第2の情報において、前記第2の構成要素が前記テクスチャデータを構成する頂点の座標値によって記述される、
ことを特徴とする請求項9から11のいずれか1項に記載の情報処理装置。
【請求項13】
前記3Dモデルは、前記第1の情報における複数の前記第1の構成要素の記述の順序が、前記第2の情報において連続して記述されるべき複数の組合せにおける前記第1の情報を参照するための値の順序と対応する場合、順序が対応する範囲に関する第6の情報と、
前記複数の組合せのうち、当該順序が対応する範囲に関する組合せについての前記第1の構成要素に関する情報が省略された前記第2の情報とを含む、
ことを特徴とする請求項9から12のいずれか1項に記載の情報処理装置。
【請求項14】
情報生成装置によって実行される制御方法であって、
物体の形状を表す形状データと前記形状の表面に割り当てられるテクスチャを表すテクスチャデータとを用いて三次元物体を特定するための3Dモデルであって、前記形状データに含まれる第1の構成要素を特定するための第1の情報と、前記第1の構成要素と当該第1の構成要素に対応して割り当てられている前記テクスチャデータに含まれる第2の構成要素との組合せを特定するための第2の情報と、前記組合せを示す値によって前記三次元物体の各面の形状と割り当てられるテクスチャとを特定するための第3の情報と、を含む前記3Dモデルを生成する生成工程と、
前記3Dモデルを出力する出力工程と、
を有し、
前記第2の情報は、前記形状データを構成する頂点の座標値とは異なる値によって記述される、
ことを特徴とする制御方法。
【請求項15】
情報処理装置によって実行される制御方法であって、
物体の形状を表す形状データと前記形状の表面に割り当てられるテクスチャを表すテクスチャデータとを用いて三次元物体を特定するための3Dモデルであって、前記形状データに含まれる第1の構成要素を特定するための第1の情報と、前記第1の構成要素と当該第1の構成要素に対応して割り当てられている前記テクスチャデータに含まれる第2の構成要素との組合せを特定するための第2の情報と、前記組合せを示す値によって前記三次元物体の各面の形状と割り当てられるテクスチャとを特定するための第3の情報と、を含む前記3Dモデルを取得する取得工程と、
前記取得工程において取得された3Dモデルに基づいて、三次元物体の描画を行う描画工程と、
を有し、
前記第2の情報は、前記形状データを構成する頂点の座標値とは異なる値によって記述される、
ことを特徴とする制御方法。
【請求項16】
コンピュータを、請求項1から8のいずれか1項に記載の情報生成装置として機能させるためのプログラム。
【請求項17】
コンピュータを、請求項9から13のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は三次元物体データの記述手法に関する。
【背景技術】
【0002】
三次元物体の表現方法の1つとして、テクスチャを伴うメッシュの形式で物体表面を記述する方法が存在する。メッシュは、例えば、三次元空間上のポリゴンの集合として表現される。特許文献1では、三次元のメッシュ頂点座標(XYZ)に対応する画像上のテクスチャ頂点座標(UV)を1対1で対応付けて記述することにより、物体の構造とメッシュの見え方を表すテクスチャ画像を対応付ける手法が記載されている。なお、各ポリゴンは、そのポリゴンを構成するメッシュ頂点の番号が指定されることによって定義される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2001-195603号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術には、三次元物体を表現するデータが冗長であったり、メモリへのデータの展開に関する処理効率が十分でない等の改善の余地があった。
【0005】
本発明は、かかる背景に鑑みなされたものであり、三次元物体の効率的な表現手法を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様による情報生成装置は、物体の形状を表す形状データと前記形状の表面に割り当てられるテクスチャを表すテクスチャデータとを用いて三次元物体を特定するための3Dモデルであって、前記形状データに含まれる第1の構成要素を特定するための第1の情報と、前記第1の構成要素と当該第1の構成要素に対応して割り当てられている前記テクスチャデータに含まれる第2の構成要素との組合せを特定するための第2の情報と、前記組合せを示す値によって前記三次元物体の各面の形状と割り当てられるテクスチャとを特定するための第3の情報と、を前記3Dモデルを生成する生成手段と、前記3Dモデルを出力する出力手段と、を有し、前記第の情報、前記形状データを構成する頂点の座標値とは異なる値によって記述される、ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、三次元物体の効率的な表現が可能となる。
【図面の簡単な説明】
【0008】
図1】ポリゴンで構成される3Dモデルのメッシュ頂点とテクスチャ頂点との例を示す図。
図2】メッシュの記述方式の概要を示す図。
図3】メッシュ頂点とテクスチャ頂点とを関連付けて記述する方式の概要を示す図。
図4】メッシュ頂点とテクスチャ頂点とを関連付けて記述する方式の概要を示す図。
図5】メッシュ頂点とテクスチャ頂点とを関連付けて記述する方式の第1の例を示す図。
図6】実施形態に係るデータ構造を記述するファイルの第1の構成例を示す図。
図7】情報生成装置及び情報処理装置のハードウェア構成例を示す図。
図8】情報生成装置及び情報処理装置の機能構成例を示すブロック図。
図9】情報生成装置が実行する処理の流れの例を示すフローチャート。
図10】情報処理装置が実行する処理の流れの例を示すフローチャート。
図11】メッシュ頂点とテクスチャ頂点とを関連付けて記述する方式の第2の例を示す図。
図12】実施形態に係るデータ構造を記述するファイルの第2の構成例を示す図。
図13】メッシュ頂点とテクスチャ頂点とを関連付けて記述する方式の第3の例を示す図。
図14】実施形態に係るデータ構造を記述するファイルの第3の構成例を示す図。
図15】情報処理装置が実行する処理の流れの例を示すフローチャート。
図16】メッシュエッジとテクスチャエッジとを関連付けて記述する方式の例を示す図。
図17】情報生成装置が実行する処理の流れの例を示すフローチャート。
【発明を実施するための形態】
【0009】
以下では、図面を参照しながら、本発明の実施の形態について説明する。
【0010】
<実施形態1>
本実施形態に係る手法は、テクスチャを伴う三次元(3D)ポリゴンモデルにおいて、そのデータ量を低減したデータ構造の構成技術に関する。以下では、まず、従来のデータ構造と、本実施形態に係る一例のデータ構造とを説明した後に、本実施形態に係るデータを生成する情報提供装置及びそのデータを使用して三次元画像を形成する情報処理装置の構成及びその処理方法について説明する。なお、以下で説明する装置構成や方法の手順は一例に過ぎず、様々な変形や変更が可能である。
【0011】
(従来の3Dモデルの記述手法)
図1(A)~図1(C)を用いて、従来のテクスチャ付き3Dモデルの記述方法について説明する。図1(A)は、ある方向から見た立方体の3Dモデルの例であり、ここでは四角形ポリゴンからなるメッシュにアルファベット(「A」や「C」)が描画されたテクスチャが付加されている。なお、ここでは、説明のために、立方体の角のメッシュ頂点に対して、そのメッシュ頂点を識別するための識別情報として値「V0」~「V7」を付している。図1(B)は、3Dモデルのテクスチャ画像を表したものである。図1(B)では、メッシュ頂点に対応する位置がテクスチャ頂点として表されており、説明のために、そのテクスチャ頂点を示す番号C0~C11を付している。図1(C)は、図1(A)の立方体を平面に展開した展開図の一例である。図1(C)では、同一の頂点が展開によって複数の点として表される場合に、その複数の点が破線で繋がれるような表現が用いられている。なお、図1(A)は、3Dモデルを四角形のポリゴンで表現する例について示しているが、これに限られず、一般的に用いられる三角形のポリゴンによって3Dモデルが表現されてもよい。
【0012】
まず、テクスチャのない形状データの一般的な表現方法について、図2(A)及び図2(B)を用いて説明する。図2(A)では、メッシュの各頂点が、XYZ軸による3次元空間上の座標値であるXYZ0~XYZ7によって記述されている。なお、XYZk(k=0~7)は、(xk、yk、zk)のような3次元のベクトルデータである。ここで、メッシュ頂点番号(V0~V7)は、座標の並びによって黙示的に定義される(すなわち、j+1番目のメッシュ頂点番号はVjであることが特定される)ため、データとして記述されなくてもよい。図2(B)では、各ポリゴンを構成するメッシュ頂点番号が記述されている。ポリゴン番号は、図2(A)におけるメッシュ頂点番号と同様に、座標の並びによって黙示的に定義されるため、データとして記述されなくてもよい。このように、図2(A)のような各メッシュ頂点に対応する座標値と、図2(B)のようなポリゴンを構成するメッシュ頂点番号とが記述されることによって、ポリゴンの位置及び形が定義される。
【0013】
次に、テクスチャ画像とメッシュとの対応関係をポリゴン情報に与える形式について、図3(A)~図3(C)を用いて説明する。図3(A)は、図2(A)と同様のメッシュ頂点の情報である。図3(B)では、テクスチャの各頂点が、図1(B)のような画像空間における座標値であるUV0~UV11によって記述されている。なお、UVk(k=0~11)は、(uk、vk)のような2次元のベクトルデータである。ここで、テクスチャ頂点番号(C0~C11)は、図2(A)及び図3(A)におけるメッシュ頂点番号と同様に、座標の並びによって黙示的に定義されるため、データとして記述されなくてもよい。図3(C)では、各ポリゴンのメッシュ頂点番号に対応付けられるテクスチャ頂点番号が記述されている。図3(C)のポリゴン番号F3の例では、メッシュ頂点V5がテクスチャ頂点C7と、メッシュ頂点V4がテクスチャ頂点C8と、メッシュ頂点V3がテクスチャ頂点C9と、メッシュ頂点V6がテクスチャ頂点C10と、それぞれ対応付けられる。なお、ポリゴン番号も、座標の並びによって黙示的に定義されるため、データとして記述されなくてもよい。図3(A)~図3(C)のような、ポリゴンに対応情報(テクスチャ頂点情報)を追加する記述形式は、情報の記述処理が簡易であり、かつ、自由度が高いため、OBJ、PLY、VRML等の多くの3Dモデルファイルフォーマットによって採用されている。
【0014】
続いて、3Dモデルの別の表現方法として、メッシュ頂点に直接テクスチャの対応情報を追加して3Dモデルを表現する形式について、図4(A)及び図4(B)を用いて説明する。ここで、図3(C)では、メッシュ頂点V5にはテクスチャ頂点C5(ポリゴン番号F0)とC7(ポリゴン番号F2及びF3)が対応付けられている。すなわち、メッシュ頂点座標XYZ5に対して、複数のテクスチャ頂点座標UV5及びUV7が対応付けられている。このように、メッシュ頂点とテクスチャ頂点との対応関係が1対1ではないことがある。このため、本形式では、図4(A)のように、1つのメッシュ頂点座標に対して1つのテクスチャ頂点座標が対応付けられたメッシュ頂点情報を形成すべく、複数のテクスチャ頂点に対応するメッシュ頂点の情報が対応するテクスチャ頂点ごとに複数回記述される。すなわち、メッシュ頂点座標XYZ5に対して、テクスチャ頂点座標UV5を対応付けたメッシュ頂点情報V5と、テクスチャ頂点座標UV7を対応付けたメッシュ頂点情報V7が、別個に記述される。なお、このような記述では、メッシュ頂点番号が振りなおされるため、図4(A)のメッシュ頂点番号と、図1(A)のモデルにおけるメッシュ頂点番号とが対応しなくなることに留意されたい。本形式では、各ポリゴンを構成するメッシュ頂点番号は、図4(B)のように、図4(A)で定義されたメッシュ頂点番号を用いて記述される。このデータ表現方式は、PMDファイルフォーマットや特許文献1等で採用されている。
【0015】
3Dモデルをレンダリングする際には、多くの場合、データをメモリ上に図4(A)及び図4(B)のような形態で展開した後に、GPU(Graphics Processing Unit)に転送して処理を命令する。図3(A)~図3(C)のようなデータ形式から、図4(A)及び図4(B)のデータ形式に変換する手法として、メッシュ頂点番号リストとテクスチャ頂点番号リストに示された番号に従って座標情報を、順次メモリ上に書き出す方法がある。例えば、図3(C)に記述されているポリゴン番号F0についてポリゴン情報を参照すると、メッシュ頂点番号V0とテクスチャ頂点番号C0という組合せの情報が得られる。この組合せについて、図3(A)及び図3(B)を参照して、メッシュ頂点座標とテクスチャ頂点座標との組の情報がメモリ上に出力される。同様に、メッシュ頂点番号V1とテクスチャ頂点番号C1、メッシュ頂点番号V4とテクスチャ頂点番号C4、メッシュ頂点番号V5とテクスチャ頂点番号C5の各組合せについても、メッシュ頂点座標とテクスチャ頂点座標との組の情報の出力が行われる。その後、続いてポリゴン番号F1からF5まで同様の処理が実行されることによって、図3(A)~図3(C)のようなデータ形式から図4(A)及び図4(B)の形式のデータへの変換が行われうる。しかしながら、このような変換では、メッシュ頂点番号とテクスチャ頂点番号の同じ組合せが何度も記述される場合がある。すなわち、例えばポリゴン番号F2及びF3について、メッシュ頂点番号V5とテクスチャ頂点番号C7が対応付けられており、これに伴って、V5とC7の組合せの情報が2度記述されてしまう。この結果、頂点数が本来の数よりも多くなり、データ転送やレンダリング処理に負荷がかかってしまう場合がある。また、頂点数が増えないように重複を考慮した変換を行うと、変換処理に要する時間が増大しうる。これは、連番で生成された3Dモデルの動画を再生する際に特に障害となりうる。
【0016】
一方、図4(A)及び図4(B)のような記述方式は、レンダリングには適するが、同じ座標情報を繰り返し記述する必要があり、データ表現として冗長でありうる。例えばメッシュ頂点座標とテクスチャ頂点座標を1対1に対応付けるために、図1(A)のモデルにおけるメッシュ頂点番号V0のメッシュ頂点座標XYZ0が、図4(A)のメッシュ頂点番号V0、V6、V12において繰り返し記述されている。その他の頂点についても同じ現象が発生しうる。
【0017】
(実施形態に係る3Dモデルの第1の記述例)
本実施形態では、メッシュ頂点とテクスチャ頂点との組合せ情報を規定する参照テーブルを利用する。ここでは、まず、先に説明した図1(A)の3Dモデルを例に、3Dモデルのデータ構造について説明する。図5(A)及び図5(B)は、それぞれ、本実施形態に係る、メッシュ頂点とテクスチャ頂点との組合せ情報を規定する参照テーブルと、その参照テーブルを用いてポリゴンを表現した情報とを示す。なお、本実施形態に係るデータ構造は、図5(A)及び図5(B)の情報に加えて、図3(A)及び図3(B)のようなメッシュ頂点とテクスチャ頂点とに関する頂点座標情報を含むが、説明の簡略化のためにそれらについては省略している。図5(A)の参照テーブルには、図1(A)の3Dモデルにおいて存在する、メッシュ頂点とテクスチャ頂点との全ての組合せの情報が記述される。ここで、図5(A)において記述されるのは、どのような組合せが存在するかであるため、同じメッシュ頂点とテクスチャ頂点との組合せの情報が複数回記述されることはない。なお、図5(A)においては、メッシュ頂点とテクスチャ頂点との組合せのそれぞれに対して、対応する組合せ番号Pk(k=0~15)が付されているが、この情報は、座標の並びによって黙示的に定義されるため、データとして記述されなくてもよい。そして、本実施形態では、各ポリゴンは、図5(B)に示されるように、図5(A)で規定された組合せ番号によって記述される。すなわち、各ポリゴン情報は、組合せ番号を指定することにより、間接的にメッシュ頂点座標及びテクスチャ頂点座標を指定する。
【0018】
図3(A)及び図3(B)と図5(A)及び図5(B)とを含むように生成されるファイルの例を図6(A)~図6(F)に示す。図6(A)は、ファイル全体の構成例であり、図6(B)~図6(F)は、図6(A)の各要素の具体的なデータの記述例である。図6(A)のファイルは、一例において、ヘッダ、組合せ情報、メッシュ頂点座標、テクスチャ頂点座標、及びポリゴン情報を含んで構成される。ファイル内のヘッダ領域には、図6(B)に示すように、テクスチャ画像に関するファイルへのパスを記したテクスチャ画像リンクが記述されうる。また、ヘッダ領域には、例えば、図5(A)の組合せ情報の要素の数、メッシュ頂点の数、テクスチャ頂点の数、及びポリゴンの数を示す情報が記述される。これらの数の情報は、図6(A)のファイルにおける、組合せ情報とメッシュ頂点座標との境界、メッシュ頂点座標とテクスチャ頂点座標の境界、及びテクスチャ頂点座標とポリゴン情報との境界等を判別するために利用されうる。なお、ヘッダ領域における情報の記述順序はこれに限られず、このファイルを取得した情報処理装置が解釈可能な任意の規則に従って各データが記述される領域が設定されうる。また、ヘッダ領域には、図6(B)に例示した内容以外のデータが記述されてもよい。
【0019】
組合せ情報領域には、一例において、図6(C)に示すように、図5(A)の組合せ情報の順でメッシュ頂点番号の全てが記述された後にテクスチャ頂点番号が順次記述される。ただし、これに限られず、このファイルを取得した情報処理装置が解釈可能な任意の規則に従ってデータが記述されうる。例えばメッシュ頂点番号とテクスチャ頂点番号との記述順序が反転されてもよい。また、1つのメッシュ頂点番号の後に対応するテクスチャ頂点番号を記述し、その後に次のメッシュ頂点番号とテクスチャ頂点番号とを記述するなど、メッシュ頂点番号とテクスチャ頂点番号とが交互に記述されてもよい。メッシュ頂点座標領域には、一例において、図6(D)に示すように、図3(A)に示される順序でメッシュ頂点座標の全てが記述される。テクスチャ頂点座標領域には、一例において、図6(E)に示すように、図3(B)に示される順序でテクスチャ頂点座標の全てが順次記述される。なお、メッシュ頂点座標及びテクスチャ頂点座標の記述の順序についても、図3(A)及び図3(B)の順序に従う必要はなく、このファイルを取得した情報処理装置が解釈可能な任意の規則に従う順序でデータが記述されうる。
【0020】
なお、上述の各領域は2つ以上に分割されてもよいし、複数の領域が1つの領域に統合されてもよい。また、各データは所定の圧縮方式によって圧縮(符号化)されてもよい。なお、この場合、各データへのアクセスを容易にするために、それぞれのデータの先頭位置や長さ情報がヘッダに記述されうる。また、上述のデータ以外の別のデータがファイル内に記述されてもよいし、例えば一部のデータから他のデータの一部または全部が特定可能又は推定可能である場合、その特定可能又は推定可能なデータはファイル内に記述されなくてもよい。また、ここでは、テクスチャ画像データが格納されるファイルが別に存在し、ヘッダ内でそのファイルの所在情報を記述する例について説明したが、テクスチャ画像データそのものがこのファイル内に含められてもよい。
【0021】
このようなデータ構造とすることにより、重複した組合せの情報は記述されなくなるため、データの冗長性を低減することができる。また、各頂点座標の情報についても1度のみ記述されることとなるため、これによってもデータ量が削減可能となる。また、上述のデータ形式は、図4(A)及び図4(B)と同様に、レンダリングに適した形式であるため、処理効率も十分に高くすることができる。
【0022】
(装置構成)
続いて、上述のようなデータ構造に関するファイルを生成する情報生成装置と、そのようなファイルを取得して三次元物体の描画を行う情報処理装置の構成について説明する。
【0023】
図7は、情報生成装置及び情報処理装置のハードウェア構成例を示す図である。情報生成装置及び情報処理装置は、一般的なコンピュータでありうる。これらの装置は、例えば、CPU701、GPU702、RAM703、ROM704、キーボード705、マウス706、表示装置707、外部記憶装置708、記憶媒体ドライブ709、I/F710を有する。なお、これらの各部分は、内部バス711を介して相互に通信可能に接続される。
【0024】
CPU701は、RAM703やROM704に格納されているコンピュータプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、後述する情報生成装置及び情報処理装置が担う各種処理を実行する。GPU702は、例えば、CPU701からの3Dモデル情報とレンダリング指示とを受け付けて画像をレンダリングし、表示装置707にそのレンダリングした画像を表示させるための処理を実行する。
【0025】
RAM703は、コンピュータが読み取り可能な記憶媒体の一例である。RAM703は、外部記憶装置708、記憶媒体ドライブ709、I/F710等からロードされたコンピュータプログラムやデータを一時的に記憶するための記憶領域を有する。また、RAM703は、CPU701が各種の処理を実行する際に用いるワークエリアを提供する。すなわち、RAM703は、各種のデータを保持するために適宜提供可能な記憶領域を有する。ROM704は、コンピュータが読み取り可能な記憶媒体の一例であり、コンピュータの設定データや、ブートプログラムなどを格納する。
【0026】
キーボード705及びマウス706は、コンピュータのユーザによる操作を受け付けるデバイスであり、受け付けた操作の内容をCPU701へ入力する。なお、キーボード705及びマウス706は、操作受付デバイスの一例であり、例えばタッチパネルや、音声入力機構等の様々な操作受付デバイスによって置き換えられうる。表示装置707は、CRTや液晶画面等によって構成され、CPU701による処理結果を画像や文字などを用いて表示する。なお、表示装置707は、例えばタッチディスプレイ等の操作受付機能を有してもよい。また、表示装置707は、情報生成装置及び情報処理装置の内部に備えられる必要はなく、これらの装置とは別個に用意され、これらの装置とケーブル等を介して接続可能な装置であってもよい。この場合、情報生成装置及び情報処理装置は、例えば、表示制御装置を内部に有しうる。
【0027】
外部記憶装置708は、コンピュータが読み取り可能な記憶媒体の一例であり、ハードディスクドライブ装置等の大容量情報記憶装置である。外部記憶装置708には、OS(オペレーティングシステム)や、後述する各処理を実現するための、例えばCPU701によって実行されるコンピュータプログラムやデータ、上述の各種テーブル、データベース等が保存されうる。外部記憶装置708に保存されるコンピュータプログラムやデータは、例えば、CPU701による制御に従ってRAM703にロードされてCPU701によって処理される。記憶媒体ドライブ709は、CD-ROMやDVD-ROM等の記憶媒体に記録されているコンピュータプログラムやデータを読み出し、読み出したコンピュータプログラムやデータを外部記憶装置708やRAM703に出力する。例えば、本実施形態で説明されるデータやコンピュータプログラムの一部または全部を記憶媒体に記録させておき、この記憶媒体を記憶媒体ドライブ709に読み取らせることによって情報生成装置及び情報処理装置の内部に取り込むようにしてもよい。I/F710は、情報生成装置及び情報処理装置の外部からの頂点インデックス等の入力の受け付けや、生成したデータの出力のためのインタフェースである。I/F710は、例えば、USB(Universal Serial Bus)、Ethernet(登録商標)等の、任意のインタフェースでありうる。
【0028】
情報生成装置及び情報処理装置では、電源を投入されると、CPU701がROM704に格納されているブートプログラムに従って、OSを外部記憶装置708からRAM703にロードする。この結果、キーボード705、マウス706を介したユーザ操作の受け付けと、表示装置707へのGUIの表示とが可能となる。そして、情報生成装置では、CPU701が、キーボード705やマウス706を介したユーザ操作によって3Dモデル記述アプリケーションの起動指示を受け付けたことに応じて、対応するプログラムをRAM703にロードして実行する。同様に、情報処理装置では、GPU702が、キーボード705やマウス706を介したユーザ操作によって物体描画アプリケーションの起動指示を受け付けたことに応じて、三次元物体の描画処理を実行する。これらによって、それぞれ、後述する3Dモデルに関するファイル生成処理と三次元物体の描画処理が実行される。
【0029】
続いて、図8を用いて、情報生成装置と情報処理装置の機能構成例について説明する。なお、図8は、情報生成装置と情報処理装置が有する機能構成例の一例を示しており、示される機能構成の一部または全部が他の構成と置き換えられてもよい。例えば、1つの機能部が複数の機能部に分割されてもよいし、複数の機能部が統合されて1つの機能部として実現されてもよい。一例において、情報生成装置800は、メッシュ取得部801、テクスチャ割当部802、組合せ情報生成部803、ポリゴン情報生成部804、及び3Dモデル出力部805を有する。また、一例において、情報処理装置810は、3Dモデル入力部811、3Dモデル変換部812、及び物体描画部813を有する。これらの機能部は、例えば、情報生成装置及び情報処理装置のCPU701が、それぞれ、3Dモデル記述アプリケーション及び物体描画アプリケーションに対応するプログラムを実行することにより実現されうる。ただしこれに限られず、図8の機能部の一部または全部を実現する専用のハードウェアが用いられてもよい。
【0030】
メッシュ取得部801は、図3(A)で示されるような、三次元物体を表現するメッシュの情報を取得する。メッシュ取得部801は、例えば既知のグローバル座標系に存在し、事前に外部記憶装置708に格納されたメッシュ情報を取得してもよいし、記憶媒体ドライブ709を介して記憶媒体から、又はI/F710を介して外部から、メッシュ情報を取得してもよい。メッシュ取得部801は、このメッシュの情報をテクスチャ割当部802に出力する。テクスチャ割当部802は、メッシュに含まれる各ポリゴンに割り当てるテクスチャ頂点を決定し、テクスチャの割当情報を取得する。テクスチャ割当部802は、各ポリゴンへのテクスチャの割当情報を、組合せ情報生成部803に出力する。組合せ情報生成部803は、取得した割当情報に基づいて、存在するメッシュ頂点番号とテクスチャ頂点番号の組合せを抽出して、図5(A)のような組合せ情報を生成する。組合せ情報生成部803は、組合せ情報をポリゴン情報生成部804に出力する。ポリゴン情報生成部804は、組合せ情報に基づいて、図5(B)のようなポリゴン情報を生成する。このようにして取得/生成されたメッシュ頂点情報、テクスチャ頂点情報、組合せ情報、及びポリゴン情報は、例えば図6(A)のファイルの形式で、三次元物体の描画を行う情報処理装置810へ提供される。
【0031】
3Dモデル入力部811は、例えば、情報生成装置800からファイルを受け付け、取得したファイル内のヘッダを解析する。そして、3Dモデル入力部811は、テクスチャ画像リンクに基づくテクスチャ画像を取得し、また、組合せ情報の数、メッシュ頂点数、テクスチャ頂点数、及びポリゴン数の情報を取得し、各情報を保持するためのメモリ領域を確保する。そして、3Dモデル入力部811は、確保した領域のそれぞれに、組合せ情報、メッシュ頂点座標の情報、テクスチャ頂点座標の情報、及びポリゴンの情報を格納する。3Dモデル変換部812は、3Dモデル入力部811が取得した情報を、メッシュ頂点座標とテクスチャ頂点座標との組合せの情報に変換し、メモリに格納する。物体描画部813は、3Dモデル変換部812がメモリに格納した情報に基づいて、三次元物体を描画する。なお、本実施形態では、図4(A)及び図4(B)のようにメッシュ頂点座標とテクスチャ頂点座標とを対にした状態のデータを受け取る仕様のGPUが多いことに鑑みて、上述の構成例を示しているが、実際の描画の態様に応じて、異なる構成が用いられうる。例えば、図3(A)及び図3(B)と図5(A)及び図5(B)の組合せのような形式のデータから直接描画を行うことが可能な描画装置(GPU)に対しては、3Dモデル変換部812が用いられなくてもよい。また、ここで説明されていない別の形式でのデータを受け取って描画を行う描画装置に対しては、その描画装置に適した形式となるように、3Dモデル変換部812によってデータが変形されうる。
【0032】
(処理の流れ)
図9を用いて、情報生成装置によって実行される、3Dモデルに関するファイル生成処理の流れの例について説明する。本処理は、例えば、既知のグローバル座標系に存在する3Dモデルに対してカメラ撮影によって取得される画像をテクスチャとして付与する場合や、CGのテクスチャを指定した箇所に付与する場合に実行される。本処理では、まず、テクスチャ割当部802が、メッシュ取得部801によって取得されたメッシュ内の各ポリゴンに割り当てるテクスチャを決定する(S901)。そして、組合せ情報生成部803が、S901で行われたテクスチャの割り当てに従って、存在するメッシュ頂点とテクスチャ頂点との組合せを全て抽出して、図5(A)のような組合せ情報を生成する(S902)。そして、ポリゴン情報生成部804が、図5(A)のようにメッシュ頂点とテクスチャ頂点の組合せに対して付与される組合せ番号に基づいて、図5(B)のようなポリゴン情報を生成する(S903)。その後、全ポリゴンについてS903の処理が完了したか否かが判定される(S904)。そして、全ポリゴンについて処理が終了していない場合(S904でNO)は、次のポリゴンの処理へ移行し(S905)、全ポリゴンについての処理が終了するまで(S904でYESとなるまで)、S903の処理が繰り返し実行される。全ポリゴンについてのS903の処理が終了すると、3Dモデル出力部805が、取得/生成された情報に基づいて、図6(A)のような形式のファイルとして3Dモデルを出力する。
【0033】
次に、図10を用いて、情報処理装置によって実行される、情報生成装置によって生成されたファイルに基づく三次元物体の描画処理の流れの例について説明する。なお、上述のように、図4(A)及び図4(B)のような形式のデータを受け取る仕様のGPUが多いことに鑑み、ここでは、情報処理装置が情報生成装置から取得したファイルに基づいて3Dモデルデータをメモリ上に展開して描画を行う処理について説明する。本処理では、まず、3Dモデル入力部811が、取得したファイルのヘッダ情報を解析して、メッシュ頂点座標、テクスチャ頂点座標、組合せ情報、及びポリゴン情報のそれぞれの要素数(サイズ)を読み込む(S1001)。そして、3Dモデル入力部811が、S1001で取得したサイズに従って、各情報を格納するためのメモリ領域を確保し(S1002)、確保したメモリ領域にそれぞれの情報をファイルから読み込んで格納する(S1003)。この時、メッシュ頂点座標、テクスチャ頂点座標、組合せ情報、及びポリゴン情報についてそれぞれ確保されたメモリ領域を、それぞれM1~M4とする。
【0034】
そして、3Dモデル変換部812が、メモリ上に、それぞれが組合せ情報のサイズに対応するサイズのメッシュ頂点座標領域M5とテクスチャ頂点座標領域M6とを確保する(S1004)。例えば、各メッシュ座標値を表すために確保されるビット数が組合せ情報の値を表すために確保されるビット数のN1倍(N1は例えば1以上の値)である場合、M5はM3のN1倍のビット数の領域として確保されうる。同様に、各テクスチャ座標値を表すために確保されるビット数が組合せ情報の値を表すために確保されるビット数のN2倍(N2は例えば1以上の値)である場合M6はM3のN2倍のビット数の領域として確保されうる。そして、3Dモデル変換部812が、組合せ情報に記述されているメッシュ頂点番号及びテクスチャ頂点番号に従って、M1及びM2に格納されている座標値を、M5及びM6にコピーする(S1005)。そして、物体描画部813が、M4~M6に格納された情報をGPUに転送し(S1006)、GPUに対して、要求視点位置を指定して物体のレンダリングを指示し、画像を描画させる(S1007)。なお、上述の例では、一例としてメモリへの情報の展開について詳述したが、実体的には、メッシュ頂点座標とテクスチャ頂点座標との組合せを特定することができるようにする処理が行われる限りにおいて、どのような手法が用いられてもよい。
【0035】
このように、本実施形態では、メッシュ頂点とテクスチャ頂点との組合せ情報を定義して用いる。これにより、組合せ情報を介してポリゴン情報からメッシュ頂点座標及びテクスチャ頂点座標を指定することで、同じメッシュ頂点座標及びテクスチャ頂点座標が複数回記述されることを防ぎ、データ表現の冗長性を削減することができる。また、図5(A)及び図5(B)のような構成を用いることにより、図4(A)及び図4(B)のような三次元物体の描画に適した形式へのデータの変換処理の処理負荷を低減することもできる。
【0036】
(実施形態に係る3Dモデルの第2の記述例)
なお、図1(A)の例では、図1(B)のC0~C5に囲まれたテクスチャ領域が、メッシュ内の2か所に割り当てられたために、1つのテクスチャ頂点が複数のメッシュ頂点に割り当てられた。しかし、実写画像からのテクスチャマッピングを行う場合など、このような繰り返しの貼り付けがほぼ発生しないケースでは、テクスチャ頂点座標が繰り返し記述される状況はほぼ発生しない。このような場合には、組合せ情報を構成する際にテクスチャ頂点番号を記述するのではなく、図11のように、組合せ情報の中にテクスチャ頂点座標を直接記述し、図3(B)の情報を省略してもよい。この場合のファイルの構成を図12(A)~図12(E)に示す。図12(A)の構成は、図6(A)と比較して、テクスチャ頂点座標の領域が省略されている。また、図12(B)のヘッダは、図6(B)のヘッダと比較して、テクスチャ頂点数の情報が省略されている。また、図12(C)の組合せ情報では、テクスチャ頂点番号に代えて、テクスチャ頂点座標の情報が含められる。なお、図12(D)及び図12(E)の構成は、図6(D)及び図6(F)と同様である。これによれば、データの量を削減でき、また、データの展開の処理負担も低減することができる。
【0037】
(実施形態に係る3Dモデルの第3の記述例)
上述の記述例では、メッシュ頂点及びテクスチャ頂点の記述の冗長性を削減するために、存在する全ての組合せ情報を記述した。この手法では、描画のためのメモリ展開時に、メッシュ頂点座標とテクスチャ頂点座標とを、メッシュ頂点番号及びテクスチャ頂点番号を参照して1つ1つコピーする。一方、例えば図5(A)の組合せ番号P0~P5に対応するメッシュ頂点番号はV0~V5であり、展開時には図3(A)のV0~V5までの値をそのまままとめてコピーすることができれば、データ展開処理の負荷を軽減することができる。同様に、例えば図5(A)の組合せ番号P0~P11に対応するテクスチャ頂点番号はC0~C11であり、展開時には図3(B)の表をそのまままとめてコピーすることで、データ展開処理負荷を低減することができる。このため、本記述例では、このようなメッシュ頂点情報及びテクスチャ頂点情報の順序と組合せ情報で記述されるべき各番号の順序とが対応しており座標値のコピーをまとめて実行することが可能な範囲をブロックコピーが可能な範囲として指定する。本記述例では、図5(A)の情報を、例えば、図13のように記述する。すなわち、情報生成装置は、組合せ情報のメッシュ頂点番号とテクスチャ頂点番号とについて、それぞれ、番号が0から連番を維持している数をブロックコピーサイズとして特定し、このブロックコピーサイズの情報をそれらの頂点番号の代わりに記述する。このときに情報生成装置が生成するファイルの一例を図14(A)~図14(F)に示す。情報生成装置は、一例において、メッシュ頂点とテクスチャ頂点とのそれぞれについてのブロックコピーサイズの情報を、ヘッダに格納する。これにより、情報処理装置は、このファイルを取得すると、組合せ情報のうち、P0~P5についてメッシュ頂点座標とテクスチャ頂点座標を、P6~P11についてはテクスチャ頂点座標を、まとめてコピーすることができる。
【0038】
なお、ファイルの形式はこれに限られず、例えば、組合せ情報内にブロックコピーサイズの情報を含めてもよい。すなわち、図14(C)の例では、ブロックコピーの対象とならない組合せ情報についてのメッシュ頂点番号及びテクスチャ頂点番号が記述されているが、各頂点番号の前に、ブロックコピーサイズの情報を格納するようにしてもよい。また、本例では、組合せ情報P0に対してメッシュ頂点番号V0とテクスチャ頂点番号C0との組み合わせが対応することを前提として、P0からブロックコピーが可能な数をブロックコピーサイズとして規定したがこれに限られない。例えば、任意のメッシュ頂点番号とテクスチャ頂点番号からブロックコピーが可能な数を特定し、そのメッシュ頂点番号又はテクスチャ頂点番号とブロックコピーサイズとを記述するようにしてもよい。この場合、例えば、4つの組合せ情報について、メッシュ頂点番号「V1」から「V4」まで連続する場合、メッシュ頂点番号が連続し始める「V1」とブロックコピーサイズ「4」とが記述されうる。この記述は、例えば、任意の組合せ番号からのブロックコピーを可能としうる。例えば、6個の連続する組合せ番号P0~P5に連続するメッシュ頂点番号V3~V8が対応し、4個の連続する組合せ番号P6~P9に連続するメッシュ頂点番号V2~V5が対応する場合、「V3」「6」「V2」「4」等の情報が組合せ情報に記述されうる。これによれば、大きいサイズの3Dモデルに対して、ブロックコピーを行うことができる機会を増やし、メモリ展開時の処理負荷を低減することが可能となる。なお、ここでは、メッシュ頂点番号やテクスチャ頂点番号が連続するか否かでブロックコピーが可能であるか否かが判定可能である場合について説明しているが、これに限られない。すなわち、図3(A)のメッシュ頂点座標又は図3(B)のテクスチャ頂点の情報をまとめてコピーすることができるサイズをブロックコピーサイズとして規定するだけでよい。この場合、図3(A)のメッシュ頂点座標又は図3(B)のテクスチャ頂点は、メッシュ頂点番号順又はテクスチャ頂点番号順に並んでいる必要はない。
【0039】
3Dモデルデータの生成処理の流れは図9と同様であるが、情報生成装置は、S906の処理で、組合せ情報P0からのメッシュ頂点番号及びテクスチャ頂点番号について、それぞれ、番号が0から連続増加している数をブロックコピーサイズとして特定する。そして、情報生成装置は、3Dモデルデータのヘッダ情報にブロックコピーサイズを記述し、ブロックコピーの対象となるメッシュ頂点番号及びテクスチャ頂点番号を省略した形式で組合せ情報を記述する。これにより、図14(A)~図14(F)に示すファイルが生成される。
【0040】
続いて、情報処理装置が上述のファイルに基づいて実行する、三次元物体の描画処理の流れの例について、図15を用いて説明する。なお、本処理において、図10と同様の処理については、図10と共通の参照番号を用いることによってその説明を省略する。本処理では、まず、情報処理装置は、ヘッダ情報を解析して、S1001で読み込まれる情報に加えて、メッシュ頂点及びテクスチャ頂点のブロックコピーサイズの情報を取得する(S1501)。そして、S1002~S1004によってメモリ領域M1~M6の確保と、M1~M4へのデータの格納とが行われた後に、情報処理装置は、ブロックコピーサイズに従って、0番目の要素から指定サイズ分の値をブロックコピーする(S1502)。例えば、メッシュ頂点についてのブロックコピーサイズが6であった場合、情報処理装置は、M5の0~5番目の要素にM1の0~5番目の要素をまとめてコピーする。同様に、テクスチャ頂点についてのブロックコピーサイズが6であった場合、情報処理装置は、M6の0~11番目の要素にM2の0~11番目の要素をまとめてコピーする。この段階で、図13の空欄にあたる情報はメモリへの展開が完了する。その後、情報処理装置は、コピーされていない要素に関して、S1005の処理と同様にして、組合せ情報を参照しながら1つずつ値をコピーする(S1503)。これにより、M5及びM6の領域に、図10を用いて説明したのと同様のデータが展開される。
【0041】
なお、第1~第3の記述例のいずれが用いられているかを示すフラグが、例えばヘッダ内に格納されてもよい。これにより、3Dモデルごとに適切なデータ記述方法を用いることが可能となる。さらに、例えば、第2の記述例において、メッシュ頂点番号の記述を、第3の記述例のように、ブロックコピーサイズを追記することによって一部省略してもよい。すなわち、各記述例を、別個独立に用いてもよいし、組み合わせて用いてもよい。
【0042】
(データ量の比較)
従来例(図4(A)及び図4(B))と、第1及び第3の記述例(図3(A)及び図3(B)と図5(A)及び図5(B)の組合せと、図3(A)及び図3(B)と図13及び図5(B)の組合せ)のデータ量を比較する。ここで、メッシュ頂点座標及びテクスチャ頂点座標はXYZの各座標に対して4バイトの単精度浮動小数、番号は4バイトの整数で記述されるものとする。
【0043】
図4(A)及び図4(B)の場合、図4(A)の情報に(4(バイト数)×3(メッシュ頂点の次元数)+4(バイト数)×2(テクスチャ頂点の次元数))×18(要素数)=360バイトが必要となる。また、図4(B)の情報に、4(バイト数)×4(メッシュ頂点数)×6(要素数)=96バイトが必要となり、図4(A)及び図4(B)の情報に合計456バイトが必要となる。
【0044】
第1の記述例では、図3(A)の情報に4(バイト数)×3(次元数)×8(頂点数)=96バイト、図3(B)の情報に4(バイト数)×2(次元数)×12(頂点数)=96バイトが必要となる。また、図5(A)の情報に4(バイト数)×2(メッシュ頂点番号とテクスチャ頂点番号)×16(要素数)=128バイト、図5(B)の情報には図4(B)と同様に96バイトが必要となる。このため、第1の記述例では、合計416バイトが必要となる。また、第3の記述例では、図5(A)が図13に置き換えられることにより、図13の記述には、4(バイト数)×14(要素数)+4(バイト数)×2(ブロックコピーサイズ要素数)=64バイトが必要となる。このため、第3の記述例は、合計352バイトが必要となる。
【0045】
以上のように、本実施形態の記述例によれば、いずれも、図4(A)及び図4(B)の従来の記述手法と比して、データサイズを削減することができる。さらに、第3の記述例を用いることで、ブロックコピーサイズが大きくなるほど、大幅にデータ量を削減することができるようになる。なお、座標情報及び番号を表現するためのバイト数は一例にすぎず、例えば、頂点数に応じて番号の表現に用いられるバイト数を適宜変動させてもよい。
【0046】
なお、上述の手法は、物体の形状を表すデータとその形状の表面に割り当て可能なテクスチャ平面を表すデータとを用いて、物体形状上の第1の点とテクスチャ平面上の第2の点とを対応付けて三次元物体を表現する任意の手法に適用可能である。すなわち、三次元物体の形状に関するデータとテクスチャ画像に関するデータとを関連付ける情報として組合せ情報が用いられ、形状の第1の点とテクスチャの第2の点との同じ組合せの情報が繰り返し記述されないようにする。そして、三次元物体の形状の各面を組合せ番号によって記述することにより、三次元物体を記述したデータについてのデータ量を削減することが可能となる。
【0047】
<実施形態2>
次に本発明の第2の実施形態について、実施形態1との差異を中心に説明する。実施形態1では、形状とテクスチャの頂点の組合せ情報を用いて3Dモデルが記述される例について説明した。これに対して、本実施形態では、頂点同士の接続関係を表現するエッジの組合せ情報を用いて3Dモデルが記述される場合の例について説明する。
【0048】
図16(A)~図16(F)に、図1(A)のモデルをエッジの組合せ情報を用いて記述した例を示す。図16(A)及び図16(C)は、図3(A)及び図3(B)と同様の、メッシュ及びテクスチャの頂点座標の一覧である。図16(B)は、図16(A)に示したメッシュの頂点番号の組によって、接続された2頂点を結ぶエッジを表現している。同様に、図16(D)は、テクスチャのエッジを表す。図16(E)は、メッシュのエッジに対応するテクスチャのエッジの組合せ情報を表しており、これによって、メッシュとテクスチャとを関連付ける。そして、図16(F)は、面をエッジの組合せ情報を指定することによって定義している。ここで示した表現形式の場合、まずポリゴン情報で組合せ情報にアクセスし、この情報を用いてメッシュ及びテクスチャのエッジにアクセスし、エッジ情報からさらにそれぞれの頂点座標にアクセスし、最終的に面を定義する座標情報を得ることができる。
【0049】
図16(A)~図16(F)のデータ形式の生成処理の流れの例を図17に示す。本処理は、実施形態1の図9に対応するものであり、処理を実行する構成部は図8と同様である。本処理では、まず、メッシュ取得部801によって取得されたメッシュ内の各ポリゴンに割り当てるテクスチャが決定され(S1701)、メッシュとテクスチャのそれぞれのエッジが抽出される(S1702)。そして、S1701で行われたテクスチャの割り当てに従って、S1702で抽出されたメッシュエッジとテクスチャエッジの組合せが全て抽出され、図16(E)のような組合せ情報が生成される(S1703)。そして、図16(E)のようなメッシュエッジとテクスチャエッジの組合せに対して付与される組合せ番号に基づいて、図16(F)のようなポリゴン情報が生成される(S1704)。その後、全ポリゴンについてS1704の処理が完了したか否かが判定される(S1705)。そして、全ポリゴンについて処理が終了していない場合(S1705でNO)は、次のポリゴンの処理へ移行し(S1706)、全ポリゴンについての処理が終了するまで(S1705でYESとなるまで)、S1704の処理が繰り返し実行される。全ポリゴンについてのS1704の処理が終了すると、取得/生成された情報に基づいて、3Dモデルが出力される。
【0050】
このようにして、形状データ及びテクスチャデータの構成要素は頂点であってもよいし、エッジ(辺)であってもよい。いずれの場合であっても、3Dモデルには、形状データの第1の構成要素を記述した第1の情報が含まれ、さらに、第1の構成要素とその第1の構成要素に対応して割り当てられているテクスチャの第2の構成要素との組合せを記述した第2の情報が含まれる。また、3Dモデルでは、第1の構成要素と第2の構成要素との組合せを示す値によって三次元物体の各面の形状と割り当てられるテクスチャとを記述した第3の情報が含まれる。また、3Dモデルには、テクスチャデータに含まれる第2の構成要素を記述した第4の情報が含まれうる。
【0051】
なお、組合せ情報は、同様の考え方で、メッシュとテクスチャで独立にポリゴン情報を生成し、面同士の組合わせとして表現してもよい。すなわち、図3(C)の各ポリゴン番号に対応するメッシュ頂点番号リストと、テクスチャ頂点番号リストをそれぞれ別個に形成し、メッシュポリゴン番号とテクスチャポリゴン情報との組合せを用いて、組合せ情報が生成されてもよい。
【0052】
上述のような表現形式を用いることにより、メッシュとテクスチャとの間のエッジの対応関係をデータに埋め込むことが可能となる。これにより、テクスチャとメッシュのエッジ対応関係を保ちながらモデルを処理する必要がある場合などに、面の接続情報からエッジの解析をすることなく高速にその処理を実行することが可能になる。
【0053】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0054】
701:CPU、702:GPU、703:RAM、704:ROM、708:外部記憶装置、709:記憶媒体ドライブ、801:メッシュ取得部、802:テクスチャ割当部、803:組合せ情報生成部、804:ポリゴン情報生成部、805:3Dモデル出力部、811:3Dモデル入力部、812:3Dモデル変換部、813:物体描画部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17