(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024115626
(43)【公開日】2024-08-27
(54)【発明の名称】プログラム、情報処理装置、及びポリゴン変換方法
(51)【国際特許分類】
G06T 17/20 20060101AFI20240820BHJP
【FI】
G06T17/20 500
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023021350
(22)【出願日】2023-02-15
(71)【出願人】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】110000198
【氏名又は名称】弁理士法人湘洋特許事務所
(72)【発明者】
【氏名】小野 嘉己
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA13
5B080AA19
5B080DA06
5B080FA02
5B080FA09
5B080GA22
(57)【要約】
【課題】 エッジの評価を行わないで三次元モデルの簡略化を行うことを目的とする。
【解決手段】 情報処理装置に実行させるプログラムであって、三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成部と、前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換部として、前記情報処理装置を機能させることを特徴とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理装置に実行させるプログラムであって、
三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成部と、
前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換部として、前記情報処理装置を機能させることを特徴とする、プログラム。
【請求項2】
請求項1に記載のプログラムであって、
前記クラスタ生成部は、基準点である前記三次元モデルのある頂点から、稜線の長さが所定値以下である頂点が属する前記一のクラスタを生成することを特徴とする、プログラム。
【請求項3】
請求項1に記載のプログラムであって、
前記クラスタ生成部は、基準点である前記三次元モデルの表面上のある点から、測地線の長さが所定値以下である頂点が属する前記一のクラスタを生成することを特徴とする、プログラム。
【請求項4】
請求項1に記載のプログラムであって、
前記三次元モデルは、テクスチャの適用に用いられる1又は複数の展開情報と関連しており、
前記展開情報は、前記三次元モデルの各頂点の少なくとも一部を前記展開情報の頂点として有し、
前記クラスタ生成部は、前記展開情報ごとに、前記展開情報の頂点を含む前記一のクラスタを生成することを特徴とする、プログラム。
【請求項5】
請求項4に記載のプログラムであって、
前記新頂点を含むポリゴンで構成された前記三次元モデルに対し、前記展開情報に対応する前記テクスチャを適用させた描画情報を生成する描画情報生成部として、前記情報処理装置を機能させることを特徴とする、プログラム。
【請求項6】
請求項4に記載のプログラムであって、
前記クラスタ生成部は、前記展開情報の外周の位置に対応する頂点が、他の頂点を用いて生成されるクラスタと異なるクラスタに属するよう前記一のクラスタを生成することを特徴とする、プログラム。
【請求項7】
請求項4に記載のプログラムであって、
前記クラスタ生成部は、
ある頂点と、
異なる3つ以上の前記展開情報に属する第一の頂点、及び前記第一の頂点を経由して接続する第二の頂点と、
が異なるクラスタに属するよう前記一のクラスタを生成することを特徴とする、プログラム。
【請求項8】
請求項6に記載のプログラムであって、
前記クラスタ生成部は、前記外周の位置に対応し複数の前記展開情報に属する頂点は、各々の展開情報ごとに生成されたクラスタの積集合となる新たなクラスタに属するよう前記一のクラスタを生成することを特徴とする、プログラム。
【請求項9】
請求項6に記載のプログラムであって、
前記クラスタ生成部は、前記外周の位置に対応する頂点について、隣り合う3頂点のなす角であって、前記三次元モデルの表面上の角度が所定値以下である場合、
ある頂点と、
前記3頂点の中央に位置する第一の頂点、及び前記第一の頂点を経由して接続する第二の頂点と、
が異なるクラスタに属するよう前記一のクラスタを生成することを特徴とする、プログラム。
【請求項10】
請求項9に記載のプログラムであって、
前記クラスタ生成部は、前記隣り合う3頂点が異なる前記展開情報の前記外周の位置に対応する場合において、前記隣り合う3頂点のなす角であって、前記三次元モデルの表面上の角度が所定値以下である場合、
ある頂点と、
前記3頂点の中央に位置する第一の頂点、及び前記他の頂点を経由して接続する第二の頂点と、
が異なるクラスタに属するよう前記一のクラスタを生成することを特徴とする、プログラム。
【請求項11】
請求項4に記載のプログラムであって、
前記ポリゴン変換部は、ある前記展開情報に対応する頂点がなす前記距離がすべて所定値以下である場合、前記展開情報に対応する頂点を削除することを特徴とする、プログラム。
【請求項12】
請求項1に記載のプログラムであって、
前記ポリゴン変換部は、前記三次元モデルの穴を検出し、前記穴を構成する複数の頂点がなす前記距離を用いて、前記穴を埋める頂点を生成するか否かを判定することを特徴とする、プログラム。
【請求項13】
請求項2又は3に記載のプログラムであって、
基準値の入力を受け付ける基準値入力画面の描画情報を生成する描画情報生成部として、前記情報処理装置を機能させ、
前記所定値は、前記基準値を用いて算出されることを特徴とする、プログラム。
【請求項14】
請求項2に記載のプログラムであって、
前記稜線の長さは、前記三次元モデルを構成するポリゴンのエッジであって、2頂点を結ぶ1又は複数の前記エッジの長さの合計であることを特徴とする、プログラム。
【請求項15】
三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成部と、
前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換部とを備えることを特徴とする、情報処理装置。
【請求項16】
情報処理装置において実行されるポリゴン変換方法であって、
三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成手順と、
前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換手順とを実行することを特徴とする、ポリゴン変換方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置、及びポリゴン変換方法に関する。
【背景技術】
【0002】
コンピューターグラフィックス技術を用いて三次元モデルを生成する場合において、高精細な三次元モデルから、より簡略化された三次元モデルを生成する技術が知られている。
【0003】
特許文献1には、オリジナルモデルの詳細な部分を削った近似化モデルを生成するために、モデルに割り当てていた法線の除去や値の変更を行いつつ、近似化後の品質劣化を防ぐ、形状データの近似化方法が開示されている。本方法では、オリジナルモデルの有する各エッジを評価し、得られた値に基づいてエッジ除去を繰り返すことにより、三次元モデルを構成するポリゴンを簡略化する。
【0004】
特許文献1に開示された技術では、エッジを除去した場合の体積の変化量を算出して評価値とし、モデル形状への寄与が最小のエッジを除去する。この処理を繰り返し、所望の解像度の近似化データを得る。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
簡略化された三次元モデルを得るにあたり、処理負荷の軽減が求められる。特許文献1に開示された技術では、三次元モデルの有する各エッジを評価した後、評価値の大きさでソートし、最小値のエッジを除去し、エッジを除去した後に残る頂点の位置を決定する。さらに、当該技術では、新たな頂点を用いて構成される三次元モデルの各エッジを再度評価し、評価値が最小値のエッジを除去することを繰り返して、簡略化された三次元モデルを得る。このように、本技術では、各エッジの評価と除去を繰り返すため、三次元モデルの簡略化を実行する情報処理装置の処理負荷が大きい。
【0007】
そこで、本発明は、エッジの評価を行わないで三次元モデルの簡略化を行うことを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の一態様に係るプログラムは、情報処理装置に実行させるプログラムであって、三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成部と、前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換部として、前記情報処理装置を機能させることを特徴とする。
【0009】
上記のプログラムにおいて、前記クラスタ生成部は、基準点である前記三次元モデルの表面上のある頂点から、稜線の長さが所定値以下である頂点が属する前記一のクラスタを生成することを特徴としてもよい。
【0010】
上記のプログラムにおいて、前記クラスタ生成部は、基準点である前記三次元モデルの表面上のある点から、測地線の長さが所定値以下である頂点が属する前記一のクラスタを生成することを特徴としてもよい。
【0011】
上記のプログラムにおいて、前記三次元モデルは、テクスチャの適用に用いられる1又は複数の展開情報と関連しており、前記展開情報は、前記三次元モデルの各頂点の少なくとも一部を前記展開情報の頂点として有し、前記クラスタ生成部は、前記展開情報ごとに、前記展開情報の頂点を含む前記一のクラスタを生成することを特徴としてもよい。
【0012】
上記のプログラムは、前記新頂点を含むポリゴンで構成された前記三次元モデルに対し、前記展開情報に対応する前記テクスチャを適用させた描画情報を生成する描画情報生成部として、前記情報処理装置を機能させることを特徴としてもよい。
【0013】
上記のプログラムにおいて、前記クラスタ生成部は、前記展開情報の外周の位置に対応する頂点が、他の頂点を用いて生成される前記クラスタと異なるクラスタに属するよう前記一のクラスタを生成することを特徴としてもよい。
【0014】
上記のプログラムにおいて、前記クラスタ生成部は、ある頂点と、異なる3つ以上の前記展開情報に属する第一の頂点、及び前記第一の頂点を経由して接続する第二の頂点と、が異なるクラスタに属するよう前記一のクラスタを生成することを特徴としてもよい。
【0015】
上記のプログラムにおいて、前記クラスタ生成部は、前記外周の位置に対応し複数の前記展開情報に属する頂点は、各々の展開情報ごとに生成されたクラスタの積集合となる新たなクラスタに属するよう前記一のクラスタを生成することを特徴としてもよい。
【0016】
上記のプログラムにおいて、前記クラスタ生成部は、前記外周の位置に対応する頂点について、隣り合う3頂点のなす角であって、前記三次元モデルの表面上の角度が所定値以下である場合、ある頂点と、前記3頂点の中央に位置する第一の頂点、及び前記第一の頂点を経由して接続する第二の頂点と、が異なるクラスタに属するよう前記一のクラスタを生成することを特徴としてもよい。
【0017】
上記のプログラムにおいて、前記クラスタ生成部は、前記隣り合う3頂点が異なる前記展開情報の前記外周の位置に対応する場合において、前記隣り合う3頂点のなす角であって、前記三次元モデルの表面上の角度が所定値以下である場合、ある頂点と、前記3頂点の中央に位置する第一の頂点、及び前記第一の頂点を経由して接続する第二の頂点と、が異なるクラスタに属するよう前記一のクラスタを生成することを特徴としてもよい。
【0018】
上記のプログラムにおいて、前記ポリゴン変換部は、ある前記展開情報に対応する頂点がなす前記距離がすべて所定値以下である場合、前記展開情報に対応する頂点を削除することを特徴としてもよい。
【0019】
上記のプログラムにおいて、前記ポリゴン変換部は、前記三次元モデルの穴を検出し、前記穴を構成する複数の頂点がなす前記距離を用いて、前記穴を埋める頂点を生成するか否かを判定することを特徴としてもよい。
【0020】
上記のプログラムは、基準値の入力を受け付ける基準値入力画面の描画情報を生成する描画情報生成部として、前記情報処理装置を機能させ、前記所定値は、前記基準値を用いて算出されることを特徴としてもよい。
【0021】
上記のプログラムにおいて、前記稜線の長さは、前記三次元モデルを構成するポリゴンのエッジであって、2頂点を結ぶ1又は複数の前記エッジの長さの合計であることを特徴としてもよい。
【0022】
上記の課題を解決する本発明の他の態様は、情報処理装置であって、三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成部と、前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換部とを備えることを特徴とする。
【0023】
上記の課題を解決する本発明の他の態様は、情報処理装置において実行されるポリゴン変換方法であって、三次元モデルを構成するポリゴンの頂点のうち、前記三次元モデルの表面上の基準点から、前記三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを前記基準点ごとに生成するクラスタ生成手順と、前記一のクラスタに属する頂点を統合した頂点である新頂点を生成し、前記三次元モデルを構成するポリゴンを、前記新頂点を含むポリゴンへ切り替えるポリゴン変換手順とを実行ことを特徴とする。
【発明の効果】
【0024】
本発明の一態様によれば、エッジの評価を行わないで三次元モデルの簡略化を行うことができる。
【図面の簡単な説明】
【0025】
【
図1】第1の実施形態における情報処理装置の機能ブロック図の一例である。
【
図2】第1の実施形態における三次元モデルの表面上の距離を説明するための図である。
図2(A)は、凹凸のある三次元モデルの一部の一例を示す図であり、
図2(B)は、頂点P1及び頂点P2の間の表面上の距離を説明するための図である。
【
図3】第1の実施形態における情報処理装置のハードウェア構成図の一例である。
【
図4】第1の実施形態におけるクラスタ生成処理のフローチャートの一例である。
【
図5】クラスタ生成処理を説明するための図である。
図5(A)は、頂点P1を基準頂点としてクラスタを生成する図の一例であり、
図5(B)は、頂点P3を基準頂点としてクラスタを生成する図の一例である。
【
図6】クラスタ生成処理を説明するための図(その2)である。
図6(A)は、頂点P2のクラスタの割り当て処理を説明するための図(その1)であり、
図6(B)は、頂点P2のクラスタの割り当て処理を説明するための図(その2)であり、
図6(C)は、クラスタ生成処理終了後のイメージを示す図である。
【
図7】基準値の入力を受け付ける基準値入力画面の一例を示す図である。
【
図8】第1の実施形態におけるポリゴン変換処理のフローチャートの一例である。
【
図9】ポリゴン変換処理の一例を説明するための図である。
図9(A)は、ポリゴン変換処理の準備状態の一例を示しており、
図9(B)は、クラスタC2の頂点を統合した状態の一例を示しており、
図9(C)は、他のクラスタの頂点を統合した状態の一例を示す図である。
【
図10】第1の実施形態の第1の変形例における外周クラスタ生成処理のフローチャートの一例である。
【
図11】第1の実施形態の第1の変形例における外周クラスタ生成処理を説明するための図である。
図11(A)は、第1の変形例における外周頂点のクラスタの割り当て処理を説明するための図であり、
図11(B)は、第1の変形例における外周クラスタ生成終了後のイメージを示す図である。
【
図12】第1の実施形態の第2の変形例における外周クラスタ生成処理のフローチャートの一例である。
【
図13】第1の実施形態の第2の変形例における外周クラスタ生成処理を説明するための図である。
図13(A)は、第2の変形例における外周頂点のクラスタの割り当て処理を説明するための図であり、
図13(B)は、第1の変形例における外周クラスタ生成終了後のイメージを示す図である。
【
図14】第1の実施形態の第3の変形例における外周クラスタ生成処理のフローチャートの一例である。
【
図15】第1の実施形態の第3の変形例における外周クラスタ生成処理を説明するための図(その1)である。
図15(A)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その1)であり、
図15(B)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その2)である。
【
図16】第1の実施形態の第3の変形例における外周クラスタ生成処理を説明するための図(その2)である。
図16(A)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その3)であり、
図16(B)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その4)である。
【
図17】第1の実施形態の第4の変形例におけるポリゴン変換処理のフローチャートの一例である。
【
図18】第1の実施形態の第4の変形例におけるポリゴン変換処理を説明するための図である。
【
図19】第1の実施形態の第5の変形例におけるポリゴン変換処理のフローチャートの一例である。
【
図20】第1の実施形態の第5の変形例におけるポリゴン変換処理を説明するための図(その1)である。
図20(A)は、ポリゴン上の穴を説明するための図であり、
図20(B)は、穴を埋めるか否かの判定を説明するための図である。
【
図21】第1の実施形態の第5の変形例におけるポリゴン変換処理を説明するための図(その2)である。
図21(A)は、穴を埋める処理を説明するための図(その1)であって、
図21(B)は、穴を埋める処理を説明するための図(その2)である。
【
図22】第2の実施形態におけるゲーム装置のハードウェア構成図の一例である。
【
図23】一般的なポリゴン削減アルゴリズムを説明するための図である。
図23(A)は、ポリゴン削減前の三次元モデルの一部の一例を示し、
図23(B)は、ポリゴン削減後の三次元モデルの一部の一例を示す。
【発明を実施するための形態】
【0026】
<第1の実施形態>
以下、図面に基づいて本発明の実施の形態を説明する。3Dコンピューターグラフィックスの編集用ソフトウェアを用いて立体形状を表現する場合、三角形や四角形のポリゴンにより三次元モデルを構成する手法が用いられている。一般的に、三次元モデルにおいて、より細かい形状を表現するには、より多くのポリゴンが用いられる。しかしながら、多くのポリゴンを使用した三次元モデルデータは、描画の際や通信の際の処理負荷の増大の原因となる。
【0027】
そのため、三次元モデルの形状をできる限り保持したまま、簡略化する技術が開発されている。例えばQEM(Quadratic Error Metrics)という手法は、三次元モデルの形状保持性能が高い技術として、広く用いられている。
【0028】
図23は、一般的なポリゴン削減アルゴリズムを説明するための図である。
図23(A)は、ポリゴン削減前の三次元モデルの一部の一例を示し、
図23(B)は、ポリゴン削減後の三次元モデルの一部の一例を示す。
図23(B)は、
図23(A)の三次元モデルの一部のポリゴンを削減した場合の図である。
【0029】
図23(A)に示す三次元モデルは、頂点P1及び頂点P2を有しており、頂点P1及び頂点P2はエッジEの両端に位置する。一般的なポリゴン削減アルゴリズムは、三次元モデルが有するエッジごとに、両端の2頂点を1頂点に削減した場合のコストを算出し、コストの小さなエッジから順に、頂点の削減対象に決定する。本アルゴリズムは、頂点の削減対象に決定したエッジ上に新たな1頂点を生成し、両端の2頂点を削除することにより、頂点数を削減する。頂点数が削減されると、ポリゴン数が減少する。本アルゴリズムは、頂点の削減後の三次元モデルについて、再度エッジごとにコストを算出し、頂点の削減対象となるエッジを決定する処理を繰り返す。
【0030】
図23に示す例において、エッジEを削除した場合のコストが小さいことから、エッジEが削除対象と判断された場合、本アルゴリズムは頂点P1及び頂点P2を削除し、新たな頂点P3を作成する。換言すれば、頂点P1及び頂点P2が頂点P3に縮減される。なお、結果として、エッジEが削除される。
【0031】
本アルゴリズムは、コストの算出の際、エッジの両端の頂点に隣接する各面に関する情報を使用する。
図23の例を用いて説明すると、本アルゴリズムは、エッジEの削減コストを算出するために、頂点P1又は頂点P2と接する各面の傾き(勾配)を算出し、頂点ごとに傾きの和を算出する。また、本アルゴリズムは、頂点P1と接する各面と新たな頂点P3との距離の二乗、及び頂点P2と接する各面と頂点P3との距離の二乗の和が最小限となる頂点P3を決定するとともに、算出した値を用いてエッジEの削減コストを得る。
【0032】
このように、一般的なポリゴン削減アルゴリズムでは、最もコストの小さなエッジを削減するために、三次元モデルの有する各面に関する値を算出し、各頂点に関する値を算出し、各辺に関する値を算出した後、最も評価値の低いエッジを特定する。さらに、本アルゴリズムでは、次のエッジを削除するために、再度当該処理を繰り返す必要があり、処理負荷の増大の原因となっている。
【0033】
図1は、第1の実施形態における情報処理装置10の機能ブロック図の一例である。情報処理装置10は、例えばPC(Personal Computer)等の装置である。一例として、情報処理装置10は、ゲームプログラムの制作者により操作される。
【0034】
情報処理装置10は、処理部110と、記憶部120と、入力部130と、出力部140と、通信部150とを備える。処理部110は、情報処理装置10の全体を統括的に制御する。記憶部120は、処理部110の処理に必要な情報を記憶する。入力部130は、入力装置を用いて制作者からの入力操作を受け付ける。出力部140は、出力装置を介して情報処理装置10の有する情報を出力する。通信部150は、ネットワークを介して通信可能に接続された、図示しない他の情報処理装置との情報の送受信を仲介する。
【0035】
処理部110は、三次元モデル取得部111と、展開情報取得部112と、ポリゴン変換部113と、クラスタ生成部114と、描画情報生成部115と、パラメータ取得部116と、を備える。三次元モデル取得部111は、ポリゴンにより構成される三次元モデルのデータを取得する。以下、三次元モデルを構成する三次元モデルデータを、単に「三次元モデル」と表記する場合がある。例えば、三次元モデル取得部111は、情報処理装置10にインストールされた編集用ソフトウェアを用いて、情報処理装置10の操作者である制作者により作成された三次元モデルを、ポリゴン変換の処理対象として取得する。なお、三次元モデル取得部111は、他の情報処理装置10により作成された三次元モデルを、通信部150を介して取得してもよい。
【0036】
展開情報取得部112は、三次元モデルの展開情報を取得する。展開情報は、三次元モデルにテクスチャ座標を付与するために、三次元モデルを展開して得られる情報である。一例として、展開情報取得部112は、三次元モデルにテクスチャを適用するために、三次元モデルを二次元に展開した二次元展開情報を取得する。二次元展開情報は、三次元モデルに二次元のテクスチャを適用するために用いられる情報であって、三次元モデルの各頂点の座標(ワールド座標)とテクスチャ座標(UV座標)とが関連付けられた情報といえる。
【0037】
例えば、展開情報取得部112は、編集用ソフトウェアに表示された三次元モデルの切れ目の入力を受け付け、入力された切れ目により展開された二次元展開情報を取得する。なお、三次元モデルが複雑な形状である場合などは、1つの二次元展開情報により適用されたテクスチャで1つの三次元モデルを描画するのが困難である可能性がある。その場合、展開情報取得部112は、1つの三次元モデルを用いて作成される、複数の展開情報を取得する。なお、1つの三次元モデルから作成された1又は複数の二次元展開情報の各々は、UVアイランドと呼ばれることがある。付言すれば、展開情報取得部112は、他の情報処理装置10により作成された展開情報を、通信部150を介して取得してもよい。
【0038】
なお、展開情報取得部112が取得する展開情報は、三次元モデルの各頂点の座標とテクスチャ座標とが関連付けられている情報であればよく、三次元モデルを二次元に展開した情報に限定されない。例えば、テクスチャ座標が三次元である場合、展開情報は三次元モデルを二次元に展開した情報でなくてよい。
【0039】
ポリゴン変換部113は、後述するクラスタ生成部114により生成された一のクラスタに属する頂点を統合した頂点である新頂点を生成する。ポリゴン変換部113は、三次元モデルを構成するポリゴンを、新頂点を含むポリゴンへ切り替える。その結果、ポリゴン数が減少する。
【0040】
クラスタ生成部114は、三次元モデルを構成するポリゴンの頂点のうち、三次元モデルの表面上の基準点から、三次元モデルの表面上の予め定めた距離の範囲内に位置する頂点が属する一のクラスタを、基準点ごとに生成する。一例として、クラスタ生成部114は、三次元モデルの表面上の距離として、測地線の長さを求める。測地線とは、三次元モデル上の二点を結ぶ、三次元モデルの表面上の曲線のうち最短の直線又は曲線である。例えばクラスタ生成部114は、三次元モデルの表面上のある点を基準点として特定し、基準点から、測地線の長さが所定値以下である頂点が属する一のクラスタを生成する。
【0041】
なお、クラスタ生成部114は、三次元モデルの表面上の距離として、稜線の長さを求めてもよい。稜線とは、三次元モデル上の2頂点を結ぶポリゴンのエッジのうち、最短距離となるエッジにより構成される線である。その場合、例えばクラスタ生成部は、三次元モデルのある頂点を基準点として特定し、基準点から、稜線の長さが所定値以下である頂点が属する一のクラスタを生成する。
【0042】
図2は、第1の実施形態における三次元モデルの表面上の距離を説明するための図である。
図2(A)は、凹凸のある三次元モデルの一部の一例を示す図であり、
図2(B)は、頂点P1及び頂点P2の間の表面上の距離を説明するための図である。
【0043】
図2(A)に示す例において、三次元モデルはメッシュMを有し、メッシュMは頂点P1、頂点P2、及び頂点PMを有する。メッシュMは、例えばカーテンの襞のように、縦方向に波打った形状を有している。メッシュMの襞に沿って、頂点P1と頂点P2とを結ぶ測地線Rは湾曲している。本図に示す例では、測地線Rの長さが、頂点P1と頂点P2との間の、三次元モデルの表面上の距離である。
【0044】
以下、特筆する場合を除き、三次元モデルの表面上の距離は、測地線の長さであるものとして説明する。なお、三次元モデルの表面上の距離は、稜線の長さであってもよい。
【0045】
本実施形態において、クラスタ生成部114は、測地線の長さに基づいて頂点をクラスタ化する。ポリゴン変換部113は、クラスタ化された複数の頂点を統合し、1つの新頂点を生成することにより、ポリゴンを削減する。
【0046】
図2に示す例では、頂点P1から直線距離がRである範囲を、半径Nの球Xで示している。
図2(A)に示すように、頂点P1から頂点PMまでの直線距離、及び頂点P1から頂点P2までの直線距離は、いずれもN以下である。仮に、クラスタ生成部114が、頂点P1から直線距離がN以下である複数の頂点をクラスタ化する場合、頂点P1、頂点PM、頂点P2は、いずれも同じクラスタに属する。ポリゴン変換部113が、同じクラスタに属する複数の頂点を1つの頂点に縮減すると、頂点P1と頂点P2とが結合することになり、メッシュMの襞の形状が損なわれる。
【0047】
図2(B)は、測地線Rの長さを保ったまま、測地線Rを直線に伸ばした場合の図である。本図に示す例では、測地線Rの長さが、頂点P1と頂点P2との間の距離であって、三次元モデルの表面上の距離である。
図2(B)に示す例において、測地線Rの長さはNを超えている。クラスタ生成部114は、ある頂点と他の頂点との間の測地線の長さがN以下である場合に、当該2頂点が属する一のクラスタを生成する。即ち、
図2(B)に示す例において、頂点P1と頂点P2とは同じクラスタに分類されない。従って、頂点P1と頂点P2とは統合されず、メッシュMの襞の形状は損なわれない。
【0048】
なお、本図に示す例において、頂点P1と頂点PMとの間の測地線の長さはN以下であるため、頂点P1と頂点PMとは同じクラスタに分類される。従って、ポリゴン変換部113は、頂点P1と頂点PMとを統合して新頂点を作成する。
【0049】
付言すれば、三次元モデルを構成するポリゴンにおいて、1つのエッジの両端に位置する2頂点を、隣接する2頂点として説明すると、本図に示す例では、頂点P1と頂点P2との間には少なくとも頂点PMが存在しており、頂点P1と頂点P2とは隣接していない。測地線の長さを用いて複数の頂点をクラスタ化する場合、クラスタ生成部114がクラスタ化する頂点は、隣接する2頂点に限定されない。クラスタ生成部114は、2つ以上のエッジを介して接続される2頂点についても、測地線の長さが所定値以下であれば、同じクラスタに属すると判定する。
【0050】
先述したように、三次元モデルの表面上の距離は、稜線の長さであってもよい。即ち、
図2に示す例において、メッシュMが頂点P1と頂点P2との間に頂点PMのみを有し、他の頂点を有さない場合、頂点P1と頂点P2の間の三次元モデルの表面上の距離は、頂点P1と頂点PMとを両端に有するエッジと、頂点PMと頂点P2とを両端に有するエッジと、の長さの合計により算出することができる。なお、三次元モデルの表面上の距離の算出方法は、上述の例に限定されない。
【0051】
説明を
図1に戻す。描画情報生成部115は、三次元モデルの描画情報を生成する。一例として、描画情報生成部115は、前記新頂点を含むポリゴンで構成された三次元モデルを、編集用ソフトウェアの編集画面に表示するための描画情報を生成する。他の例として、描画情報生成部115は、前記新頂点を含むポリゴンで構成された三次元モデルに対し、展開情報に対応するテクスチャを適用させた描画情報を生成する。また、描画情報生成部115は、クラスタ生成部114が各頂点をクラスタ化する基準となる基準値の入力を受け付ける後述の基準値入力画面141の描画情報を生成する。
【0052】
パラメータ取得部116は、基準値入力画面141に入力された基準値を取得し、所定の計算式を用いることにより、クラスタ生成部114がクラスタを生成する際の距離の判定に用いる所定値を算出する。例えば、パラメータ取得部116は、基準値入力画面141に入力されたポリゴンの削減率や、最大ポリゴン数を、基準値として取得する。パラメータ取得部116は、入力された基準値に、予め設定された計算式を適用することにより、距離の判定に用いる所定値を算出する。
【0053】
記憶部120は、三次元モデル情報121と、展開情報122とを記憶している。三次元モデル情報121は、三次元モデル取得部111が取得した三次元モデルデータである。展開情報122は、展開情報取得部112が取得した情報であって、三次元モデルデータの頂点のワールド座標とテクスチャ座標とが関連付けられた情報である。本実施形態では、展開情報122は、1つの三次元モデルに対して作成された、1又は複数のUVアイランドである。UVアイランドに含まれる各頂点は、UV座標を有しており、三次元モデルの有する各頂点と関連付けられている。
【0054】
図3は、第1の実施形態における情報処理装置10のハードウェア構成図の一例である。情報処理装置10は、プロセッサ11と、メモリ12と、ストレージ13と、入力インターフェイス装置14と、出力インターフェイス装置15と、通信インターフェイス装置16とを有し、各構成要素はバスにより接続されている。
【0055】
プロセッサ11は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などの演算ユニットであって、メモリ12又はストレージ13に記録されたプログラムに従って処理を実行する。処理部110を構成する各要素は、プロセッサ11がプログラムを実行することにより各々の機能を実現する。メモリ12は、例えば、RAM(Random Access Memory)などの記憶装置である。ストレージ13は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュROM(Read Only Memory)などの記録装置である。
【0056】
入力インターフェイス装置14は、キーボード、マウス、タッチパネル等の入力装置に接続され、当該入力装置からの操作信号を受け付ける装置である。出力インターフェイス装置15は、ディスプレイ等の出力装置に接続され、当該出力装置へと出力を行う装置である。通信インターフェイス装置16は、ネットワークケーブルを介して有線通信を行う通信装置、アンテナを介して無線通信を行う通信装置を含む、情報を送受信する装置である。
【0057】
例えば、プロセッサ11は、ストレージ13に記憶されているコンピューターグラフィックスソフトウェアのプログラムを読み込み、メモリ12に展開する。なお、情報処理装置10には、該コンピューターグラフィックスソフトウェアが予めインストールされている。プロセッサ11は、プログラムを実行することで、例えば情報処理装置10からの入力操作の信号に従ってコンピューターグラフィックスソフトウェアの表示画面上に所望の情報を出力する。
【0058】
なお、情報処理装置10の各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、情報処理装置10の各構成要素の処理は、1つのプログラムで実現されてもよいし、複数のプログラムで実現されてもよい。例えば、あるハードウェアでポリゴンの削減を行った後、三次元モデルを他の情報処理装置10に提供し、当該他の情報処理装置10で三次元モデルの描画情報を生成してもよい。
【0059】
図4は、第1の実施形態におけるクラスタ生成処理のフローチャートの一例である。本図の処理を開始する前に、三次元モデル取得部111は、ポリゴンの削減の対象となる三次元モデルを取得し、三次元モデル情報121として記憶部120に格納している。また、展開情報取得部112は、三次元モデル取得部111の取得した三次元モデル情報121のUVアイランドを取得し、展開情報122として記憶部120に格納している。
【0060】
まず、クラスタ生成部114は、処理対象のUVアイランドを特定する(ステップS11)。具体的には、クラスタ生成部114は、処理対象となる三次元モデルを指定する入力操作を受け付けると、指定された三次元モデルを展開して得られたUVアイランドの1つを、処理対象として特定する。なお、クラスタ生成部114は、処理対象となるUVアイランドを指定する入力操作を受け付けることにより、UVアイランドを特定してもよい。
【0061】
次に、クラスタ生成部114は、UVアイランドに含まれる頂点を抽出する(ステップS12)。具体的には、クラスタ生成部114は、ステップS11で特定したUVアイランドについて展開情報122を参照し、UVアイランドに含まれる頂点を抽出する。なお、抽出するUVアイランド上の各頂点は、三次元モデルにテクスチャを適用する際に、適用する位置を指定するためのテクスチャ座標を有する。クラスタ生成部114は、抽出したUVアイランドの頂点に対応する、三次元モデルの頂点を抽出する。なお、三次元モデルの各頂点は、三次元モデルを表示する空間内の位置を示すワールド座標を有する。
【0062】
次に、クラスタ生成部114は、ステップS12で抽出した頂点から、クラスタに含まれていない任意の1頂点を基準頂点に決定する(ステップS13)。
【0063】
次に、クラスタ生成部114は、測地線の長さが所定値以下の頂点を抽出してクラスタを生成する(ステップS14)。具体的には、クラスタ生成部114は、ステップS13において特定された基準頂点を始点とし、測地線の長さが所定値以下である他の頂点が存在する場合に、当該頂点を抽出する。クラスタ生成部114は、基準頂点と、抽出した頂点とが同じクラスタに属するよう、クラスタを生成する。なお、クラスタ生成部114は、基準頂点から測地線の長さが所定値以下である他の頂点が存在しない場合、基準頂点のみを含むクラスタを生成する。
【0064】
次に、クラスタ生成部114は、複数のクラスタに含まれている頂点が存在するか否かを判定する(ステップS15)。具体的には、クラスタ生成部114は、ステップS14におけるクラスタ生成の結果、複数のクラスタに重複して属している頂点が存在するか否かを判定する。
【0065】
クラスタ生成部114が、複数のクラスタに含まれている頂点が存在すると判定する場合(ステップS15で「YES」の場合)、クラスタ生成部114は、該当する頂点を、基準頂点が最も近いクラスタに含める(ステップS16)。具体的には、クラスタ生成部114は、ステップS15において、複数のクラスタに含まれていると判定した頂点の各々について、当該頂点が属しているクラスタのうち、最も基準頂点が近いクラスタを特定する。クラスタ判定部は、当該頂点を、最も基準頂点が近いクラスタに属するよう割り当てる。なお、クラスタ生成部114は、測地線の長さを用いて、どの基準頂点に最も近いかを判定する。
【0066】
本処理の結果、ステップS15において、複数のクラスタに含まれていると判定された各頂点は、1つのクラスタに所属するよう、クラスタへの割り当てが変更される。
【0067】
クラスタ生成部114が、複数のクラスタに含まれている頂点が存在しないと判定する場合(ステップS15で「NO」の場合)、又は、ステップS16の後、クラスタ生成部114は、クラスタに含まれていない頂点が存在するか否かを判定する(ステップS17)。具体的には、クラスタ生成部114は、ステップS12で抽出した頂点のうち、まだクラスタに含まれていない頂点が存在するか否かを判定する。
【0068】
クラスタ生成部114が、まだクラスタに含まれていない頂点が存在しないと判定する場合(ステップS17で「NO」の場合)、処理部110は本フローチャートの処理を終了する。
【0069】
クラスタ生成部114が、まだクラスタに含まれていない頂点が存在すると判定する場合(ステップS17で「YES」の場合)、クラスタ生成部114は、処理をステップS13に移行する。その結果、クラスタ生成部114は、まだクラスタに含まれていないと判定した頂点のうち1つを、ステップS13において基準頂点に決定する。
【0070】
図5は、クラスタ生成処理を説明するための図(その1)である。
図5(A)は、頂点P1を基準頂点としてクラスタを生成する図の一例であり、
図5(B)は、頂点P3を基準頂点としてクラスタを生成する図の一例である。
図5に示す黒い点は、各々三次元モデルのワールド座標上の頂点を示している。
【0071】
図5(A)に示す例において、クラスタ生成部114は、頂点P1を基準頂点に決定している。本図では、頂点P1から測地線の長さがLである空間を、模擬的に円Y1として表示している。なお、測地線の長さは三次元モデルの表面の凹凸の影響を受けること、及び展開情報の生成の際に歪みが発生することから、実際の円Y1は、真円とはならない場合がある。クラスタ生成部114は、ワールド座標において、頂点P1から測地線の長さがL以下である頂点を抽出し、抽出した頂点が属する一のクラスタを生成する。その結果、クラスタ生成部114は、頂点P1、頂点P2、及びその他の複数の頂点を含むクラスタを生成する。
【0072】
図5(B)において、クラスタ生成部114は、頂点P1を基準頂点とし、頂点P2を含むクラスタC1を生成している。その後、クラスタ生成部114は、頂点P3を基準頂点とし、基準頂点から測地線の長さがL以下である頂点を抽出する。なお、本図において、頂点P2は、クラスタC1に所属し、かつ頂点P3との測地線の長さがL以下である。即ち、先述のステップS15において、クラスタ生成部114は、頂点P2が複数のクラスタに含まれていると判定する。
【0073】
図6は、クラスタ生成処理を説明するための図(その2)である。
図6(A)は、頂点P2のクラスタの割り当て処理を説明するための図(その1)であり、
図6(B)は、頂点P2のクラスタの割り当て処理を説明するための図(その2)であり、
図6(C)は、クラスタ生成処理終了後のイメージを示す図である。
【0074】
図5(B)において、複数のクラスタに含まれていると判定された頂点P2について、クラスタ判定部は、
図6(A)に示すように、基準頂点P1及び基準頂点P2のどちらに近いかを判定する。即ち、先述のステップS16において、クラスタ生成部114は、頂点P2と基準頂点P1との間の測地線Z1を特定する。また、クラスタ生成部114は、頂点P2と基準頂点P3との間の測地線Z2を特定する。クラスタ生成部114は、測地線Z1と測地線Z2とを比較し、頂点P2が基準頂点P3に近いと判定する。なお、
図6(A)において、便宜上、測地線Z1・Z2を直線で表示しているが、三次元モデルの表面上の凹凸の影響により、実際の測地線Z1・Z2は曲線である場合がある。
【0075】
その結果、
図6(B)に示すように、頂点P2は、基準頂点P3と同じクラスタC2に属するようクラスタ化される。
【0076】
その後、クラスタ生成部114は、いずれのクラスタにも含まれない頂点についてクラスタを生成する処理を実行する。結果として、
図6(C)に示すように、抽出した頂点かいずれかのクラスタC1~C4に含まれるよう、クラスタが生成される。
【0077】
なお、
図4のステップS13において、クラスタ生成部114は、UVアイランドに含まれる頂点の中から基準頂点を決定し、基準頂点からの測地線の長さに基づいて、他の頂点をクラスタに分類する。しかしながら、クラスタ生成部114は、三次元モデルの表面に位置する任意の基準点からの測地線の長さに基づいて、各頂点をクラスタに分類してもよい。即ち、基準点は三次元モデルの頂点に限定されない。すなわち、基準点は、基準頂点を含む。
【0078】
図4に示すクラスタ生成処理の結果、UVアイランドに対応する三次元モデルの頂点が、いずれかのクラスタに所属するよう、クラスタが生成される。例えばクラスタ生成部114は、処理対象の三次元モデルについて生成されたすべてのUVアイランドについて、クラスタ生成処理を実行する。本処理により、各々のUVアイランドに対応する三次元モデルの有する頂点が、それぞれいずれかのクラスタに分類される。
【0079】
換言すれば、各UVアイランドは、三次元モデルの各頂点の少なくとも一部を、展開情報の頂点として有する。クラスタ生成部114は、展開情報であるUVアイランドごとに、当該展開情報の頂点に対応する三次元モデルの頂点を含むクラスタを生成する。
【0080】
なお、三次元モデルの一部のポリゴンを削減する場合、クラスタ生成部114は、ポリゴン変換の対象となるUVアイランドの指定を受け付けることができる。その場合、クラスタ生成部114は、指定されたUVアイランドに対応する三次元モデルの頂点が含まれるよう、クラスタを生成し、指定されていないUVアイランドに対応する頂点については、クラスタを生成しない。
【0081】
図7は、基準値の入力を受け付ける基準値入力画面141の一例を示す図である。描画情報生成部115は、入力部130を介して基準値入力画面141の表示指示を受け付けると、基準値入力画面141をディスプレイに表示させる。
【0082】
本図に示す例において、基準値入力画面141は、削減率と、最大ポリゴン数のいずれかの種別の選択を受け付け、選択された種別の基準値の入力を受け付ける。パラメータ取得部116は、基準値入力画面141に入力された基準値に対し、所定の計算式を用いることにより、近傍判定に用いる所定値を算出する。算出の結果得られた所定値は、
図4に示すフローチャートのステップS14において、頂点を抽出するか否かの判定に用いられる。
【0083】
図8は、第1の実施形態におけるポリゴン変換処理のフローチャートの一例である。本処理の開始前に、三次元モデルの少なくとも一部が有する複数の頂点が含まれる、1又は複数のクラスタが生成されている。例えば、ポリゴン変換部113が、ポリゴン数の削減対象となる三次元モデルの指定を受け付けると、本処理が開始される。
【0084】
まず、ポリゴン変換部113は、処理対象のクラスタを特定する(ステップS21)。例えば、ポリゴン変換部113は、本処理開始前に指定された三次元モデルの有する1又は複数のクラスタのうち、1つのクラスタを処理対象として特定する。
【0085】
次に、ポリゴン変換部113は、クラスタに複数の頂点が存在するか否かを判定する(ステップS22)。具体的には、ポリゴン変換部113は、ステップS21で処理対象として特定されたクラスタに、三次元モデルの複数の頂点が含まれているか否かを判定する。
【0086】
ポリゴン変換部113が、クラスタに複数の頂点が存在すると判定する場合(ステップS22で「YES」の場合)、ポリゴン変換部113は、クラスタ内の頂点の座標の相加平均を求めて新頂点の座標とし、元の頂点を削除する(ステップS23)。具体的には、ポリゴン変換部113は、三次元モデル情報121を参照し、ステップS21で処理対象として特定されたクラスタに含まれる各頂点のワールド座標を特定する。ポリゴン変換部113は、特定した各頂点の座標の相加平均を求め、新頂点の座標に決定する。ポリゴン変換部113は、処理対象のクラスタに含まれる他の頂点を削除し、三次元モデル情報121を更新する。即ち、ポリゴン変換部113は、クラスタ内の頂点を統合して新頂点を生成する。
【0087】
なお、新頂点が生成された結果、三次元モデルのポリゴンは、新頂点を含むポリゴンへと切り替わる。クラスタ内の頂点が複数である場合、新頂点の生成により三次元モデルの頂点数が減少する。三次元モデルの頂点数が減少すると、三次元モデルを構成するポリゴンの数が減少する。付言すれば、クラスタ内の頂点が1つである場合、ポリゴン変換部113は、当該頂点を新頂点として取り扱う。
【0088】
なお、三次元モデルに含まれる各頂点は、各々法線情報、頂点カラー情報、ウェイト情報等の各種の頂点データを有する。ポリゴン変換部113は、クラスタ内の頂点について、それぞれの頂点データの相加平均を求め、新頂点の頂点データとして、三次元モデル情報121に格納する。
【0089】
ポリゴン変換部113が、クラスタに複数の頂点が存在しないと判定する場合(ステップS22で「NO」の場合)、又はステップS23の処理の後、ポリゴン変換部113は、未処理のクラスタが存在するか否かを判定する(ステップS24)。例えば、ポリゴン変換部113は、処理対象の三次元モデルの有するクラスタのうち、ステップS21で処理対象に特定されていないクラスタが存在するか否かを判定する。
【0090】
ポリゴン変換部113が、未処理のクラスタが存在すると判定する場合(ステップS24で「YES」の場合)、ポリゴン変換部113は、処理をステップS21に移行する。その結果、ポリゴン変換部113は、ステップS21において、未処理のクラスタの1つを処理対象として特定する。
【0091】
ポリゴン変換部113が、未処理のクラスタが存在しないと判定する場合(ステップS24で「NO」の場合)、処理部110は本フローチャートの処理を終了する。
【0092】
図9は、ポリゴン変換処理の一例を説明するための図である。
図9(A)は、ポリゴン変換処理の準備状態の一例を示しており、
図9(B)は、クラスタC2の頂点を統合した状態の一例を示しており、
図9(C)は、他のクラスタの頂点を統合した状態の一例を示す図である。
【0093】
図9(A)に示す例において、クラスタC2には、頂点P2~P5が含まれている。ポリゴン変換部113は、頂点P2~P5の座標の相加平均を算出し、新頂点P6の座標に決定する。ポリゴン変換部113は、クラスタC2に含まれる頂点のうち、新頂点P6を除く他の頂点を削除する。
【0094】
図9(B)に示すように、ポリゴン変換部113がクラスタC2に含まれる頂点を削除した結果、クラスタC2には新頂点P6のみが含まれている。ポリゴン変換部113は、クラスタC1、クラスタC3、及びクラスタC4についても、同様のポリゴン変換処理を実行する。
【0095】
図9(C)に示すように、ポリゴン変換部113がクラスタC1、クラスタC3、及びクラスタC4に含まれる頂点を統合した結果、クラスタC1には新頂点P8のみが含まれ、クラスタC3には新頂点P9のみが含まれ、クラスタC4には新頂点P7のみが含まれる。
【0096】
以上、本実施形態によれば、三次元モデルの表面上の距離に基づいて三次元モデルの頂点が統合されるため、ポリゴン数を削減することができる。また、本実施形態によれば、三次元モデルを構成するポリゴンを、新頂点を含むポリゴンへ切り替える処理を行うことにより、簡略化された三次元モデルを得ることができる。
【0097】
<第1の変形例>
次に、本実施形態の第1の変形例について説明する。以下、上述の実施形態と異なる点について説明する。
【0098】
先述したように、UVアイランドは、二次元展開情報として、三次元モデルの少なくとも一部を二次元に展開した情報であって、各頂点にUV座標が付与されている。UVアイランドは、三次元モデルにテクスチャを適用するために用いられるため、UVアイランドの外周に位置する頂点は、テクスチャの境界に位置するか、又は三次元モデルの端部に位置する頂点である可能性が高い。
【0099】
UVアイランドの外周に位置する頂点について、他の頂点と同様にクラスタに分類して頂点削減処理を行うと、三次元モデルの端部やテクスチャの境界の形状が損なわれ、美感に及ぼす影響が大きい。従って、本変形例では、UVアイランドの外周の位置に対応する三次元モデルの各頂点が、UVアイランドの外周に位置しない他の頂点と異なる外周クラスタを構成するよう、クラスタを生成する。
【0100】
なお、一例として、1つの三次元モデルを用いて複数のUVアイランドを生成する場合、複数のUVアイランドの境界に位置する頂点は、各々のUVアイランドに所属する。従って、当該頂点は、所属する各々のUVアイランドに固有のUV座標を有する可能性がある。以下に示す例では、三次元モデル上の1頂点が2つのUVアイランドに所属する場合、当該頂点は、1つのワールド座標と、2つのUV座標とを有する。
【0101】
換言すれば、1つのワールド座標を有する頂点が複数のUV座標を有する場合、当該頂点は複数のUVアイランドの境界に位置する可能性が高い。
【0102】
図10は、第1の実施形態の第1の変形例における外周クラスタ生成処理のフローチャートの一例である。例えば、本フローチャートの処理は、ポリゴン変換処理の対象となる三次元モデルについて作成されたUVアイランドの各々に対し、
図4に示すクラスタ生成処理が終了した後に実行される。
【0103】
ステップS31の処理は、
図4のステップS11の処理と同様であるため、説明を省略する。
【0104】
次に、クラスタ生成部114は、UVアイランドの外周に位置する外周頂点を抽出する(ステップS32)。以下、UVアイランドの外周に位置する頂点に対応する三次元モデルの頂点を、「外周頂点」として説明する。クラスタ生成部114は、ステップS31において処理対象として特定したUVアイランドについて、展開情報122を参照し、外周部分に位置する頂点を抽出する。クラスタ生成部114は、UVアイランドの当該頂点に対応する三次元モデルの頂点を、外周頂点として抽出する。
【0105】
次に、クラスタ生成部114は、外周頂点の中から、外周クラスタに含まれていない任意の1頂点を基準頂点に決定する(ステップS33)。具体的には、クラスタ生成部114は、ステップS32で抽出した外周頂点のうち、外周クラスタに含まれていない任意の1つの外周頂点を、基準頂点に決定する。
【0106】
次に、クラスタ生成部114は、測地線の長さが所定値以下の他の外周頂点を抽出する(ステップS34)。具体的には、クラスタ生成部114は、ステップS32で抽出した外周頂点のうち、ステップS33で決定した基準頂点との距離が所定値以下である、他の外周頂点を抽出する。なお、本ステップにおいて判定に用いる測地線の長さは、上述の実施形態における測地線の長さと同様に、三次元モデルの表面上の長さである。
【0107】
次に、クラスタ生成部114は、基準頂点が3つ以上のUVアイランドに属するか否かを判定する(ステップS35)。具体的には、クラスタ生成部114は、展開情報122を参照し、ステップS33で決定した基準頂点が、3つ以上のUVアイランドに属するか否かを判定する。例えば、クラスタ生成部114は、当該頂点が3つ以上のUV座標を有する場合に、3つ以上のUVアイランドに属すると判定する。
【0108】
クラスタ生成部114が、基準頂点が3つ以上のUVアイランドに属さないと判定する場合(ステップS35で「NO」の場合)、クラスタ生成部114は、3つ以上のUVアイランドに属する他の外周頂点を特定したか否かを判定する(ステップS36)。具体的には、クラスタ生成部114は、展開情報122を参照し、ステップS34で抽出した外周頂点のうち、3つ以上のUVアイランドに属する外周頂点が存在するか否かを判定する。
【0109】
クラスタ生成部114が、3つ以上のUVアイランドに属する他の外周頂点を特定したと判定する場合(ステップS36で「YES」の場合)、クラスタ生成部114は、該当する外周頂点、及び当該外周頂点を経由して接続する他の外周頂点を抽出から除外する(ステップS37)。具体的には、クラスタ生成部114は、3つ以上のUVアイランドに属する外周頂点を、ステップS34において抽出した外周頂点から除外する。また、クラスタ生成部114は、3つ以上のUVアイランドに属する頂点を経由して基準頂点と接続する他の外周頂点を、ステップS34において抽出した外周頂点から除外する。
【0110】
3つ以上のUVアイランドに属する他の外周頂点を特定していないと判定する場合(ステップS36で「NO」の場合)、又は、ステップS37の処理の後、クラスタ生成部114は、抽出した外周頂点を含む外周クラスタを生成する(ステップS38)。なお、本ステップにおいて生成される外周クラスタには、UVアイランドの外周に位置しない三次元モデルの頂点が含まれない。
【0111】
次に、クラスタ生成部114は、外周頂点のうち、外周クラスタに含まれていない頂点が存在するか否かを判定する(ステップS39)。具体的には、クラスタ生成部114は、ステップS32において抽出した外周頂点のうち、外周クラスタに含まれていない外周頂点が存在するかを判定する。
【0112】
クラスタ生成部114が、外周頂点のうち、外周クラスタに含まれていない頂点が存在すると判定する場合(ステップS39で「YES」の場合)、クラスタ生成部114は、処理をステップS33に移行する。即ち、ステップS33では、外周クラスタに含まれていない外周頂点のうち任意の1頂点が、基準頂点として決定される。
【0113】
クラスタ生成部114が、外周頂点のうち、外周クラスタに含まれていない頂点が存在しないと判定する場合(ステップS39で「NO」の場合)、処理部110は本フローチャートの処理を終了する。
【0114】
ステップS35において、クラスタ生成部114が、基準頂点が3つ以上のUVアイランドに属すると判定する場合(ステップS35で「YES」の場合)、クラスタ生成部114は、基準頂点以外を抽出から除外する(ステップS40)。即ち、本ステップの結果、基準頂点のみが外周頂点として抽出される。
【0115】
ステップS41からステップS42において実行される処理は、ステップS38からステップS39において実行される処理と同様であるため、説明を省略する。
【0116】
図11は、第1の実施形態の第1の変形例における外周クラスタ生成処理を説明するための図である。
図11(A)は、第1の変形例における外周頂点のクラスタの割り当て処理を説明するための図であり、
図11(B)は、第1の変形例における外周クラスタ生成終了後のイメージを示す図である。
【0117】
図11(A)に示す例において、頂点P1~P4は、各々UVアイランドUV1に属している。また、頂点P1、頂点P2、及び頂点P5は、各々UVアイランドUV2に属している。また、頂点P2、頂点P3、頂点P4、頂点P6、及び頂点P7、は、各々UVアイランドUV3に属している。また、頂点P2、頂点P5、頂点P6、及び頂点P7は、各々UVアイランドUV4に属している。
【0118】
クラスタ生成部114は、頂点P1を基準頂点として特定する。クラスタ生成部114は、基準頂点P1を始点として、測地線の長さがL以下である他の外周の頂点P2、頂点P3、頂点P4、頂点P5、及び頂点P6を抽出する。
【0119】
クラスタ生成部114は、
図10に示すステップS36において、基準頂点P1の近傍の頂点のうち、3つ以上のUVアイランドに属する外周頂点として、頂点P2を特定する。クラスタ生成部114は、基準頂点P1の近傍の頂点のうち、頂点P2、及び頂点P2を介して基準頂点P1と接続する頂点P3、頂点P4、頂点P5、及び頂点P6を、抽出から除外する。
【0120】
図11(B)に示すように、クラスタ生成部114の外周クラスタ生成処理の結果、基準頂点P1が属する外周クラスタであるクラスタC1に、抽出から除外した頂点P2、頂点P3、頂点P4、頂点P5、及び頂点P6は含まれていない。また、3つ以上のUVアイランドに属する頂点P2は、当該頂点P2のみが含まれるクラスタC2に属している。即ち、本図に示すように、クラスタ生成部114は、異なる3つ以上のUVアイランドに属する外周頂点、及び当該外周頂点を経由して接続する他の外周頂点が、基準頂点である頂点P1とは異なるクラスタに属するよう外周クラスタを生成する。
【0121】
以上、本変形例によれば、UVアイランドの外周の位置に対応する三次元モデルの頂点が、他の頂点を用いて生成されるクラスタと異なる外周クラスタに属するようクラスタが生成される。従って、三次元モデルの端部やテクスチャの境界に位置するポリゴンの形状への影響を抑えつつ、ポリゴンの簡略化を実行することができる。また、本変形例においても、三次元モデルを構成するポリゴンを、新頂点を含むポリゴンへ切り替える処理が行われるため、簡略化された三次元モデルを得ることができる。
【0122】
また、3つ以上のUVアイランドに属する外周頂点と、当該外周頂点を介して接続する他の頂点とが基準頂点と異なるクラスタに属するようクラスタ化される。従って、ポリゴン数の削減の際に、テクスチャ適用後の三次元モデルへの外観への影響を抑制することができる。
【0123】
<第2の変形例>
次に、本実施形態の第2の変形例について説明する。以下、上述の実施形態と異なる点について説明する。本変形例では、直列に接続する3つの頂点がなす角が所定値以下である場合に、三次元モデルの該当部分が特徴的な形状を有する可能性が高いものと取り扱い、ポリゴンの削減を抑制する。
【0124】
図12は、第1の実施形態の第2の変形例における外周クラスタ生成処理のフローチャートの一例である。例えば、本フローチャートの処理は、
図10に示す外周クラスタ生成処理と同様に、ポリゴン変換処理の対象となる三次元モデルについて作成されたUVアイランドの各々に対し、
図4に示すクラスタ生成処理が終了した後に実行される。なお、本フローチャートの処理は、
図10に示す外周クラスタ生成処理の前又は後に実行されてもよい。
【0125】
ステップS51からステップS54において行われる処理は、
図10のステップS31からステップS34において行われる処理と同様であるため、説明を省略する。
【0126】
次に、クラスタ生成部114は、隣接する3頂点がなす角を抽出する(ステップS55)。具体的には、クラスタ生成部114は、ステップS52で抽出した外周頂点のうち、直列に接続する3頂点の各々がなす角を抽出する。なお、隣接する3頂点がなす角とは、当該3頂点のうち2頂点を各々両端に有する2つのエッジがなす角であって、劣角の側の角をいう。また、なす角とは、三次元モデルの3頂点により形成される、3次元モデルの表面上の角度をいう。
【0127】
なお、本実施形態において、抽出した外周頂点の各々を両端に有するエッジが分岐する場合がある。クラスタ生成部114は、エッジが分岐する場合、分岐するエッジの各々がなす角を、直列に接続する3頂点の各々がなす角として抽出する。
図11(A)に示す例では、頂点P2を中心に外周頂点がなすエッジが分岐している。クラスタ生成部114は、頂点P1-頂点P2-頂点P3がなす角、頂点P1-頂点2-頂点P5がなす角、頂点P3-頂点P2-頂点P6がなす角、頂点P5-頂点P2-頂点P6がなす角を、各々抽出する。
【0128】
説明を
図12に戻す。次に、クラスタ生成部114は、基準頂点と、基準頂点に各々隣接する2頂点と、がなす角が所定値以下であるか否かを判定する(ステップS56)。即ち、クラスタ生成部114は、基準頂点を一端に有する2つのエッジがなす角が所定値以下であるか否かを判定する。換言すれば、クラスタ生成部114は、直列的に隣接する3頂点であって、基準頂点を中央に有する3頂点がなす角が所定値以下であるか否かを判定する。なお、中央に有するとは、3頂点の中の順序が2番目であることを意味しており、1番目及び3番目の外周頂点の中点であることを必ずしも意味しない。
【0129】
付言すれば、所定値は、クラスタ生成部114がクラスタの判定に用いる所定値と同様に、パラメータ取得部116が、操作者により入力された基準値に対して所定の計算式を用いることにより算出することができる。パラメータ取得部116は、所定値に用いる角度自体の入力操作を受け付けるものであってもよい。
【0130】
クラスタ生成部114が、基準頂点と、基準頂点に各々隣接する2頂点とがなす角が所定値以下でないと判定する場合(ステップS56で「NO」の場合)、クラスタ生成部114は、なす角が所定値以下である他の外周頂点の組み合わせが存在するか否かを判定する(ステップS57)。具体的には、クラスタ生成部114は、ステップS55で抽出した、なす角が、所定値以下である3つの外周頂点の組み合わせがあるか否かを判定する。
【0131】
クラスタ判定部が、なす角が所定値以下である他の外周頂点の組み合わせがあると判定する場合(ステップS57で「YES」の場合)、クラスタ生成部114は、該当する外周頂点、及び当該外周頂点を経由して接続する他の外周頂点を抽出から除外する(ステップS58)。具体的には、クラスタ生成部114は、ステップS57において、なす角が所定値以下である3つの外周頂点の組み合わせのうち、中央に位置する外周頂点を特定する。クラスタ生成部114は、特定した外周頂点を、ステップS54において抽出した外周頂点から除外する。また、クラスタ生成部114は、特定した外周頂点を経由して基準頂点と接続する他の外周頂点を、ステップS54において抽出した外周頂点から除外する。
【0132】
なす角が所定値以下である他の外周頂点の組み合わせが存在しないと判定する場合(ステップS57で「NO」の場合)、又は、ステップS58の処理の後、クラスタ生成部114は、抽出した外周頂点を含む外周クラスタを生成する(ステップS59)。なお、本ステップにおいて生成される外周クラスタには、UVアイランドの外周に位置しない三次元モデルの頂点が含まれない。
【0133】
ステップS60からステップS63において実行される処理は、
図10のステップS39からステップS42において実行される処理と同様であるため、説明を省略する。
【0134】
図13は、第1の実施形態の第2の変形例における外周クラスタ生成処理を説明するための図である。
図13(A)は、第2の変形例における外周頂点のクラスタの割り当て処理を説明するための図であり、
図13(B)は、第2の変形例における外周クラスタ生成終了後のイメージを示す図である。
【0135】
図13(A)に示す例において、頂点P1~P4は、各々UVアイランドの外周に位置する三次元モデルの頂点である。クラスタ生成部114は、頂点P1を基準頂点に特定し、基準頂点P1から測地線の長さがL以下である外周頂点の一部として、頂点P2、頂点P3、及び頂点P4を抽出する。
図12のステップS57において、クラスタ生成部114は、頂点P2-頂点P3-頂点P4がなす角θが、所定値T以下であると判定する。クラスタ生成部114は、基準頂点P1の近傍の頂点のうち、なす角θの中央に位置する頂点P3、及び頂点P3を介して接続される頂点P4を、抽出から除外する。
【0136】
図13(B)に示すように、第2の変形例におけるクラスタ生成部114の外周クラスタ生成処理の結果、基準頂点P1が属する外周クラスタであるクラスタC1に、抽出から除外した頂点P3、及び頂点P4は含まれていない。また、なす角が所定値T以下である3つの外周頂点の中央に位置する頂点P3は、当該頂点P3のみが含まれるクラスタC2に属している。即ち、本図に示すように、クラスタ生成部114は、なす角が所定値T以下である外周頂点の中央に位置する頂点P3、及び当該外周頂点を経由して接続する他の外周頂点である頂点P4が、基準頂点P1とは異なるクラスタに属するよう、外周クラスタを生成する。
【0137】
以上、本変形例によれば、UVアイランドの外周の位置に対応する三次元モデルの頂点のうち、所定値以下の角度をなす3頂点の中央に位置する外周頂点が、他の外周頂点と異なる外周クラスタに属するようクラスタが生成される。UVアイランドの外周に位置する三次元モデルの頂点のうち、隣接する3頂点のなす角が小さい場合、該当部分のポリゴンの形状又はテクスチャの形状が特徴的であって、削減対象とすることが妥当でない可能性がある。外周頂点がなす角を参照してクラスタを生成することにより、特徴的な形状のポリゴン変換を抑制することができ、より高品質のポリゴン削減後の三次元モデルを得ることができる。
【0138】
なお、本変形例では、クラスタ生成部114は、同じUVアイランドに属する複数の外周頂点について、なす角を参照して外周クラスタを生成する。しかしながら、クラスタ生成部114は、異なるUVアイランドに属する複数の外周頂点についても、なす角を参照することができる。即ち、クラスタ生成部114は、隣接する3頂点が異なるUVアイランドの外周の位置に存在する場合において、当該3頂点がなす角が所定値以下であるか否かを判定することができる。結果として、クラスタ生成部114は、2つのUVアイランドがなす角が所定値以下である場合においても、基準頂点が他のUVアイランドに属する頂点と異なるクラスタに属するようクラスタを生成することができる。
【0139】
<第3の変形例>
次に、本実施形態の第3の変形例について説明する。以下、上述の実施形態と異なる点について説明する。本変形例では、複数のUVアイランドの境界に位置する頂点について、適切にクラスタを生成することにより、ポリゴン変換後の三次元モデルの外観に及ぼす影響を抑制する。
【0140】
図14は、第1の実施形態の第3の変形例における外周クラスタ生成処理のフローチャートの一例である。例えば、本フローチャートの処理は、
図10に示す外周クラスタ生成処理と同様に、ポリゴン変換処理の対象となる三次元モデルについて作成されたUVアイランドの各々に対し、
図4に示すクラスタ生成処理が終了した後に実行される。なお、本フローチャートの処理は、
図10及び
図12に示す外周クラスタ生成処理の前又は後に実行されてもよい。例えば、本フローチャートの処理は、対象となる三次元モデルを指定する入力操作を受け付けると開始される。
【0141】
まず、クラスタ生成部114は、UVアイランドの外周に位置する外周頂点を抽出する(ステップS71)。具体的には、クラスタ生成部114は、展開情報122を参照し、対象となる三次元モデルに対して生成されたUVアイランドの外周に位置する三次元モデルの外周頂点を抽出する。
【0142】
次に、クラスタ生成部114は、外周頂点を含むクラスタを抽出する(ステップS72)。具体的には、クラスタ生成部114は、ステップS71で抽出した外周頂点を含むクラスタを抽出する。抽出するクラスタは、外周頂点以外の頂点を含んでいてもよいし、上述の第1の変形例又は第2の変形例において生成される外周クラスタのように、外周頂点以外の頂点を含まないクラスタであってもよい。
【0143】
次に、クラスタ生成部114は、同じ外周頂点を含む複数のクラスタが存在するか否かを判定する(ステップS73)。上述したように、本実施形態において、三次元モデルの1頂点が複数のUVアイランドに所属する場合、複数のUV座標を有する。UV座標に基づいてクラスタの生成を行う場合、1つの頂点が複数のクラスタに属している可能性がある。
【0144】
クラスタ生成部114が、同じ外周頂点を含む複数のクラスタが存在しないと判定する場合(ステップS73で「NO」の場合)、クラスタ生成部114は、本フローチャートの処理を終了する。
【0145】
図15は、第1の実施形態の第3の変形例における外周クラスタ生成処理を説明するための図(その1)である。
図15(A)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その1)であり、
図15(B)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その2)である。
【0146】
図15に示す頂点P1~P7は、各々三次元モデル上の頂点であって、ワールド座標を有する。UV1の点線上に位置する頂点は、頂点P1~P7に対応する、UVアイランドUV1の頂点を模擬的に示したものである。同様に、UV2の点線上に位置する頂点は、頂点P1~P7に対応する、UVアイランドUV2の頂点を模擬的に示したものである。
【0147】
本図に示す例において、頂点P2~P5は、クラスタC11に属している。また、頂点P3~P7は、クラスタC21に属している。即ち、頂点P3、頂点P4、及び頂点P5は、異なる複数のクラスタに属している。従って、
図14のステップS73において、クラスタ生成部114は、外周頂点である頂点P3、頂点P4、及び頂点P5を含む複数のクラスタが存在すると判定する。
【0148】
説明を
図14に戻す。クラスタ生成部114が、同じ外周頂点を含む複数のクラスタが存在すると判定する場合(ステップS73で「YES」の場合)、クラスタ生成部114は、複数のクラスタの積集合となる新たなクラスタを生成して、外周頂点を割り当てる(ステップS74)。具体的には、クラスタ生成部114は、複数のUVアイランドに属する三次元モデルの頂点について、各々のUVアイランドごとに生成されたクラスタの積集合となる新たなクラスタを生成する。
【0149】
クラスタ生成部114は、複数のクラスタに含まれていると判定された外周頂点を新たなクラスタに割り当てる。本処理終了後、クラスタ生成部114は処理をステップS73に移行する。即ち、クラスタ生成部114は、同じ外周頂点を含む複数のクラスタが存在しないと判定するまで、ステップS74の処理を繰り返す。
【0150】
図15(B)に示す例において、クラスタ生成部114は、複数のクラスタに属すると判定した頂点P3、頂点P4、及び頂点P5を含む新たなクラスタC31を生成する。即ち、クラスタ生成部114は、クラスタC11と、クラスタC21との積集合となる新たなクラスタC31を生成し、複数のクラスタに属すると判定した頂点P3、頂点P4、及び頂点P5を新たなクラスタC31に割り当てる。
【0151】
図16は、第1の実施形態の第3の変形例における外周クラスタ生成処理を説明するための図(その2)である。
図16(A)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その3)であり、
図16(B)は、第3の変形例における外周頂点のクラスタの割り当て処理を説明するための図(その4)である。
【0152】
図16(A)に示す例において、頂点P2は、クラスタC11と、クラスタC22とに属している。そのため、クラスタ生成部114は、クラスタC11とクラスタC22との積集合となるクラスタC32を生成し、頂点P2を割り当てる。同様に、頂点P6及び頂点P7は、クラスタC13と、クラスタC21とに属している。そのため、クラスタ生成部114は、クラスタC13とクラスタC21との積集合となるクラスタC33を生成し、頂点P6及び頂点P7を割り当てる。なお、頂点P1は、クラスタC12と、クラスタC22とに属している。そのため、同様に、クラスタ生成部114は、クラスタC12とクラスタC22との積集合となるクラスタC34を生成し、頂点P1を割り当てる。
【0153】
その結果、
図16(B)に示すように、クラスタC34に頂点P1が割り当てられ、クラスタC32に頂点P2が割り当てられ、クラスタC31に頂点P3、頂点P4、及び頂点P5が割り当てられ、クラスタC33に頂点P6、及び頂点P7が割り当てられる。
【0154】
なお、1つの頂点が複数のクラスタに属したまま頂点が統合されると、UVアイランドの境界近傍の頂点が異なる基準で削減されることから、三次元モデルの外観に意図しない影響を及ぼす可能性がある。本変形例によれば、複数のクラスタに属していた頂点が、1つのクラスタに属するよう割り当てが変更されるため、三次元モデルの外観への影響を抑制しつつ、三次元モデルを簡略化することができる。
【0155】
<第4の変形例>
次に、本実施形態の第4の変形例について説明する。以下、上述の実施形態と異なる点について説明する。本変形例では、あるUVアイランドの頂点に対応する三次元モデルの各頂点が、所定の基準より小さい形状を構成する場合に、ポリゴン変換部113が該当部分を削除する。
【0156】
図17は、第1の実施形態の第4の変形例におけるポリゴン変換処理のフローチャートの一例である。例えば、本フローチャートの処理は、ポリゴン変換処理の対象となる三次元モデルについて作成されたUVアイランドの各々に対し、
図4に示すクラスタ生成処理が終了した後に実行される。
【0157】
まず、ポリゴン変換部113は、処理対象のUVアイランドを特定する(ステップS81)。具体的には、ポリゴン変換部113は、処理対象となる三次元モデルを指定する入力操作を受け付けると、指定された三次元モデルに対応するUVアイランドの1つを、処理対象として特定する。
図4のステップS11と同様に、ポリゴン変換部113は、処理対象となるUVアイランドを指定する入力操作を受け付けることにより、UVアイランドを特定してもよい。
【0158】
次に、ポリゴン変換部113は、UVアイランドに含まれる頂点を抽出する(ステップS82)。具体的には、ポリゴン変換部113は、ステップS81で特定したUVアイランドについて展開情報122を参照し、UVアイランドに含まれる頂点と対応する三次元モデルの頂点を抽出する。
【0159】
次に、ポリゴン変換部113は、まだ処理対象として特定していない任意の1頂点を基準頂点に決定する(ステップS83)。具体的には、ポリゴン変換部113は、ステップS82において抽出した頂点の中から、まだ処理対象として特定していない1頂点を基準頂点に決定する。
【0160】
次に、ポリゴン変換部113は、抽出した他の頂点との測地線の長さがすべて所定値以下であるか否かを判定する(ステップS84)。具体的には、ポリゴン変換部113は、ステップS83で決定した基準頂点と、ステップS82において抽出した1又は複数の他の頂点との測地線の長さを、各々特定する。ポリゴン変換部113は、特定した測地線の長さのすべてが、所定値以下であるか否かを判定する。
【0161】
ポリゴン変換部113が、抽出した他の頂点との測地線の長さがすべて所定値以下であると判定する場合(ステップS84で「YES」の場合)、ポリゴン変換部113は、抽出した頂点をすべて処理対象に決定したか否かを判定する(ステップS85)。即ち、ポリゴン変換部113は、基準頂点と、抽出した他の頂点との測地線の長さのすべてが所定値以下であると判定する場合、ステップS82で抽出した頂点をすべて処理対象に決定したか否かを判定する。
【0162】
ポリゴン変換部113が、抽出した頂点をすべて処理対象に決定していないと判定する場合(ステップS85で「NO」の場合)、ポリゴン変換部113は処理をステップS83に移行する。即ち、ステップS82において、ポリゴン変換部113は、まだ処理対象として特定していない頂点を基準頂点に決定する。
【0163】
ポリゴン変換部113が、抽出した頂点をすべて処理対象に決定したと判定する場合(ステップS85で「YES」の場合)、ポリゴン変換部113は、抽出した頂点を削除する(ステップS86)。即ち、ポリゴン変換部113は、UVアイランドに含まれる頂点同士の測地線の長さがすべて所定値以下であると判定する場合、抽出した頂点を削除する。具体的には、ポリゴン変換部113は、ステップS82において抽出した、三次元モデルの頂点を削除し、三次元モデル情報121を更新する。その後、処理部110は本フローチャートの処理を終了する。
【0164】
図18は、第1の実施形態の第4の変形例におけるポリゴン変換処理を説明するための図である。本図に示す例において、まず、ポリゴン変換部113は、頂点P1~頂点P9を、UVアイランドに含まれる頂点として抽出する。ポリゴン変換部113は、抽出した頂点のうち、頂点P1を基準頂点に決定し、抽出したP2~P9の各々との測地線の長さを特定する。ポリゴン変換部113は、特定した測地線の長さのすべてが所定値以下であると判定する場合、他の頂点を基準頂点に決定する。
【0165】
本図に示す例では、頂点P1~頂点P9のいずれを基準頂点に決定した場合であっても、各々の頂点により構成される測地線の長さが所定値S以下である。従って、ポリゴン変換部113は、頂点P1~頂点P9を三次元モデルから削除する。
【0166】
以上、本変形例では、あるUVアイランドに対応する三次元モデルの頂点がなす三次元モデルの表面上の長さがすべて所定値以下である場合、ポリゴンの大きさが小さいために削除しても問題ないものと取り扱い、当該ポリゴンを構成する頂点を削除する。外観に及ぼす影響が少ないポリゴンを削除するため、三次元モデルを簡略化できる。
【0167】
なお、本変形例では、基準頂点と、UVアイランドに含まれる他の頂点との測地線の長さがすべて所定値以下である場合に、該当する頂点を削除する。しかしながら、削除する頂点の決定方法は本例に限定されない。ポリゴン変換部113は、UVアイランドに対応する三次元モデルの頂点がなすポリゴンが小さい場合に、該当する頂点を削除すればよい。例えば、ポリゴン変換部113は、UVアイランドに含まれる複数の頂点がなす各測地線の長さの平均と、予め設定された値とを比較することにより、頂点を削除するか否かを決定してもよい。
【0168】
<第5の変形例>
次に、本実施形態の第5の変形例について説明する。以下、上述の実施形態と異なる点について説明する。本変形例では、三次元モデルに穴が空いている場合において、穴の存在が外観に及ぼす影響が小さい場合に、ポリゴン変換部113が頂点を統合しつつ、穴を埋める処理を実行する。ここで、三次元モデルの穴は、例えば、頂点が欠落することにより三次元モデルが凹む状態、又はポリゴンが欠落することにより三次元モデルの内側が露出する状態若しくは三次元モデルの表面がポリゴンで連続的に覆われていない状態である。
【0169】
図19は、第1の実施形態の第5の変形例におけるポリゴン変換処理のフローチャートの一例である。例えば、本フローチャートの処理は、ポリゴン変換処理の対象となる三次元モデルについて作成されたUVアイランドの各々に対し、
図4に示すクラスタ生成処理が終了した後に実行される。
【0170】
ステップS91及びステップS92において実行される処理は、
図17のステップS81及びステップS82において実行される処理と同様であるため、説明を省略する。
【0171】
次に、ポリゴン変換部113は、抽出した頂点による三次元モデルに穴があるか否かを判定する(ステップS93)。具体的には、ポリゴン変換部113は、ステップS92で抽出した頂点により構成されるポリゴンに、穴が空いているか否かを判定する。なお、ポリゴン変換部113は、公知の方法を用いて穴を検出し、穴を構成する頂点を抽出する。
【0172】
ポリゴン変換部113が、抽出した頂点による三次元モデルに穴がないと判定する場合(ステップS93で「NO」の場合)、処理部110は本フローチャートの処理を終了する。
【0173】
ポリゴン変換部113が、抽出した頂点による三次元モデルに穴があると判定する場合(ステップS93で「YES」の場合)、ポリゴン変換部113は、穴を構成する頂点を抽出する(ステップS94)。
【0174】
ステップS95からステップS97において実行される処理は、
図17のステップS83からステップS85において実行される処理と同様であるため、説明を省略する。即ち、ポリゴン変換部113は、穴を構成する頂点により構成される測地線の長さがすべて所定値以下であるか否かを判定する。
【0175】
図20は、第1の実施形態の第5の変形例におけるポリゴン変換処理を説明するための図(その1)である。
図20(A)は、ポリゴン上の穴を説明するための図であり、
図20(B)は、穴を埋めるか否かの判定を説明するための図である。
【0176】
図20(A)に示す例において、三次元モデルは、穴Hを有する。穴を構成する頂点は、各々UVアイランドUV1に属している。
図20(B)に示す例において、ポリゴン変換部113は、基準頂点を頂点P1に決定し、穴を構成する他の頂点と基準頂点P1との間の測地線の長さのすべてが、所定値U以下であるか否かを判定する。ポリゴン変換部113は、穴を構成するすべての頂点を基準頂点に決定し、測地線の長さと所定値Uとを比較する処理を繰り返し、穴を構成する頂点相互の測地線の長さがすべて所定値U以下であると判定する。
【0177】
説明を
図19に戻す。ステップS97において、ポリゴン変換部113が、抽出した頂点をすべて処理対象に特定したと判定する場合(ステップS97で「YES」の場合)、ポリゴン変換部113は、抽出した頂点の座標の相加平均を求め、新頂点の座標とし、元の頂点を削除する(ステップS98)。具体的には、ポリゴン変換部113は、
図6のステップS23と同様に、ステップS94で抽出した各頂点の座標を特定する。ポリゴン変換部113は、特定した各頂点の座標の相加平均を求め、新頂点の座標に決定するとともに、ステップS94で抽出した各頂点を削除する。その結果、穴を構成していた頂点と隣接する他の頂点と、新頂点とがエッジで接続され、穴が埋まる。
【0178】
図21は、第1の実施形態の第5の変形例におけるポリゴン変換処理を説明するための図(その2)である。
図21(A)は、穴を埋める処理を説明するための図(その1)であって、
図21(B)は、穴を埋める処理を説明するための図(その2)である。
【0179】
図21(A)において、ポリゴン変換部113は、穴を構成する各頂点の座標の相加平均を算出し、新頂点P10のワールド座標に決定する。ポリゴン変換部113は、穴を構成する各頂点を削除する。なお、本図に示す例では、穴を構成する各頂点はクラスタC1に属し、該頂点に隣接する各頂点は、クラスタC2~C4のいずれかに属する。
【0180】
図21(B)に示すように、ポリゴン変換部113が新頂点P10を生成し、他の頂点を削除した結果、穴Hは埋まっている。また、ポリゴン変換部113が、クラスタC2~C4の各頂点を削減した結果、頂点P10は、穴に隣接していた各頂点をクラスタごとに相加平均した新頂点P11~P13と接続される。
【0181】
なお、本図に示す例では、穴を構成する各頂点は1つのクラスタC1に属しており、クラスタC1は他の頂点を含んでいない。しかしながら、穴を構成する各頂点は異なるクラスタに属していてもよいし、穴を構成する各頂点を含むクラスタは、他の頂点を含んでいてもよい。
【0182】
以上、本変形例では、ポリゴン変換部113が三次元モデルの穴を検出し、穴を構成する複数の頂点がなす測地線の長さがすべて所定値以下である場合、当該複数の頂点を統合して新頂点を生成する。三次元モデルに穴が存在する場合において、穴を考慮せずポリゴンを削減すると、穴の周辺のポリゴンが削減されることにより、穴が広がって外観に影響を及ぼす可能性がある。本変形例では、三次元モデルの有する穴が小さい場合に、穴を埋めても外観に及ぼす影響が少ないものと取り扱い、穴を埋めるための新頂点を生成する。即ち、本変形例では、外観に及ぼす影響を抑制しつつ、ポリゴンの削減を実行できる。
【0183】
なお、本変形例では、穴の大きさが比較的小さい場合に、ポリゴン変換部113が穴を埋める処理を実行するものであればよい。例えば、ポリゴン変換部113は、穴を構成する各頂点がなす各測地線の長さの平均と、予め設定された値とを比較することにより、穴を埋めるための新頂点を生成するか否かを決定してもよい。
【0184】
<第2の実施形態>
次に、第2の実施形態のゲーム装置20について説明する。本実施形態におけるゲーム装置20は、第1の実施形態における情報処理装置10に相当する。以下、第1の実施形態と異なる点について説明する。ゲーム装置20は、ゲーム専用のゲーム機であってもよいし、PC、スマートフォン、タブレットコンピューター等の汎用的なコンピューターであってもよい。
【0185】
図22は、第2の実施形態におけるゲーム装置20のハードウェア構成図の一例である。ゲーム装置20は、プロセッサ21と、メインメモリ22と、ストレージ23と、音声処理装置24と、メディアインターフェイス装置25と、画像プロセッサ26と、画像メモリ27と、入力インターフェイス装置28と、出力インターフェイス装置29と、通信インターフェイス装置30と、を備える。
【0186】
プロセッサ21は、例えば、CPUなどの演算ユニットである。メインメモリ22は、例えば、RAMなどの記憶装置である。ストレージ23は、例えば、HDD、SSD、フラッシュROMなどの記録装置である。
【0187】
音声処理装置24は、例えば、DSP(Digital Signal Processor)などの、入力された音声データを処理して音声信号を生成する装置である。生成された音声信号は、出力インターフェイス装置29を介してスピーカー(図示しない)に出力され、音声として出力される。
【0188】
メディアインターフェイス装置25は、ストレージ23から情報を読み取るための装置である。メディアインターフェイス装置25は、ストレージ23に情報を書き込めてもよい。メディアインターフェイス装置25は、例えば、光ディスクを読み取るディスクドライブや、USB(Universal Serial Bus)メモリなどの半導体メモリを読み取るリーダである。
【0189】
画像プロセッサ26は、例えば、GPUなどの、ゲーム画像等のグラフィックスを生成するための演算ユニットである。画像メモリ27は、例えば、VRAM(Video RAM)などの、ゲーム画像等のグラフィックスをレンダリングするために使用される記憶装置である。レンダリングされたグラフィックスは、出力インターフェイス装置29を介してディスプレイ(図示しない)に出力され、表示される。
【0190】
入力インターフェイス装置28は、例えば、ゲームコントローラー、タッチパネル、又はメカニカルキーなどの入力装置に接続され、当該入力装置からの操作信号を受け付ける装置である。出力インターフェイス装置29は、ディスプレイやスピーカー等の出力装置に接続され、当該出力装置へと出力を行う装置である。例えば、出力インターフェイス装置29は、画像プロセッサ26の生成したグラフィックス等の表示データを、ディスプレイに出力する。また、出力インターフェイス装置29は、音声処理装置24の生成した音声信号を、スピーカーに出力する。通信インターフェイス装置30は、ネットワークケーブルを介して有線通信を行う通信装置、アンテナを介して無線通信を行う通信装置を含む、情報を送受信する装置である。
【0191】
例えば、プロセッサ21は、ストレージ23に記憶されているゲームソフト(ゲームプログラムやゲームデータを含む)の少なくとも一部を、メディアインターフェイス装置25を介して読み込み、メインメモリ22に展開する。プロセッサ21は、メインメモリ22に記憶されているゲームソフトを読み込んでもよい。また例えば、プロセッサ21は、読み込んだゲームソフトを実行し、プレイヤー操作による入力装置からの操作信号に従ってゲーム進行を制御する。
【0192】
また例えば、プロセッサ21は、ゲーム進行に従ったゲーム画像の内容を決定し、その内容を構成する描画データを画像プロセッサ26に生成させる。画像プロセッサ26は、描画データを用いて画像データを画像メモリ27上にレンダリングする。レンダリングされた画像データ(ゲーム画像)は、外部のディスプレイに出力される。また例えばプロセッサ21は、ゲーム進行に従ったゲーム音声を決定し、当該音声の音声信号を音声処理装置24に生成させ、スピーカーに出力させる。
【0193】
ゲーム装置20の有する図示しない処理部は、第1の実施形態における情報処理装置10の有する処理部110と同様に、プロセッサ21がゲームプログラムを実行することによって実現される。処理部の少なくとも一部の機能、例えば描画情報生成部115の一部の機能は、画像プロセッサ26により実現されてもよい。また、ゲーム装置20の有する図示しない記憶部は、例えば、メインメモリ22又はストレージ23によりその機能が実現される。
【0194】
本実施形態において、ゲーム装置20は、ポリゴンを削減した三次元モデルを、ディスプレイに表示する。ゲーム装置20は、例えばゲームプレイヤーの入力操作に応じてポリゴンを変換する三次元モデルを決定することができる。ゲーム装置20は、第1の実施形態における情報処理装置10と同様に、三次元モデルの表面上の距離を用いて、三次元モデルのポリゴンを削減する。
【0195】
他の例において、ゲーム装置20は、ゲームプレイヤーの入力操作に応じて、ディスプレイに表示するゲーム領域のカメラ位置を決定する。ゲーム装置20は、当該カメラ位置から遠くに位置する三次元モデルを、ポリゴン変換対象の三次元モデルに決定することができる。
【0196】
以上、本実施形態によれば、ゲームプレイ画面に表示される三次元モデルについて、ゲームプレイに応じてリアルタイムでポリゴンを削減し、プレイ画面に表示することができる。即ち、ゲーム装置20においても、三次元モデルを簡略化できる。
【0197】
以上、本発明に係る各実施形態及び変形例の説明を行ってきたが、本発明は、上記した実施形態の一例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態の一例は、本発明を分かり易くするために詳細に説明したものであり、本発明は、ここで説明した全ての構成を備えるものに限定されない。また、ある実施形態の一例の構成の一部を他の一例の構成に置き換えることが可能である。また、ある実施形態の一例の構成に他の一例の構成を加えることも可能である。また、各実施形態の一例の構成の一部について、他の構成の追加・削除・置換をすることもできる。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、図中の制御線や情報線は、説明上必要と考えられるものを示しており、全てを示しているとは限らない。ほとんど全ての構成が相互に接続されていると考えてもよい。
【0198】
また、上記の情報処理装置10及びゲーム装置20の機能構成は、理解を容易にするために、主な処理内容に基づいて分類したものである。構成要素の分類の仕方や名称によって、本発明が制限されることはない。上述に示す通り、情報処理装置10及びゲーム装置20の構成は、処理内容に基づいて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
【0199】
また、本発明は、プログラムだけでなく、当該プログラムを記録したコンピューター読み取り可能な記録媒体、当該プログラムを実行する情報処理装置あるいはコンピューター、ポリゴン変換方法、などの様々な態様で提供することができる。さらに、本発明は、編集用ソフトウェアにその機能の一部として予め組み込まれていてもよいし、アドインのように後から組み込んでもよい。
【符号の説明】
【0200】
10:情報処理装置、11・21:プロセッサ、12:メモリ、13・23:ストレージ、14・28:入力インターフェイス装置、15・29:出力インターフェイス装置、16・30:通信インターフェイス装置、20:ゲーム装置、22:メインメモリ、24:音声処理装置、25:メディアインターフェイス装置、26:画像プロセッサ、27:画像メモリ、110:処理部、111:三次元モデル取得部、112:展開情報取得部、113:ポリゴン変換部、114:クラスタ生成部、115:描画情報生成部、116:パラメータ取得部、120:記憶部、121:三次元モデル情報、122:展開情報、130:入力部、140:出力部、141:基準値入力画面、150:通信部、C1・C2・C3・C4・C11・C12・C13・C21・C22・C31・C32・C33・C34:クラスタ、E:エッジ、H:穴、L・R・Z1・Z2:測地線、M:メッシュ、N:半径、P1・P2・P3・P4・P5・P6・P7・P8・P9・P10・P11・P12・P13・PM:頂点、UV1・UV2・UV3・UV4:UVアイランド、X:球、Y1・Y2:円、θ:角