本発明は、コンピュータ、各種情報機器、携帯電話機又はゲーム機等におけるコンピュータ・グラフィックス技術に関し、特に曲面又は曲線の近似技術に関するものである。
3次元のコンピュータ・グラフィクスにおいては、3次元曲面等を多角形のポリゴン等で近似して描画している。
従来、多角形のポリゴンを用いた描画処理には膨大な処理時間が必要となるため、ポリゴンの頂点を削減することによって、描画処理の簡素化を図る技術が開示されている(例えば、特許文献1参照)。
図1は、上記従来のテクスチャデータ生成装置のブロック図である。従来のテクスチャデータ生成装置は、ポリゴン削減手段1によってポリゴンの数を削減する。また、頂点位置計算手段2は、ポリゴン削減手段1で削除された頂点が、新たな三角形パッチのどの位置に対応するかを計算し、削除された頂点における輝度値を保存する。さらに、多面体展開図作成手段3によって、ポリゴンの展開図を2次元画像領域に作成する。このとき、画素値補間手段4において画像領域の各格子点での輝度値を求めている。
特開平7−160898号公報
しかしながら、ポリゴンの頂点を削除する処理自体にも時間を要するため、従来のポリゴンの頂点を削除する方法においても、トータルの描画時間として考えた場合に、確実に処理時間の短縮ができないという課題がある。
つまり、ポリゴン頂点の削除処理を行う効果がない場合(即ち、頂点を削除すると大きく形状が変化して違和感を生じさせてしまうため結局削除しない場合)には、削除処理を実行した分だけ無駄に処理時間を費やしてしまい、トータルの描画時間として遅くなってしまうことがある。
さらに、近年、携帯電話機や携帯型ゲーム機等の必ずしも処理性能が高くない機器においても、違和感のない速度で移動する3次元物体を表示したいというニーズが高まっており、このようなニーズに対して、従来のポリゴン頂点削除方法では充分応えることが困難である。
そこで、本発明は、処理能力が必ずしも高くない機器であっても、ポリゴンの簡略化を可能にすると共に、コンピュータ・グラフィックスにおけるトータル処理時間の短縮が可能な描画装置等を提供することを目的とする。
本発明は上記のような課題を解決するために行われたものであり、以下のような構成を有する。
本発明に係る描画装置は、コンピュータ・グラフィックスに使用され得る描画処理の種別とポリゴンの形状の特徴とを含む基準情報を取得する基準情報取得手段と、実際のコンピュータ・グラフィックスに使用する描画処理の種別を示す情報とポリゴンの形状を示す情報を含む描画情報を取得する描画情報取得手段と、前記描画情報によって示される前記描画処理の種別と前記ポリゴンの形状が、前記基準情報によって示される基準を満たすか否かを判定する簡略化判定手段と、前記簡略化判定手段において前記基準を満たすと判定された場合に、前記ポリゴンを構成する頂点の削減を行うことによって前記ポリゴンの簡略化を行うポリゴン簡略化手段と、前記頂点が削減されたポリゴンを用いて、コンピュータ・グラフィックスを実行する描画手段とを備えることを特徴とする。
このような構成によって、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことができるとともに、ポリゴン近似を使った3次元物体の描画を、計算能力が高いCPUを必ずしも有していなくても、高速に実行することが可能な描画装置を提供することができる。
また、前記コンピュータ・グラフィックスに使用され得る描画処理の内容は、頂点色割り当て、ライティング、陰面消去、アルファブレンド、テクスチャマッピングの少なくとも1つを含むことを特徴とする。
このような構成によって、具体的な画像処理の内容を勘案したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
また、前記基準情報には、前記ポリゴンを構成するある頂点から他の2つの頂点間を結ぶ線分への垂線の長さが、予め定められた閾値よりも短いという条件を含むことを特徴とする。
このような構成によって、ポリゴンを構成する重要な要素である頂点の座標値とそのポリゴンの形状とに与える影響を評価したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
また、前記ポリゴンを構成する頂点はその属性データとして、位置座標データ、色データ、テクスチャ座標データ、法線方向データの少なくとも1つを保有し、前記ポリゴン簡略化手段は、前記取り出した線分までの距離の最大値は、前記保有する全ての属性データについて求め、当該求めた最大値が全ての属性データに対して所定の閾値よりも大きくないときに前記取り出した線分の間にある各頂点を削除することを特徴とする。
このような構成によって、ポリゴンを構成する要素として頂点の座標値とそのポリゴンの形状だけでなく、色やテクスチャや法線方向に与える影響をも併せて評価したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
さらに、本発明に係る描画方法は、コンピュータ・グラフィックスに使用され得る描画処理の種別とポリゴンの形状上の特徴とを含む基準情報を取得する基準情報取得ステップと、実際のコンピュータ・グラフィックスに使用する描画処理の種別を示す情報とポリゴンの形状を示す情報を含む描画情報を取得する描画情報取得ステップと、前記描画情報によって示される前記描画処理の種別と前記ポリゴンの形状が、前記基準情報によって示される基準を満たすか否かを判定する簡略化判定ステップと、前記簡略化判定ステップにおいて前記基準を満たすと判定された場合に、前記ポリゴンを構成する頂点の削減を行うことによって前記ポリゴンの簡略化を行う簡略化ステップと、前記頂点が削減されたポリゴンを用いて、コンピュータ・グラフィックスを実行する描画ステップとを含むことを特徴とする。
このような構成によって、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことを可能にすると共に、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することが可能になる。
また、前記簡略化ステップでは、(1)前記与えられたポリゴンデータから1つの面を囲む頂点を抽出し、(2)前記1つの面を囲む頂点の始点と終点を結ぶ線分をメモリに記憶し、(3)前記メモリに記憶している線分の有無を判断し、それが有れば前記メモリから1つの線分を取り出し、(4)取り出した線分の間にある各頂点から前記取り出した線分までの距離の最大値を求め、(5)前記最大値が所定の閾値よりも大きくなければ前記取り出した線分の間にある各頂点を削除し、(6)前記最大値が所定の閾値よりも大きければ前記距離が最大値となる頂点と前記取り出した線分の両端点とを結ぶ2つの線分を前記メモリに記憶し、(7)前記メモリに記憶している線分が無くなるまで前記(3)〜(6)の処理を繰り返すことを特徴とする。
このような構成によって、ポリゴンを構成する重要な要素である頂点の座標値とそのポリゴンの形状とに与える影響の評価を具体的なアルゴリズムによって高速に実行したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
なお、本発明は、上記描画装置における特徴的な構成手段を備える集積回路として実現したり、上記描画方法の各々のステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのプログラムをDVD等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのは云うまでもない。
本発明に係る描画装置等を用いることにより、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことができるとともに、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することが可能になり、違和感のない動画像を表示することが可能になる。
図1は、従来の曲線近似装置によって曲線を近似する手法を説明するための図である。
図2は、本発明に係る描画装置の構成の概略を示す図である。
図3は、実施の形態1に係る描画装置の制御部の機能構成を示すブロック図である。
図4は、本発明に係る簡略化基準表の一例を示す図である。
図5(a)〜(d)は、実施の形態1に係るポリゴンを削減する過程の一例を説明するための図である。
図6(a)〜(d)は、実施の形態1に係るポリゴンを削減する過程のその他の例を説明するための図である。
図7(a)は、描画情報取得部を介して入力したポリゴンの一例を示す図である。図7(b)は、ポリゴンの詳細な態様をまとめた表である。
図8(a)〜(f)は、実施の形態1に係るポリゴンの各頂点の色に着目してポリゴン簡略化処理を実行した過程を示す図である。
図9は、簡略化を実行したポリゴンの一例を示す図である。
図10は、実施の形態1に係るポリゴンデータを構成する頂点の削減についての判断を行う処理の流れを示すフローチャートである。
図11は、実施の形態1に係るポリゴンを削減する処理の流れを示すフローチャートである。
図12は、図11における、座標値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
図13は、図11における、色値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
図14は、実施の形態2に係る多角形のポリゴンを定義する場合の2つの形式を示す図である。
図15は、STRIP型ポリゴンからFAN型ポリゴンに変換する手順の概略を示す図である。
図16は、実施の形態2に係る描画情報取得部におけるSTRIP型ポリゴンからFAN型ポリゴンに変換する処理の流れを示すフローチャートである。
符号の説明
100 描画装置
102 制御部
103 RAM
104 ROM
105 表示部
106 操作部
107 通信部
108 内部バス
110 描画情報取得部
120 描画種別決定部
130 閾値決定部
140 初期線分決定部
150 簡略化判定部
160 ポリゴン簡略化部
以下、本発明に係る実施の形態について、図面を参照しながら説明する。なお、本発明について、以下の実施の形態および添付の図面を用いて説明を行うが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。
(実施の形態1)
図2は、本実施の形態に係る描画装置100の構成の概略を示す図である。本実施の形態に係る描画装置100は、ポリゴンに含まれる各頂点における属性データである3次元位置座標値、頂点に付属している色値、テクスチャ座標データ、又は法線ベクトルに基づいてポリゴンの簡略化を行う装置である。また、以下に示す描画方法は、この描画装置100等において用いられる。但し、描画装置100は、本発明に係る描画装置を説明するための1つの具体例であり、必ずしも描画装置100に限るものではなく、例えば携帯電話機やパソコンを始めとする、他の電子機器であってもよい。
図2に示されるように、描画装置100は、その主要な構成要素として、制御部102、RAM103、ROM104、表示部105、操作部106及び通信部107を備える。なお、描画装置100は、上記の他に電源や筐体等、多くの要素を含んでもよいが、本発明と直接関係ないため省略することとする。
上記の主要な構成要素は内部バス108を介して接続されており、必要に応じてデータのやり取りを実行する。
制御部102は、例えばマイクロコンピュータ(以下「マイコン」ともいう。)等を始めとするコンピュータであり、描画装置100の各部の動作を制御する。なお、制御部102は、必ずしも独立したものでなく、システムLSIに含まれるマイコンコア等であっても構わない。また、制御部102は、必ずしも汎用的なマイコンでなく、特定の用途や目的に特化したものであっても構わない。
RAM103は、DRAM(Dynamic-RAM)を始めとする読み書き可能な半導体メモリであり、固定式や、SDメモリカードのように着脱可能なものであっても構わない。さらに、RAM103は、必要に応じて各種のデータ(プログラムも含む)を一時的又は長期的に記憶する。また、電源OFF時に記憶内容が消失するタイプのものでも、電源OFF時に記憶内容が消失しないタイプのどちらもよいし、両方のタイプが混在していてもよい。
ROM104は、読み出し専用のメモリであり、各種のプログラムや、変更されることのないデータ又は変更されると支障があるデータ(機器ID番号等を含む。)を記憶する。また、ROM104は、半導体メモリの他、磁気的な記録方式や光学的な記録方式によるものでもよいし、これらが混在していてもよい。
これらのRAM103とROM104のどちらか一方又は両方に、本発明の一実施の形態であるプログラムが記録されて制御部102によって実行され、このRAM103とROM104のどちらか一方又は両方に、本発明に係る描画方法を実現し得るプログラムが記録されているものとする。
表示部105は、例えば、液晶表示パネルやELディスプレイパネルであり、画像、文字又は記号等を可視的に表示する機能を有する。
操作部106は、押しボタン、キースイッチ、タッチパネル、ポインティングデバイス、十字キーなど、各種の情報を入力する機能を有する。
通信部107は、無線LANや有線LAN、可視光線や赤外線を使った通信、公衆ネットワークや専用ネットワークとの通信、その他の各種通信を行い、他の機器とデータをやり取りするためのもので、どのようなものであっても構わない。
本実施の形態に係る描画装置100では、ROM104又はRAM103に記憶されているプログラムに従って、ユーザはゲームを行うことができる。ユーザは、ゲームの操作を操作部106で行い、ゲーム画像は表示部105に表示される。ゲーム画像の元になるデータは、ROM104やRAM103に記憶されているデータから与えられるか、ROM104やRAM103に記憶されているデータに基づいて計算され、ポリゴンデータとして与えられる。そして、このポリゴンデータに基づいて、ゲームの種類やシーンに応じて必要な画像処理、例えば、頂点色割り当て、ライティング、アルファブレンド、陰面消去、テクスチャマッピングが実行され、その結果生成された画像が表示部105に表示される。
図3は、本実施の形態に係る描画装置100の制御部102の機能構成を示すブロック図である。図3に示されるように、制御部102は、描画情報取得部110、描画種別決定部120、閾値決定部130、初期線分決定部140、簡略化判定部150及びポリゴン簡略化部160を備える。
描画情報取得部110は、内部バス108を介して、ポリゴンデータや各種パラメータ等を取得する。この場合のポリゴンデータは、FAN型で定義されたポリゴンデータとする。ここで、「FAN型」とは、ポリゴンデータを構成する各頂点が、閉ループ状に時計回りで定義されていることをいう。
描画種別決定部120は、取得されたポリゴンデータ等に基づいて、実行する描画処理の種別を決定する。この描画処理の種別には、頂点色割り当て、ライティング、アルファブレンド、陰面消去、テクスチャマッピング等があり、取得したポリゴンデータや実行中のゲームの種類から一意的に決定したり、ゲーム等のシーンや操作内容等に応じて決定する。さらに、描画種別決定部120は、取得したポリゴンデータによって表わされるポリゴンが存在する空間のサイズ(即ち、ポリゴンを表示する際の所定の空間の最大範囲)を決定する(以下「空間サイズ」という)。この空間サイズは、ポリゴンに含まれる各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他必要に応じて決定する。この空間サイズは、後述するポリゴンデータを削減する際の判断において、種々の関連するデータをそのまま絶対値として用いるのではなく、この空間サイズに対する相対値として正規化する際に用いる。
以下、3次元座標系および上記の色値(以下では色座標系とも呼ぶ)について、データを正規化して用いる理由を述べる。
3次元座標系における空間サイズは、基本的にはディスプレイ全体に対応する位置座標の範囲に相当する。ここで、ディスプレイのサイズは変わらないので、空間サイズが大きいと座標系上では大きいポリゴンでも見かけ上は小さく見えるため、多少ポリゴンの頂点の削減を行っても見かけ上は分かりにくい。したがって、ユーザに見える見かけを重視した評価を行うため、本発明では単純な距離等ではなく、空間サイズで正規化した距離等によってポリゴンを評価している。
また、色座標系における空間サイズは、どれだけの幅の色を使用できるかという範囲に相当する。そのため、空間サイズが小さく、少ししか色が使えない場合は、1つの頂点を削除するだけでも大きく印象が変わり、また、空間サイズが大きい場合は、頂点の削除によって多少色が変わってもそれほど見かけ上の印象は変わらない。したがって、ユーザに対する見かけを重視した評価を行うため、本発明では、頂点間の色の単純な差ではなく、色の空間サイズで正規化した差でポリゴンを評価している。
なお、テクスチャ座標データおよび法線ベクトルを用いる場合も同様の趣旨により正規化を行う。
閾値決定部130は、取得したポリゴンデータの簡略化の要否の判断の際に用いる閾値を決定する。この閾値も、各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他必要に応じて決定する。この閾値は、例えば3次元位置座標値に関していうと、ある頂点から、他の2つの頂点を結ぶ線分への垂線の長さに相当する(詳細は、後述のポリゴン削減のアルゴリズムにおいて説明する)。また、この閾値は、上記空間サイズを基準にして決める必要があり、後述するように空間サイズによって正規化した値を、ポリゴンを構成する頂点について削減を行うか否かについて判断する際に使用する。
初期線分決定部140は、取得したポリゴンデータに基づいて、各ポリゴンに関する初期線分の長さを決定する。この「初期線分の長さ」とは、ポリゴンの始点と終点を結ぶ線分の長さであり、この初期線分の長さもポリゴンデータの削除を行うか否かについての判断に影響を与える。この初期線分の長さも、各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)、その他必要に応じて決定する。また、この初期線分の長さも上記空間サイズを基準にして決める必要があり、後述するように空間サイズによって正規化した値を、ポリゴンを削減する(より具体的にはポリゴンの頂点を削減する)ためのアルゴリズムで使用する。与えられたポリゴンの初期線分の長さを、それぞれ上記決定した空間サイズで割って相対化し、正規化した値を求める。後述するように、この正規化した値をポリゴン削減のアルゴリズムで使用し、この正規化も、頂点の典型的な属性データである、3次元位置座標(X,Y,Z)値だけでなく、頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他に関しても必要に応じて計算して求める。
簡略化判定部150は、上記処理で求めた結果が予め規定された簡略化基準表が示す条件に該当する(即ち、ポリゴンの簡略化を実行すべき)か否かを判定し、この判定結果をポリゴン簡略化部160に通知する。上記の簡略化基準表の内容を表わすデータは、当該簡略化判定部150が有する記憶部(図示せず)に記憶しておいてもよいし、RAM103又はROM104に格納されていてもよい。
図4は、簡略化判定部150における判定の際に用いる簡略化基準表170の一例である。この簡略化基準表170は、グラフィックスに要するトータルの処理時間が短縮され得る条件を経験的に求めた表である。簡略化基準表170における「頂点色割り当て」とは、ポリゴンの各頂点に色の割り当てた場合の各面の色の補間処理をいう。また、「ライティング」は、光源とこれに基づく光の反射に関する処理をいう。また「アルファブレンド」は、二つの画像を係数(α値)により合成する処理をいう。また、「陰面消去」とは、特定の視線で見た場合の隠れた面を見えなくする処理をいう。また、「テクスチャマッピング」とは、物体の表面の質感を表現するために画像を貼り付ける処理をいう。また、簡略化基準表170における「正規化された閾値」とは、ポリゴンの頂点を削減する際の線分に対する正規化された基準値である(例えば、画面サイズを用いて正規化を行う。)。また、「正規化された初期線分長」とは、ポリゴン頂点の削減を行う際のポリゴンの基準辺の対する正規化された基準値である。
図4の簡略化基準表では、
(1)描画処理の種別が陰面消去だけで他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.62以上であること
(2)描画処理の種別がアルファブレンドだけで他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.39以上であること
(3)描画処理の種別がアルファブレンドと陰面消去だけで他の処理がなく、正規化された閾値が0.05以上で、正規化された初期線分長が0.37以上であること
(4)描画処理の種別が頂点色割り当てとアルファブレンドだけで他の処理がなく、正規化された閾値が0.08以上で、正規化された初期線分長が0.37以上であること
(5)描画処理の種別が頂点色割り当てとアルファブレンドと陰面消去で他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.28以上であること
の5条件が示されている。
また、正規化された閾値と正規化された初期線分長の条件は、頂点の典型的な属性データである3次元位置座標値(X,Y,Z)、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)のうち、評価の対象としている少なくとも1つのデータについて満足させる必要がある。もちろん、これらを組合せた条件について満足させることとしてもよい。
ポリゴン簡略化部160は、上記簡略化判定部150において「ポリゴンの簡略化を実行すべき」と判定された場合に、3次元位置座標値や各頂点に付属している色値等に基づいて、実際にポリゴンの簡略化を実行する。例えば、6角形のポリゴンにおいて1つの頂点を削除して5角形のポリゴンにする場合が該当する。さらに、ポリゴン簡略化部160は、当該ポリゴン簡略化処理の際に一時的にデータを格納するスタックを備える。この「スタック」とは、ラストイン−ファーストアウト方式のプッシュ−プル(アップ−ダウン)式スタックをいうが、これはあくまでも一例に過ぎず、例えば、ファーストイン−ファーストアウト式のシフトレジスタのようなメモリでも構わないし、必ずしも書き込み順序と読み出し順序が特定されないランダムアクセス可能なメモリ(RAM)等であっても構わない。
上記の描画装置100では、現実体感的なイメージを確保する必要があり、動画又は擬似的動画を、リアルタイムに表示しなければならない。しかも、描画装置100に使用されるCPUは、コスト的な制約や消費電力の制約等によって、必ずしも処理能力が高くないことが多い。また、表示対象となる画像は、ゲームの内容やシーンに応じて、複雑なものとなることもある。
このように、必ずしも処理能力が高くないCPUを用いて描画する場合であっても、複雑な動画像又は擬似的動画像をリアルタイムに表示するため、この描画装置100では、ポリゴン削減を行ったほうが全体としての処理量を削減できるかどうかをまず判断し、その結果、ポリゴン削減を行ったほうが全体としての処理量を削減できると判断したときには、後述するアルゴリズムに従ってポリゴン削減を実行し、全体としての処理量を削減して、複雑な動画像又は擬似的動画像をリアルタイムに表示する。
つまり、本発明に係る描画装置100は、表示部105に描画するべきポリゴンデータが与えられたとき、制御部102は、RAM103やROM104に記録されたプログラムに従って、このポリゴンデータを削除した後に描画を実行したほうが、トータルとして高速化できるか、又はポリゴンデータを削除せずにそのまま描画を実行したほうが、トータルとして高速化できるかの判断を実行する。
次に、図5〜図13を参照しながら、本実施の形態に係る描画装置100の動作について説明する。以下では、まず、ポリゴンの簡略化を行うべきか否かについての判断を行った後、ポリゴン簡略化処理の代表例として、ポリゴンの3次元位置座標値に基づいてポリゴンの簡略化を実行する実施例について説明する。さらに、ポリゴン簡略化処理の他の例として、ポリゴンの各頂点に割り当てられた色値に基づいてポリゴンの簡略化を実行する実施例について説明する。なお、上述したように、他にテクスチャ座標データや法線ベクトルに基づいて簡略化を実行することが考えられるが、基本的な処理の流れは同様であるので説明を省略する。
図10は、ポリゴン簡略化を行うべきか否かの判断を行う処理の流れを示すフローチャートである。
最初に、描画種別決定部120は、描画情報取得部110において取得したポリゴンデータ等に基づいて、描画しようとするポリゴンに対して適用する描画処理の種別を決定する(S201)。
さらに、描画種別決定部120は、ポリゴンの表示に関する空間サイズを決定する(S202)。
次に、閾値決定部130は、処理対象のポリゴンの簡略化を行うために用いる閾値を決定する(S203)。
この後、初期線分決定部140は、処理対象のポリゴンの初期線分の長さを求める(S204)。
さらに、上記ポリゴンデータの簡略化を行うための閾値と、求められたポリゴンの初期線分長とを、それぞれ上記決定した空間サイズで割って相対化し、正規化した値を求める(S205)。
最後に、上記処理で求めた結果について、図4に示す簡略化基準表を参照して一致又は不一致について検証し(S206)、一致するときにポリゴンの簡略化を行うと判定し(S207)、一致しなければポリゴン簡略化を行わないと判定する(S208)。
このようにして、ポリゴンについて簡略化を行う処理に入る前に、与えられたポリゴンデータが所定の条件を満足するか否かを事前に判断し、この条件を満足するときにのみポリゴンの削減を実行する。これにより、ポリゴンの削減のために却って時間がかかり、トータルとしては高速化にならないという事態を避けることができる。
次に、上記簡略化判定部150において、「ポリゴンの簡略化を行うべき」と判断された場合に実行される、ポリゴンの頂点を削減するアルゴリズムについて説明する。
図5(a)〜(d)は、本実施の形態における処理対象のポリゴンの一例を示す図である。また、図11は、ポリゴンを削減する処理の流れを示すフローチャートである。また、このポリゴン削減の手続きによって実行される他の例を図6に示す。
上記図5(a)〜(d)の例では、頂点の典型的な属性データである、3次元位置座標値(X,Y,Z)の一部である2次元座標値(X,Y)を用いて説明をするが、勿論、3次元位置座標値(X,Y,Z)によって表現されるポリゴンにも適用が可能である。また、頂点に付属している他の属性データである色値(R,G,B)、テクスチャ座標データ(TX,TY)及び法線ベクトル(NX,NY,NZ)等に関しても同様である。
最初に、ポリゴン簡略化部160は、処理対象のポリゴンから1つの面(多角形)を取り出す(S401)。図5に示す例では、この取り出された1つのポリゴンは、図5(a)の多角形V0V1V2V3V4V5に相当する。
次に、ポリゴン簡略化部160は、上記の取り出した多角形において、1つの基準辺を定める(S402)。図5(a)の例では、ポリゴン簡略化部160は、取り出した多角形は多角形V0V1V2V3V4V5であり、また、辺V0V5を基準辺とする。
そして、この定めた基準辺をポリゴン簡略化部160のスタックに格納する(S403)。図5(a)の例では、辺V0V5がスタックに格納する基準辺である。
次に、ポリゴン簡略化部160は、処理ループにおいて、スタックの中が空か否かを判断する(S404)。初めてこの判断を行うときには、上記基準辺がスタックに格納されているので、この判断結果は「No」になる。つまり、図5(a)の例では、辺V0V5がスタックに格納されているため、「No」に該当する。但し、これ以降処理が進み、S404における判断結果が「Yes」になると、ポリゴン簡略化の処理は終了する。
S404の判断において、スタックが空でないと判断されると(S404でNo)、ポリゴン簡略化部160は、このスタックから1つの辺(線分)を取り出す(S405)。図5(a)に示す例では、辺V0V5がこれに相当する。
次に、ポリゴン簡略化部160は、取り出された辺の間にある頂点から、スタックから取り出された辺までの距離を計算する(S406)。図5(a)に示す例では、スタックから取り出された辺V0V5の間にある頂点とは、頂点V1、頂点V2、頂点V3及び頂点V4であり、各頂点から辺V0V5までの距離とは、各頂点(頂点V1〜V4)から辺V0V5に対して引いた垂線の長さである。
次に、ポリゴン簡略化部160は、「辺−各頂点間距離計算処理」(S407)を実行する。この「辺−各頂点間距離計算処理」とは、取り出された辺と各頂点間距離のうち最長の距離を計算する処理をいう。さらに、ポリゴン簡略化部160は、計算された距離のうち、最長の距離を構成する頂点(Vmax)を特定する(S408)。図5(a)に示す例では、頂点V3が、最長の距離を構成する頂点に相当し、辺V3H1が、長さが最大となる距離に相当する。
次に、ポリゴン簡略化部160は、最長の距離を構成する頂点から辺までの距離(図5(a)の例では、V3H1)が、予め定められた所定の閾値よりも大きいか否かの判断を行う(S409)。この「予め定められた所定の閾値」とは、ポリゴンの削減を行うか否かの判断時に決定した「与えられたポリゴンデータの簡略化を行う閾値(図10のS203における閾値)」と同じものである。
そして、最長の距離を構成する頂点から辺までの距離が、予め定められた所定の閾値よりも大きくなければ(S409でNo)、この辺の間にある頂点を削除する(S411)。また、最長の距離を構成する頂点から辺までの距離が、予め定められた所定の閾値よりも大きければ(S409でYes)、現在の基準辺の両端と、この基準辺までの長さが最大である頂点とを結ぶ線分を新たにスタックに格納する(S410)。図5(a)に示す例では、最長の距離を構成する頂点から辺までの距離V3H1が、予め定められた所定の閾値よりも大きいので(S409でYes)、現在の基準辺である辺V0V5の両端と、この基準辺V0V5までの長さが最大である頂点V3とを結ぶ線分V3V0と線分V3V5を、新たにスタックに格納する(S410)。
そして、上記処理ループの最初の処理(S404)に戻る。
上記説明した処理ループの第1回目の処理では、図5(a)に示すように、簡略化の対象となる多角形は多角形V0V1V2V3V4V5であり、この場合の始点が頂点V0、終点が頂点V5として、頂点を削減するための判断を行った。そして、その結果、この処理ループでは頂点の削減が行われなかった。
以下に説明する処理ループの第2回目以降の処理では、図5(b)に示すように、簡略化の対象となる多角形が多角形V0V1V2V3(始点が頂点V0、終点が頂点V3)と、多角形V3V4V5(始点はV3、終点はV5)との2つとし、上記と同様にして頂点削減の判断を行う。
第2回目の処理ループの最初においても、スタックの中が空か否かの判断を行う(S404)。以上で説明した例では、スタックに辺V0V3と辺V3V5の2つの線分が格納されているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから1つの辺(図5(c)に示す例では辺V0V3)を取り出し(S405)、この辺の間にある各頂点(頂点V1、各V2)から取り出した辺(辺V0V3)までの距離を計算する(S407)。この距離は、図5(c)に示す例ではV1H2とV2H3に相当する。
次に、これらの計算した距離からその長さが最大となるものを取り出し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図5(c)に示す例では2つの垂線である線分V1H2も線分V2H3も所定の閾値よりも長くはないと判定され(S409でNo)、この辺(V0V3)の間にある頂点V1と頂点V2を削除すると判定する(S411)。そして再度、処理ループの最初の処理(S404)に戻る。
第3回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上で説明した例では、スタックに未だ辺V3V5という1つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺(図5(c)に示す例では辺V3V5)を取り出し(S405)、この辺の間にある頂点(頂点V4)から取り出された辺(辺V3V5)までの距離を計算する(S407)。この距離は、図5(c)に示す例では線分V4H4に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図5(c)に示す例ではこの垂線である線分V4H4は所定の閾値よりも長くはないと判定されるため(S409でNo)ので、取り出された辺(辺V3V5)の間にある頂点V4を削除すると判定する(S411)。
上記の一連の処理によって、図5(d)に示すように、頂点V1、頂点V2及び頂点V4が削除され、元の多角形V0V1V2V3V4V5が、多角形V0V3V5のように簡略化される。
そして再度、処理ループの最初(S404)に戻る。上記説明した例では、これ以上スタックには辺(線分)が残っていない(S404でYes)ので、この簡略化の処理を終了する。
図12は、上記図11における、座標値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。なお、図12においては、下記の(1)式を用いる。
なお、上記(1)式において、Lxyzは、辺Vk−Vn間にある任意の頂点Vpから辺Vk−Vnまでの垂線の長さ(即ち、頂点Vpから辺Vk−Vnまでのユークリッド距離)を示す。また、Xkpは、上記の辺Vk−Vnの端点である頂点Vkと上記頂点Vpにおけるx座標上の差(即ち、Xkp=Xp−Xk)を示す。以下同様に、Ykpは、頂点Vkと頂点Vpにおけるy座標上の差(即ち、Ykp=Yp−Yk)を、Zkpは、頂点Vkと頂点Vpにおけるz座標上の差(即ち、Zkp=Zp−Zk)をそれぞれ示す。同様に、Xknは、上記の頂点Vkと頂点Vnにおけるx座標上の差(即ち、Xkn=Xn−Xk)を示す(YknおよびZknのついても同様である。)。さらに、上記(1)式において、「sqrt」は平方根を、「**」はべき乗を、「*」は掛け算をそれぞれ表わしている。
次に、上記図5の場合と同様に、図6に示すポリゴンを対象として、ポリゴン簡略化処理を実行した実施例について説明する。
最初に、ポリゴン簡略化部160は、得られたポリゴンから1つの面(多角形)を取り出す(S401)。図6に示す例では、この取り出された1つのポリゴンは図6(a)の多角形W0W1W2W3W4W5に相当する。
次に、ポリゴン簡略化部160は、取り出された多角形W0W1W2W3W4W5において、1つの基準辺(W0W5)を定める(S402)。上記図5の場合と同様に、基準辺を、多角形W0W1W2W3W4W5を描くときの始点W0と終点W5とを結ぶ線分として定める。
そして、ポリゴン簡略化部160は、定められた基準辺W0W5をスタックに格納する(S403)。
次に、ポリゴン簡略化部160は、処理ループに入り、スタックが空になったか否かを判断する(S404)。なお、最初の判断では、上記基準辺がスタックに格納されているので、この判断結果は「No」になる。
上記判断において、スタックが空でないと判断されると(S404でNo)、このスタックから1つの辺(線分)を取り出す(S405)。図6(a)に示す例では、辺W0W5がこの辺に相当する。
次に、辺W0W5の間にある頂点から、この辺までの距離を計算する(S407)。図6(a)に示す例では、辺W0W5の間にある頂点とは、頂点W1、頂点W2、頂点W3及び頂点W4であり、各頂点から辺W0W5までの距離とは、各頂点(頂点W1、頂点W2、頂点W3又は頂点W4)から辺W0W5に対して引いた垂線の長さである。
次に、ポリゴン簡略化部160は、計算された距離の中から長さが最大となる頂点を特定する(S408)。図6(a)に示す例では、頂点W3が、最長の距離を構成する頂点に相当し、線分W3K1が最長の距離に相当する。
次に、この長さが最大である頂点から辺までの距離(W3K1)が、予め定められた所定の閾値よりも大きいか否かの判断を行う(S409)。
そして、この長さが最大である頂点から辺までの距離(W3K1)が、予め定められた所定の閾値よりも大きくなければ(S409でNo)、この辺の間にある頂点を削除する(S411)。図6(a)に示す例では、長さが最大である頂点W3から辺W0W5までの距離(W3K1)が、予め定められた所定の閾値よりも大きいので(S409でYes)、現在の基準辺W0W5の両端と、この基準となる辺までの長さが最大である頂点W3とを結ぶ線分W3W0と線分W3W5を、新たにスタックに格納する(S409)。
そして、上記処理ループの最初(S404)に戻る。
上記説明した処理ループの第1回目の処理では、図6(a)に示すように、簡略化の対象となる多角形を多角形W0W1W2W3W4W5とし、この始点を頂点W0、終点を頂点W5として、頂点削減の判断を行った。そして、その結果、この処理ループでは頂点削減を行わなかった。ここまでの処理は、上記図5を使った例の説明と変わらない。
以下に説明する処理ループの第2回目以降の処理では、図6(b)に示すように、簡略化の対象となる多角形を多角形W0W1W2W3(始点は頂点W0、終点は頂点W3)と、多角形W3W4W5(始点は頂点W3、終点は頂点W5)との2つとし、上記と同様にして頂点削減の判断を行う。
第2回目の処理ループの最初に、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W3と線分W3W5との2つの線分が格納されているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから1つの辺(図6(c)に示す例では辺W0W3)を取り出し(S405)、この辺W0W3の間にある頂点W1及び頂点W2から辺(W0W3)までの距離を計算する(S407)。この距離は、図6(c)に示す例では線分W1K2と線分W2K3に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図6(c)に示す例では、線分W2K3がこの長さが最大となる距離に相当し、この距離は所定の閾値よりも長い(S409でYes)ので、この頂点W2と現在の基準辺W0W3の両端とを結ぶ2つの線分を、スタックに新たに格納する(S409)。即ち、線分W0W2と線分W2W3との2つの線分が新たにスタックに格納されることになる。そして再度、処理ループの最初(S404)に戻る。
第3回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W2、線分W2W3及び線分W3W5という3つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺を取り出す(S405)。
このとき、どの辺が取り出されるかは実施の形態によって変わり得るが、実質的にはどの辺を取り出したとしても変わらないので、ここでは仮に線分W3W5が取り出されたと仮定する。
そして、この線分W3W5の間にある頂点W4から辺W3W5までの距離を計算する(S407)。この距離は、図6(c)に示す例では線分W4K4に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S408)。図6(c)に示す例ではこの垂線である線分W4K4は所定の閾値よりも長くはない(S409でNo)ので、この線分W3W5の間にある頂点W4を削除する(S411)。そして再度、処理ループの最初の処理(S404)に戻る。
第4回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W2及び線分W2W3という2つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺を取り出す(S405)。
ここでは仮に線分W0W2が取り出されたと仮定する。
そして、この線分W0W2の間にある頂点W1から線分W0W2までの距離を計算する(S406)。この距離は所定の閾値よりも長くはない(S408でNo)ので、この線分W0W2の間にある頂点W1を削除する(S411)。そして再度、処理ループの最初(S404)に戻る。
第5回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに辺W2W3という1つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている線分W2W3を取り出す(S405)。
そして、この辺の間には頂点が存在しないので以下の処理は行わず、再度、処理ループの最初(S404)に戻る。
この段階ではこれ以上スタックには辺は存在しない(S404でYes)ので、この簡略化の処理を終了する(S411)。
これらの一連の処理によって、図6(d)に示すように、頂点W1及び頂点W4が削除され、元の多角形W0W1W2W3W4W5が、多角形W0W2W3W5のように簡略化される。
以上説明したように、本発明の実施の形態では、与えられたポリゴンを構成する1つの多角形に対して、トータルとして高速化が可能かどうかを事前に判断又は予想した上で、ポリゴンの簡略化を行うことができる。また、この簡略化されたポリゴンに対してシェーディング処理等の描画処理を実行することによって、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することを可能にすると共に、違和感のない動画像を表示することができる。
上記では、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例について説明したが、ポリゴンを表示する際の光の3原色(Red、Green及びBlue)に着目してポリゴン簡略化処理を実行することも可能である。ポリゴンの頂点の位置座標のみに基づいて頂点の削減を行うと、例えば、隣り合う色が黒と白など極端に違う時でも一方が削除されてしまい、視覚的に大きく変わってしまうことがある。そこで、ポリゴンの色の変化が激しい場合などには、頂点の位置座標だけではなく、色による評価も加味することにより、視覚的に違和感なくポリゴンの簡略化を可能にすることとする。
以下、図7〜図9、図11及び図13を参照しながら、ポリゴンを表示する際の3原色に着目してポリゴン簡略化処理を実行する実施例について説明する。なお、上記ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例と同じ内容については同じ符番を付し、その説明は省略する。
図7(a)は、描画情報取得部110を介して入力したポリゴンの一例を示す図である。図7(a)に示されるポリゴンは、6角形であり、各頂点(頂点V0〜V5)に色が定義されている。また、図7(b)は、上記図7(a)に示されるポリゴンの詳細な態様をまとめた表であり、各頂点における座標値(x,y,z)と色値(R,G,B)が定義されている。
図8(a)〜(f)は、上記図7(a)のポリゴンについて、上記のポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する方法と同様の方法で、各頂点の色に着目してポリゴン簡略化処理を実行した過程を示す図である(なお、図8(a)〜(f)は、より実際の色空間に合わせて各頂点の配置を行っているため、上記図7(a)に示すポリゴンの形状とは異なっている。)。
最初に、図8(a)に示すように、辺V0V5を基準辺として、頂点V1〜頂点V4について削除が可能か否かを判定する。図8(a)の場合は、線分V2H1が閾値より長いため、頂点V1〜頂点V4については削除がされない様子が示されている。
次に、図8(b)には、基準辺として、新たに線分V0V2と線分V2V5を特定した様子が示されている。
さらに、図8(c)に示されるように、基準辺を辺V0V2とした場合の頂点V1が削除可能か否か、及び基準辺を辺V2V5とした場合の頂点V3と頂点V4が削除可能か否かを判定する。図8(c)の判定結果は、図8(d)に示されるように、線分V1H2は閾値よりも短いため頂点V1の削除は可能であるが、線分V3H3が閾値より長いため、頂点V3及び頂点V4については削除がされない様子が示されている。
以下同様に判定した結果、図8(e)に示されるように、基準辺を線分V3V5とした場合には線分V4H4が閾値よりも短いため、頂点V4は削除が可能と判定される。
以上の結果、図7(a)に示すポリゴンにおける各頂点の色値に着目した場合は、頂点V1と頂点V4が削除可能であると判定される。
上述の各頂点の色値に着目して簡略化処理を実行した場合に特定された(頂点V1及び頂点V4)と、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行した場合に特定された(頂点V1、頂点V1及び頂点V4)で共通する(頂点V1及び頂点V4)のみを削除することで、図7(a)に示すポリゴンに対して頂点の位置座標だけではなく、色による評価も加味した簡略化が完了する。簡略化完了後のポリゴンを図9に示す。
図13は、上記図11における、色値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
頂点Vpから色データ(Rp,Gp,Bp)を取り出す処理(S602)並びに端点Vk及び端点Vnから取り出した色データに基づいて距離Lrgbを算出する点以外、上記の図12の処理と同じである。なお、図13においては、下記の(2)式及び(3)式を用いる。
なお、上記(2)式において、Lrgbは、辺Vk−Vn間にある任意の頂点Vpの色から辺Vk−Vnにおける平均色までの色合い上の遠さを示す。また、Rkpは、上記の辺Vk−Vnの端点である頂点Vkにおける赤色と上記頂点Vpにおける赤色の強さの差(即ち、Rkp=Rp−Rk)を示す。以下同様に、Gkpは、頂点Vkにおける緑色と頂点Vpにおける緑色の強さ差(即ち、Gkp=Gp−Gk)を、Bkpは、頂点Vkにおける青色と頂点Vpにおける青色の強さの差(即ち、Bkp=Bp−Bk)をそれぞれ示す。同様に、Rknは、上記の頂点Vkにおける赤色と頂点Vnにおける赤色の強さの差(即ち、Xkn=Xn−Xk)を示す(GknおよびBknのついても同様である。)。さらに、上記(2)式において、「sqrt」は平方根を、「**」はべき乗を、「*」は掛け算をそれぞれ表わしている。
なお、上記(3)式において、Lrgbは、頂点Vkと頂点Vpの間の色合い上の遠さを示す。ここで、色データを用いる場合には、3次元座標系の場合と異なり、異なる頂点に同一の値が割り当てられることがある。この場合は、頂点Vk(又はVn)の色と辺Vk−Vnの平均の色合いとは同じになるので、上記(3)式のような式を用いる。なお、頂点Vkの代わりに頂点VpとVnとの遠さを求めたり、上記(2)式と同じ式により頂点Vpと辺Vk−Vnの平均の色合いとの遠さを求めた場合でも、結果は同一となる。したがって、(3)式の代わりに上記のような遠さを求める式を用いてもよい。
以上で説明したように、本実施の形態に係る描画装置等によれば、ポリゴンにおける各頂点の色値に着目した場合であっても、ポリゴンの2次元又は3次元の座標値に着目した場合と同様の手法で、各頂点を削除の可否について判定することが可能である。
また、上記実施の形態では、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例、及びポリゴンにおける各頂点の2次元又は3次元の座標と色値を組み合わせて簡略化処理を実行する実施例について説明したが、もちろん、頂点の位置や色以外の、例えば法線ベクトルやテクスチャ座標も組み合わせてポリゴンの簡略化の適否について評価を行うこととしてもよい。また、色、法線ベクトル、テクスチャ座標それぞれ単独にのみに着目してポリゴン簡略化の適否について評価を行うこととしてもよい。
(実施の形態2)
上記実施の形態1では、描画情報取得部110で取得したポリゴンが「FAN型」で定義されている場合の実施例について説明したが、本実施の形態では、「STRIP型」で定義されたポリゴンを「FAN型」に変換した上でポリゴン簡略化処理を行う実施例について説明する。
本実施の形態に係る描画装置では、上記実施の形態1に係る描画装置100における描画情報取得部110が、さらに、STRIP型で定義されたポリゴンをFAN型に変換する機能を有することを特徴とする。それ以外の機能構成については、上記実施の形態1に係る描画装置100と同じである。
図14は、多角形(図14の場合は6角形)のポリゴンを定義する場合の2つの形式を示す図である。図14で示されるように、STRIP型で定義されたポリゴン(STRIP型ポリゴン)は、上から下に(例えば、各頂点のy座標の値に沿って)ジグザグ状に定義する方式であり、FAN型で定義されたポリゴン(FAN型ポリゴン)は、閉ループ状に時計回りに定義する方式である。ここで、STRIP型で定義した場合もFAN型で定義した場合も各頂点の座標自体は同じであるため、STRIP型ポリゴンとFAN型ポリゴンは相互に変換が可能である。
なお、本実施の形態で、「STRIP型」で定義されたポリゴンを「FAN型」に変換する理由は、以下の通りである。上記実施の形態1においてポリゴンの頂点の削減に用いたアルゴリズムは、線分列の形状をなるべく維持する性質がある。しかしながら、STRIP型で定義されたポリゴンは、線分列の形と外周が一致しないので、このアルゴリズムを無理に適用すると不自然な変換がなされしまうことがある。したがって、実施の形態1では、FAN型のポリゴンのみを対象としていたが、それでは取り扱うことの出来るポリゴンの種類が限定されてしまうととなり、十分な簡略化が出来ない。そこで、本実施の形態では、その欠点を解消するために当該変換を行っている。
次に、本実施の形態に係る描画情報取得部における、STRIP型ポリゴンからFAN型ポリゴンに変換する手順について、図15及び図16を参照しながら説明する。
図15は、STRIP型ポリゴンからFAN型ポリゴンに変換する手順を説明するための図である。また、図16は、本実施の形態に係る描画情報取得部における処理の流れを示すフローチャートである。
最初に、当該描画情報取得部は、STRIP型で定義されたポリゴンの頂点データを入力すると(S701)、ポリゴンの全ての頂点をx座標でソートする(S702)。本実施の形態では、ソートした頂点を、vs’(0)、vs’(1)・・・vs’(n−1)と表している。なお、nはポリゴンの全頂点数である。
次に、当該描画情報取得部110は、初期化処理として「vf(0)=vs’(0)」を定義する(S703)。ここで、vfは、FAN型に変換した後の頂点を示す記号であり、vf(0)、vf(1)・・・vf(n−1)と表される。
さらに、当該描画情報取得部は、上記vs’(0)よりy座標で上にある頂点を順次検索(上側を検索)しながら、vf(1)以降の頂点を順次定義する(S704)。つまり、y座標上で上にある頂点を、x座標が昇順になるよう調べていけば時計回りになる(vs’のように、x座標の順序でソートした頂点を定義しているのは、この際の検索に使うためである。)。
さらに、当該描画情報取得部は、頂点vs’(n−1)よりy座標で下にある頂点を順次検索(下側を検索)しながら、S704の処理が終わった時点で未定義の頂点vfを順次定義する(S705)。つまり、y座標上で下にある頂点を、x座標が降順になるよう調べていけば時計周りになる。
このような順序で頂点vfを定義することにより、STRIP型で定義されているポリゴンデータの頂点の列を時計回りの列に変換できるので、FAN型で定義されたポリゴンデータに変換することが出来る。
以上で説明したように、本実施の形態に係る描画装置等は、STRIP型で定義されているポリゴンデータをFAN型のポリゴンデータに変換するので、入力されるポリゴンデータの形式に柔軟に対応することができる。
(変形例)
さらに、上記図12又は図13では、ユークリッド距離を用いた算出式を用いたが((1)式〜(3)式)、8近傍距離を使った算出式を適用することもできる(下記(4)式〜(6)式を参照)。
さらに、4近傍距離を使った算出式を適用することもできる(下記(7)式〜(9)式を参照)。
具体的には、上記(1)式の代わりに(4)式又は(7)式を用いてもよい。また、上記(2)式の代わりに(5)式又は(8)式を用いてもよい。さらに、上記(3)式の代わりに(6)式又は(9)式を用いてもよい。
また、上述したように、実施の形態1又は実施の形態2では、正規化、距離の計測及びポリゴンの頂点の削減等は同じ座標系で行っているが、別々の座標系を使う(例えば、3次元座標で測った距離を色座標の空間サイズで正規化する)ことも可能である。
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(3)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blue-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム若しくは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせることとしてもよい。
本発明は、携帯電話機、PDA(Personal Digital Assistants)又はゲーム機等の必ずしも処理能力は高くないが、コンピュータ・グラフィックスを表示する機器に利用可能であり、その産業上の利用可能性は極めて高い。
本発明は、コンピュータ、各種情報機器、携帯電話機又はゲーム機等におけるコンピュータ・グラフィックス技術に関し、特に曲面又は曲線の近似技術に関するものである。
3次元のコンピュータ・グラフィックスにおいては、3次元曲面等を多角形のポリゴン等で近似して描画している。
従来、多角形のポリゴンを用いた描画処理には膨大な処理時間が必要となるため、ポリゴンの頂点を削減することによって、描画処理の簡素化を図る技術が開示されている(例えば、特許文献1参照)。
図1は、上記従来のテクスチャデータ生成装置のブロック図である。従来のテクスチャデータ生成装置は、ポリゴン削減手段1によってポリゴンの数を削減する。また、頂点位置計算手段2は、ポリゴン削減手段1で削除された頂点が、新たな三角形パッチのどの位置に対応するかを計算し、削除された頂点における輝度値を保存する。さらに、多面体展開図作成手段3によって、ポリゴンの展開図を2次元画像領域に作成する。このとき、画素値補間手段4において画像領域の各格子点での輝度値を求めている。
特開平7−160898号公報
しかしながら、ポリゴンの頂点を削除する処理自体にも時間を要するため、従来のポリゴンの頂点を削除する方法においても、トータルの描画時間として考えた場合に、確実に処理時間の短縮ができないという課題がある。
つまり、ポリゴン頂点の削除処理を行う効果がない場合(即ち、頂点を削除すると大きく形状が変化して違和感を生じさせてしまうため結局削除しない場合)には、削除処理を実行した分だけ無駄に処理時間を費やしてしまい、トータルの描画時間として遅くなってしまうことがある。
さらに、近年、携帯電話機や携帯型ゲーム機等の必ずしも処理性能が高くない機器においても、違和感のない速度で移動する3次元物体を表示したいというニーズが高まっており、このようなニーズに対して、従来のポリゴン頂点削除方法では充分応えることが困難である。
そこで、本発明は、処理能力が必ずしも高くない機器であっても、ポリゴンの簡略化を可能にすると共に、コンピュータ・グラフィックスにおけるトータル処理時間の短縮が可能な描画装置等を提供することを目的とする。
本発明は上記のような課題を解決するために行われたものであり、以下のような構成を有する。
本発明に係る描画装置は、コンピュータ・グラフィックスに使用され得る描画処理の種別とポリゴンの形状の特徴とを含む基準情報を取得する基準情報取得手段と、実際のコンピュータ・グラフィックスに使用する描画処理の種別を示す情報とポリゴンの形状を示す情報を含む描画情報を取得する描画情報取得手段と、前記描画情報によって示される前記描画処理の種別と前記ポリゴンの形状が、前記基準情報によって示される基準を満たすか否かを判定する簡略化判定手段と、前記簡略化判定手段において前記基準を満たすと判定された場合に、前記ポリゴンを構成する頂点の削減を行うことによって前記ポリゴンの簡略化を行うポリゴン簡略化手段と、前記頂点が削減されたポリゴンを用いて、コンピュータ・グラフィックスを実行する描画手段とを備えることを特徴とする。
このような構成によって、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことができるとともに、ポリゴン近似を使った3次元物体の描画を、計算能力が高いCPUを必ずしも有していなくても、高速に実行することが可能な描画装置を提供することができる。
また、前記コンピュータ・グラフィックスに使用され得る描画処理の内容は、頂点色割り当て、ライティング、陰面消去、アルファブレンド、テクスチャマッピングの少なくとも1つを含むことを特徴とする。
このような構成によって、具体的な画像処理の内容を勘案したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
また、前記基準情報には、前記ポリゴンを構成するある頂点から他の2つの頂点間を結ぶ線分への垂線の長さが、予め定められた閾値よりも短いという条件を含むことを特徴とする。
このような構成によって、ポリゴンを構成する重要な要素である頂点の座標値とそのポリゴンの形状とに与える影響を評価したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
また、前記ポリゴンを構成する頂点はその属性データとして、位置座標データ、色データ、テクスチャ座標データ、法線方向データの少なくとも1つを保有し、前記ポリゴン簡略化手段は、前記取り出した線分までの距離の最大値は、前記保有する全ての属性データについて求め、当該求めた最大値が全ての属性データに対して所定の閾値よりも大きくないときに前記取り出した線分の間にある各頂点を削除することを特徴とする。
このような構成によって、ポリゴンを構成する要素として頂点の座標値とそのポリゴンの形状だけでなく、色やテクスチャや法線方向に与える影響をも併せて評価したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
さらに、本発明に係る描画方法は、コンピュータ・グラフィックスに使用され得る描画処理の種別とポリゴンの形状上の特徴とを含む基準情報を取得する基準情報取得ステップと、実際のコンピュータ・グラフィックスに使用する描画処理の種別を示す情報とポリゴンの形状を示す情報を含む描画情報を取得する描画情報取得ステップと、前記描画情報によって示される前記描画処理の種別と前記ポリゴンの形状が、前記基準情報によって示される基準を満たすか否かを判定する簡略化判定ステップと、前記簡略化判定ステップにおいて前記基準を満たすと判定された場合に、前記ポリゴンを構成する頂点の削減を行うことによって前記ポリゴンの簡略化を行う簡略化ステップと、前記頂点が削減されたポリゴンを用いて、コンピュータ・グラフィックスを実行する描画ステップとを含むことを特徴とする。
このような構成によって、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことを可能にすると共に、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することが可能になる。
また、前記簡略化ステップでは、(1)前記ポリゴンから1つの面を囲む頂点を抽出し、(2)前記1つの面を囲む頂点の始点と終点を結ぶ線分をメモリに記憶し、(3)前記メモリに記憶している線分の有無を判断し、それが有れば前記メモリから1つの線分を取り出し、(4)取り出した線分の間にある各頂点から前記取り出した線分までの距離の最大値を求め、(5)前記最大値が所定の閾値よりも大きくなければ前記取り出した線分の間にある各頂点を削除し、(6)前記最大値が所定の閾値よりも大きければ前記距離が最大値となる頂点と前記取り出した線分の両端点とを結ぶ2つの線分を前記メモリに記憶し、(7)前記メモリに記憶している線分が無くなるまで前記(3)〜(6)の処理を繰り返すことを特徴とする。
このような構成によって、ポリゴンを構成する重要な要素である頂点の座標値とそのポリゴンの形状とに与える影響の評価を具体的なアルゴリズムによって高速に実行したうえで、トータルとして高速化可能かどうかを事前に判断或いは予想してポリゴンデータの簡略化を行うことができる。
なお、本発明は、上記描画装置における特徴的な構成手段を備える集積回路として実現したり、上記描画方法の各々のステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのプログラムをDVD等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのは云うまでもない。
本発明に係る描画装置等を用いることにより、トータルとして高速化可能かどうかを事前に判断或いは予想したうえでポリゴンデータの簡略化を行うことができるとともに、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することが可能になり、違和感のない動画像を表示することが可能になる。
以下、本発明に係る実施の形態について、図面を参照しながら説明する。なお、本発明について、以下の実施の形態および添付の図面を用いて説明を行うが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。
(実施の形態1)
図2は、本実施の形態に係る描画装置100の構成の概略を示す図である。本実施の形態に係る描画装置100は、ポリゴンに含まれる各頂点における属性データである3次元位置座標値、頂点に付属している色値、テクスチャ座標データ、又は法線ベクトルに基づいてポリゴンの簡略化を行う装置である。また、以下に示す描画方法は、この描画装置100等において用いられる。但し、描画装置100は、本発明に係る描画装置を説明するための1つの具体例であり、必ずしも描画装置100に限るものではなく、例えば携帯電話機やパソコンを始めとする、他の電子機器であってもよい。
図2に示されるように、描画装置100は、その主要な構成要素として、制御部102、RAM103、ROM104、表示部105、操作部106及び通信部107を備える。なお、描画装置100は、上記の他に電源や筐体等、多くの要素を含んでもよいが、本発明と直接関係ないため省略することとする。
上記の主要な構成要素は内部バス108を介して接続されており、必要に応じてデータのやり取りを実行する。
制御部102は、例えばマイクロコンピュータ(以下「マイコン」ともいう。)等を始めとするコンピュータであり、描画装置100の各部の動作を制御する。なお、制御部102は、必ずしも独立したものでなく、システムLSIに含まれるマイコンコア等であっても構わない。また、制御部102は、必ずしも汎用的なマイコンでなく、特定の用途や目的に特化したものであっても構わない。
RAM103は、DRAM(Dynamic−RAM)を始めとする読み書き可能な半導体メモリであり、固定式や、SDメモリカードのように着脱可能なものであっても構わない。さらに、RAM103は、必要に応じて各種のデータ(プログラムも含む)を一時的又は長期的に記憶する。また、電源OFF時に記憶内容が消失するタイプのものでも、電源OFF時に記憶内容が消失しないタイプのどちらでもよいし、両方のタイプが混在していてもよい。
ROM104は、読み出し専用のメモリであり、各種のプログラムや、変更されることのないデータ又は変更されると支障があるデータ(機器ID番号等を含む。)を記憶する。また、ROM104は、半導体メモリの他、磁気的な記録方式や光学的な記録方式によるものでもよいし、これらが混在していてもよい。
これらのRAM103とROM104のどちらか一方又は両方に、本発明の一実施の形態であるプログラムが記録されて制御部102によって実行され、このRAM103とROM104のどちらか一方又は両方に、本発明に係る描画方法を実現し得るプログラムが記録されているものとする。
表示部105は、例えば、液晶表示パネルやELディスプレイパネルであり、画像、文字又は記号等を可視的に表示する機能を有する。
操作部106は、押しボタン、キースイッチ、タッチパネル、ポインティングデバイス、十字キーなど、各種の情報を入力する機能を有する。
通信部107は、無線LANや有線LAN、可視光線や赤外線を使った通信、公衆ネットワークや専用ネットワークとの通信、その他の各種通信を行い、他の機器とデータをやり取りするためのもので、どのようなものであっても構わない。
本実施の形態に係る描画装置100では、ROM104又はRAM103に記憶されているプログラムに従って、ユーザはゲームを行うことができる。ユーザは、ゲームの操作を操作部106で行い、ゲーム画像は表示部105に表示される。ゲーム画像の元になるデータは、ROM104やRAM103に記憶されているデータから与えられるか、ROM104やRAM103に記憶されているデータに基づいて計算され、ポリゴンデータとして与えられる。そして、このポリゴンデータに基づいて、ゲームの種類やシーンに応じて必要な画像処理、例えば、頂点色割り当て、ライティング、アルファブレンド、陰面消去、テクスチャマッピングが実行され、その結果生成された画像が表示部105に表示される。
図3は、本実施の形態に係る描画装置100の制御部102の機能構成を示すブロック図である。図3に示されるように、制御部102は、描画情報取得部110、描画種別決定部120、閾値決定部130、初期線分決定部140、簡略化判定部150及びポリゴン簡略化部160を備える。
描画情報取得部110は、内部バス108を介して、ポリゴンデータや各種パラメータ等を取得する。この場合のポリゴンデータは、FAN型で定義されたポリゴンデータとする。ここで、「FAN型」とは、ポリゴンデータを構成する各頂点が、閉ループ状に時計回りで定義されていることをいう。
描画種別決定部120は、取得されたポリゴンデータ等に基づいて、実行する描画処理の種別を決定する。この描画処理の種別には、頂点色割り当て、ライティング、アルファブレンド、陰面消去、テクスチャマッピング等があり、取得したポリゴンデータや実行中のゲームの種類から一意的に決定したり、ゲーム等のシーンや操作内容等に応じて決定する。さらに、描画種別決定部120は、取得したポリゴンデータによって表わされるポリゴンが存在する空間のサイズ(即ち、ポリゴンを表示する際の所定の空間の最大範囲)を決定する(以下「空間サイズ」という)。この空間サイズは、ポリゴンに含まれる各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他必要に応じて決定する。この空間サイズは、後述するポリゴンデータを削減する際の判断において、種々の関連するデータをそのまま絶対値として用いるのではなく、この空間サイズに対する相対値として正規化する際に用いる。
以下、3次元座標系および上記の色値(以下では色座標系とも呼ぶ)について、データを正規化して用いる理由を述べる。
3次元座標系における空間サイズは、基本的にはディスプレイ全体に対応する位置座標の範囲に相当する。ここで、ディスプレイのサイズは変わらないので、空間サイズが大きいと座標系上では大きいポリゴンでも見かけ上は小さく見えるため、多少ポリゴンの頂点の削減を行っても見かけ上は分かりにくい。したがって、ユーザに見える見かけを重視した評価を行うため、本発明では単純な距離等ではなく、空間サイズで正規化した距離等によってポリゴンを評価している。
また、色座標系における空間サイズは、どれだけの幅の色を使用できるかという範囲に相当する。そのため、空間サイズが小さく、少ししか色が使えない場合は、1つの頂点を削除するだけでも大きく印象が変わり、また、空間サイズが大きい場合は、頂点の削除によって多少色が変わってもそれほど見かけ上の印象は変わらない。したがって、ユーザに対する見かけを重視した評価を行うため、本発明では、頂点間の色の単純な差ではなく、色の空間サイズで正規化した差でポリゴンを評価している。
なお、テクスチャ座標データおよび法線ベクトルを用いる場合も同様の趣旨により正規化を行う。
閾値決定部130は、取得したポリゴンデータの簡略化の要否の判断の際に用いる閾値を決定する。この閾値も、各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他必要に応じて決定する。この閾値は、例えば3次元位置座標値に関していうと、ある頂点から、他の2つの頂点を結ぶ線分への垂線の長さに相当する(詳細は、後述のポリゴン削減のアルゴリズムにおいて説明する)。また、この閾値は、上記空間サイズを基準にして決める必要があり、後述するように空間サイズによって正規化した値を、ポリゴンを構成する頂点について削減を行うか否かについて判断する際に使用する。
初期線分決定部140は、取得したポリゴンデータに基づいて、各ポリゴンに関する初期線分の長さを決定する。この「初期線分の長さ」とは、ポリゴンの始点と終点を結ぶ線分の長さであり、この初期線分の長さもポリゴンデータの削除を行うか否かについての判断に影響を与える。この初期線分の長さも、各頂点における典型的な属性データである3次元位置座標値(X,Y,Z)に限らず、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)、その他必要に応じて決定する。また、この初期線分の長さも上記空間サイズを基準にして決める必要があり、後述するように空間サイズによって正規化した値を、ポリゴンを削減する(より具体的にはポリゴンの頂点を削減する)ためのアルゴリズムで使用する。与えられたポリゴンの初期線分の長さを、それぞれ上記決定した空間サイズで割って相対化し、正規化した値を求める。後述するように、この正規化した値をポリゴン削減のアルゴリズムで使用し、この正規化も、頂点の典型的な属性データである、3次元位置座標(X,Y,Z)値だけでなく、頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)等があり、その他に関しても必要に応じて計算して求める。
簡略化判定部150は、上記処理で求めた結果が予め規定された簡略化基準表が示す条件に該当する(即ち、ポリゴンの簡略化を実行すべき)か否かを判定し、この判定結果をポリゴン簡略化部160に通知する。上記の簡略化基準表の内容を表わすデータは、当該簡略化判定部150が有する記憶部(図示せず)に記憶しておいてもよいし、RAM103又はROM104に格納されていてもよい。
図4は、簡略化判定部150における判定の際に用いる簡略化基準表170の一例である。この簡略化基準表170は、グラフィックスに要するトータルの処理時間が短縮され得る条件を経験的に求めた表である。簡略化基準表170における「頂点色割り当て」とは、ポリゴンの各頂点に色の割り当てた場合の各面の色の補間処理をいう。また、「ライティング」は、光源とこれに基づく光の反射に関する処理をいう。また「アルファブレンド」は、二つの画像を係数(α値)により合成する処理をいう。また、「陰面消去」とは、特定の視線で見た場合の隠れた面を見えなくする処理をいう。また、「テクスチャマッピング」とは、物体の表面の質感を表現するために画像を貼り付ける処理をいう。また、簡略化基準表170における「正規化された閾値」とは、ポリゴンの頂点を削減する際の線分に対する正規化された基準値である(例えば、画面サイズを用いて正規化を行う。)。また、「正規化された初期線分長」とは、ポリゴン頂点の削減を行う際のポリゴンの基準辺に対する正規化された基準値である。
図4の簡略化基準表では、
(1)描画処理の種別が陰面消去だけで他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.62以上であること
(2)描画処理の種別がアルファブレンドだけで他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.39以上であること
(3)描画処理の種別がアルファブレンドと陰面消去だけで他の処理がなく、正規化された閾値が0.05以上で、正規化された初期線分長が0.37以上であること
(4)描画処理の種別が頂点色割り当てとアルファブレンドだけで他の処理がなく、正規化された閾値が0.08以上で、正規化された初期線分長が0.37以上であること
(5)描画処理の種別が頂点色割り当てとアルファブレンドと陰面消去で他の処理がなく、正規化された閾値が0.06以上で、正規化された初期線分長が0.28以上であること
の5条件が示されている。
また、正規化された閾値と正規化された初期線分長の条件は、頂点の典型的な属性データである3次元位置座標値(X,Y,Z)、各頂点に付属している色値(R,G,B)、テクスチャ座標データ(TX,TY)、法線ベクトル(NX,NY,NZ)のうち、評価の対象としている少なくとも1つのデータについて満足させる必要がある。もちろん、これらを組合せた条件について満足させることとしてもよい。
ポリゴン簡略化部160は、上記簡略化判定部150において「ポリゴンの簡略化を実行すべき」と判定された場合に、3次元位置座標値や各頂点に付属している色値等に基づいて、実際にポリゴンの簡略化を実行する。例えば、6角形のポリゴンにおいて1つの頂点を削除して5角形のポリゴンにする場合が該当する。さらに、ポリゴン簡略化部160は、当該ポリゴン簡略化処理の際に一時的にデータを格納するスタックを備える。この「スタック」とは、ラストイン−ファーストアウト方式のプッシュ−プル(アップ−ダウン)式スタックをいうが、これはあくまでも一例に過ぎず、例えば、ファーストイン−ファーストアウト式のシフトレジスタのようなメモリでも構わないし、必ずしも書き込み順序と読み出し順序が特定されないランダムアクセス可能なメモリ(RAM)等であっても構わない。
上記の描画装置100では、現実体感的なイメージを確保する必要があり、動画又は擬似的動画を、リアルタイムに表示しなければならない。しかも、描画装置100に使用されるCPUは、コスト的な制約や消費電力の制約等によって、必ずしも処理能力が高くないことが多い。また、表示対象となる画像は、ゲームの内容やシーンに応じて、複雑なものとなることもある。
このように、必ずしも処理能力が高くないCPUを用いて描画する場合であっても、複雑な動画像又は擬似的動画像をリアルタイムに表示するため、この描画装置100では、ポリゴン削減を行ったほうが全体としての処理量を削減できるかどうかをまず判断し、その結果、ポリゴン削減を行ったほうが全体としての処理量を削減できると判断したときには、後述するアルゴリズムに従ってポリゴン削減を実行し、全体としての処理量を削減して、複雑な動画像又は擬似的動画像をリアルタイムに表示する。
つまり、本発明に係る描画装置100は、表示部105に描画するべきポリゴンデータが与えられたとき、制御部102は、RAM103やROM104に記録されたプログラムに従って、このポリゴンデータを削除した後に描画を実行したほうが、トータルとして高速化できるか、又はポリゴンデータを削除せずにそのまま描画を実行したほうが、トータルとして高速化できるかの判断を実行する。
次に、図5〜図13を参照しながら、本実施の形態に係る描画装置100の動作について説明する。以下では、まず、ポリゴンの簡略化を行うべきか否かについての判断を行った後、ポリゴン簡略化処理の代表例として、ポリゴンの3次元位置座標値に基づいてポリゴンの簡略化を実行する実施例について説明する。さらに、ポリゴン簡略化処理の他の例として、ポリゴンの各頂点に割り当てられた色値に基づいてポリゴンの簡略化を実行する実施例について説明する。なお、上述したように、他にテクスチャ座標データや法線ベクトルに基づいて簡略化を実行することが考えられるが、基本的な処理の流れは同様であるので説明を省略する。
図10は、ポリゴン簡略化を行うべきか否かの判断を行う処理の流れを示すフローチャートである。
最初に、描画種別決定部120は、描画情報取得部110において取得したポリゴンデータ等に基づいて、描画しようとするポリゴンに対して適用する描画処理の種別を決定する(S201)。
さらに、描画種別決定部120は、ポリゴンの表示に関する空間サイズを決定する(S202)。
次に、閾値決定部130は、処理対象のポリゴンの簡略化を行うために用いる閾値を決定する(S203)。
この後、初期線分決定部140は、処理対象のポリゴンの初期線分の長さを求める(S204)。
さらに、上記ポリゴンデータの簡略化を行うための閾値と、求められたポリゴンの初期線分長とを、それぞれ上記決定した空間サイズで割って相対化し、正規化した値を求める(S205)。
最後に、上記処理で求めた結果について、図4に示す簡略化基準表を参照して一致又は不一致について検証し(S206)、一致するときにポリゴンの簡略化を行うと判定し(S207)、一致しなければポリゴン簡略化を行わないと判定する(S208)。
このようにして、ポリゴンについて簡略化を行う処理に入る前に、与えられたポリゴンデータが所定の条件を満足するか否かを事前に判断し、この条件を満足するときにのみポリゴンの削減を実行する。これにより、ポリゴンの削減のために却って時間がかかり、トータルとしては高速化にならないという事態を避けることができる。
次に、上記簡略化判定部150において、「ポリゴンの簡略化を行うべき」と判断された場合に実行される、ポリゴンの頂点を削減するアルゴリズムについて説明する。
図5(a)〜図5(d)は、本実施の形態における処理対象のポリゴンの一例を示す図である。また、図11は、ポリゴンを削減する処理の流れを示すフローチャートである。また、このポリゴン削減の手続きによって実行される他の例を図6に示す。
上記図5(a)〜図5(d)の例では、頂点の典型的な属性データである、3次元位置座標値(X,Y,Z)の一部である2次元座標値(X,Y)を用いて説明をするが、勿論、3次元位置座標値(X,Y,Z)によって表現されるポリゴンにも適用が可能である。また、頂点に付属している他の属性データである色値(R,G,B)、テクスチャ座標データ(TX,TY)及び法線ベクトル(NX,NY,NZ)等に関しても同様である。
最初に、ポリゴン簡略化部160は、処理対象のポリゴンから1つの面(多角形)を取り出す(S401)。図5に示す例では、この取り出された1つのポリゴンは、図5(a)の多角形V0V1V2V3V4V5に相当する。
次に、ポリゴン簡略化部160は、上記の取り出した多角形において、1つの基準辺を定める(S402)。図5(a)の例では、ポリゴン簡略化部160は、取り出した多角形は多角形V0V1V2V3V4V5であり、また、辺V0V5を基準辺とする。
そして、この定めた基準辺をポリゴン簡略化部160のスタックに格納する(S403)。図5(a)の例では、辺V0V5がスタックに格納する基準辺である。
次に、ポリゴン簡略化部160は、処理ループにおいて、スタックの中が空か否かを判断する(S404)。初めてこの判断を行うときには、上記基準辺がスタックに格納されているので、この判断結果は「No」になる。つまり、図5(a)の例では、辺V0V5がスタックに格納されているため、「No」に該当する。但し、これ以降処理が進み、S404における判断結果が「Yes」になると、ポリゴン簡略化の処理は終了する。
S404の判断において、スタックが空でないと判断されると(S404でNo)、ポリゴン簡略化部160は、このスタックから1つの辺(線分)を取り出す(S405)。図5(a)に示す例では、辺V0V5がこれに相当する。
次に、ポリゴン簡略化部160は、取り出された辺の間にある頂点から、スタックから取り出された辺までの距離を計算する(S406)。図5(a)に示す例では、スタックから取り出された辺V0V5の間にある頂点とは、頂点V1、頂点V2、頂点V3及び頂点V4であり、各頂点から辺V0V5までの距離とは、各頂点(頂点V1〜V4)から辺V0V5に対して引いた垂線の長さである。
次に、ポリゴン簡略化部160は、「辺−各頂点間距離計算処理」(S407)を実行する。この「辺−各頂点間距離計算処理」とは、取り出された辺と各頂点間距離のうち最長の距離を計算する処理をいう。さらに、ポリゴン簡略化部160は、計算された距離のうち、最長の距離を構成する頂点(Vmax)を特定する(S408)。図5(a)に示す例では、頂点V3が、最長の距離を構成する頂点に相当し、辺V3H1が、長さが最大となる距離に相当する。
次に、ポリゴン簡略化部160は、最長の距離を構成する頂点から辺までの距離(図5(a)の例では、V3H1)が、予め定められた所定の閾値よりも大きいか否かの判断を行う(S409)。この「予め定められた所定の閾値」とは、ポリゴンの削減を行うか否かの判断時に決定した「与えられたポリゴンデータの簡略化を行う閾値(図10のS203における閾値)」と同じものである。
そして、最長の距離を構成する頂点から辺までの距離が、予め定められた所定の閾値よりも大きくなければ(S409でNo)、この辺の間にある頂点を削除する(S411)。また、最長の距離を構成する頂点から辺までの距離が、予め定められた所定の閾値よりも大きければ(S409でYes)、現在の基準辺の両端と、この基準辺までの長さが最大である頂点とを結ぶ線分を新たにスタックに格納する(S410)。図5(a)に示す例では、最長の距離を構成する頂点から辺までの距離V3H1が、予め定められた所定の閾値よりも大きいので(S409でYes)、現在の基準辺である辺V0V5の両端と、この基準辺V0V5までの長さが最大である頂点V3とを結ぶ線分V3V0と線分V3V5を、新たにスタックに格納する(S410)。
そして、上記処理ループの最初の処理(S404)に戻る。
上記説明した処理ループの第1回目の処理では、図5(a)に示すように、簡略化の対象となる多角形は多角形V0V1V2V3V4V5であり、この場合の始点が頂点V0、終点が頂点V5として、頂点を削減するための判断を行った。そして、その結果、この処理ループでは頂点の削減が行われなかった。
以下に説明する処理ループの第2回目以降の処理では、図5(b)に示すように、簡略化の対象となる多角形が多角形V0V1V2V3(始点が頂点V0、終点が頂点V3)と、多角形V3V4V5(始点はV3、終点はV5)との2つとし、上記と同様にして頂点削減の判断を行う。
第2回目の処理ループの最初においても、スタックの中が空か否かの判断を行う(S404)。以上で説明した例では、スタックに辺V0V3と辺V3V5の2つの線分が格納されているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから1つの辺(図5(c)に示す例では辺V0V3)を取り出し(S405)、この辺の間にある各頂点(頂点V1、各V2)から取り出した辺(辺V0V3)までの距離を計算する(S407)。この距離は、図5(c)に示す例ではV1H2とV2H3に相当する。
次に、これらの計算した距離からその長さが最大となるものを取り出し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図5(c)に示す例では2つの垂線である線分V1H2も線分V2H3も所定の閾値よりも長くはないと判定され(S409でNo)、この辺(V0V3)の間にある頂点V1と頂点V2を削除すると判定する(S411)。そして再度、処理ループの最初の処理(S404)に戻る。
第3回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上で説明した例では、スタックに未だ辺V3V5という1つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺(図5(c)に示す例では辺V3V5)を取り出し(S405)、この辺の間にある頂点(頂点V4)から取り出された辺(辺V3V5)までの距離を計算する(S407)。この距離は、図5(c)に示す例では線分V4H4に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図5(c)に示す例ではこの垂線である線分V4H4は所定の閾値よりも長くはないと判定されるため(S409でNo)ので、取り出された辺(辺V3V5)の間にある頂点V4を削除すると判定する(S411)。
上記の一連の処理によって、図5(d)に示すように、頂点V1、頂点V2及び頂点V4が削除され、元の多角形V0V1V2V3V4V5が、多角形V0V3V5のように簡略化される。
そして再度、処理ループの最初(S404)に戻る。上記説明した例では、これ以上スタックには辺(線分)が残っていない(S404でYes)ので、この簡略化の処理を終了する。
図12は、上記図11における、座標値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。なお、図12においては、下記の(1)式を用いる。
なお、上記(1)式において、Lxyzは、辺Vk−Vn間にある任意の頂点Vpから辺Vk−Vnまでの垂線の長さ(即ち、頂点Vpから辺Vk−Vnまでのユークリッド距離)を示す。また、Xkpは、上記の辺Vk−Vnの端点である頂点Vkと上記頂点Vpにおけるx座標上の差(即ち、Xkp=Xp−Xk)を示す。以下同様に、Ykpは、頂点Vkと頂点Vpにおけるy座標上の差(即ち、Ykp=Yp−Yk)を、Zkpは、頂点Vkと頂点Vpにおけるz座標上の差(即ち、Zkp=Zp−Zk)をそれぞれ示す。同様に、Xknは、上記の頂点Vkと頂点Vnにおけるx座標上の差(即ち、Xkn=Xn−Xk)を示す(YknおよびZknのついても同様である。)。さらに、上記(1)式において、「sqrt」は平方根を、「**」はべき乗を、「*」は掛け算をそれぞれ表わしている。
次に、上記図5の場合と同様に、図6に示すポリゴンを対象として、ポリゴン簡略化処理を実行した実施例について説明する。
最初に、ポリゴン簡略化部160は、得られたポリゴンから1つの面(多角形)を取り出す(S401)。図6に示す例では、この取り出された1つのポリゴンは図6(a)の多角形W0W1W2W3W4W5に相当する。
次に、ポリゴン簡略化部160は、取り出された多角形W0W1W2W3W4W5において、1つの基準辺(W0W5)を定める(S402)。上記図5の場合と同様に、基準辺を、多角形W0W1W2W3W4W5を描くときの始点W0と終点W5とを結ぶ線分として定める。
そして、ポリゴン簡略化部160は、定められた基準辺W0W5をスタックに格納する(S403)。
次に、ポリゴン簡略化部160は、処理ループに入り、スタックが空になったか否かを判断する(S404)。なお、最初の判断では、上記基準辺がスタックに格納されているので、この判断結果は「No」になる。
上記判断において、スタックが空でないと判断されると(S404でNo)、このスタックから1つの辺(線分)を取り出す(S405)。図6(a)に示す例では、辺W0W5がこの辺に相当する。
次に、辺W0W5の間にある頂点から、この辺までの距離を計算する(S407)。図6(a)に示す例では、辺W0W5の間にある頂点とは、頂点W1、頂点W2、頂点W3及び頂点W4であり、各頂点から辺W0W5までの距離とは、各頂点(頂点W1、頂点W2、頂点W3又は頂点W4)から辺W0W5に対して引いた垂線の長さである。
次に、ポリゴン簡略化部160は、計算された距離の中から長さが最大となる頂点を特定する(S408)。図6(a)に示す例では、頂点W3が、最長の距離を構成する頂点に相当し、線分W3K1が最長の距離に相当する。
次に、この長さが最大である頂点から辺までの距離(W3K1)が、予め定められた所定の閾値よりも大きいか否かの判断を行う(S409)。
そして、この長さが最大である頂点から辺までの距離(W3K1)が、予め定められた所定の閾値よりも大きくなければ(S409でNo)、この辺の間にある頂点を削除する(S411)。図6(a)に示す例では、長さが最大である頂点W3から辺W0W5までの距離(W3K1)が、予め定められた所定の閾値よりも大きいので(S409でYes)、現在の基準辺W0W5の両端と、この基準となる辺までの長さが最大である頂点W3とを結ぶ線分W3W0と線分W3W5を、新たにスタックに格納する(S410)。
そして、上記処理ループの最初(S404)に戻る。
上記説明した処理ループの第1回目の処理では、図6(a)に示すように、簡略化の対象となる多角形を多角形W0W1W2W3W4W5とし、この始点を頂点W0、終点を頂点W5として、頂点削減の判断を行った。そして、その結果、この処理ループでは頂点削減を行わなかった。ここまでの処理は、上記図5を使った例の説明と変わらない。
以下に説明する処理ループの第2回目以降の処理では、図6(b)に示すように、簡略化の対象となる多角形を多角形W0W1W2W3(始点は頂点W0、終点は頂点W3)と、多角形W3W4W5(始点は頂点W3、終点は頂点W5)との2つとし、上記と同様にして頂点削減の判断を行う。
第2回目の処理ループの最初に、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W3と線分W3W5との2つの線分が格納されているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから1つの辺(図6(c)に示す例では辺W0W3)を取り出し(S405)、この辺W0W3の間にある頂点W1及び頂点W2から辺(W0W3)までの距離を計算する(S407)。この距離は、図6(c)に示す例では線分W1K2と線分W2K3に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図6(c)に示す例では、線分W2K3がこの長さが最大となる距離に相当し、この距離は所定の閾値よりも長い(S409でYes)ので、この頂点W2と現在の基準辺W0W3の両端とを結ぶ2つの線分を、スタックに新たに格納する(S409)。即ち、線分W0W2と線分W2W3との2つの線分が新たにスタックに格納されることになる。そして再度、処理ループの最初(S404)に戻る。
第3回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W2、線分W2W3及び線分W3W5という3つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺を取り出す(S405)。
このとき、どの辺が取り出されるかは実施の形態によって変わり得るが、実質的にはどの辺を取り出したとしても変わらないので、ここでは仮に線分W3W5が取り出されたと仮定する。
そして、この線分W3W5の間にある頂点W4から辺W3W5までの距離を計算する(S407)。この距離は、図6(c)に示す例では線分W4K4に相当する。
次に、これらの計算した距離からその長さが最大となるものを特定し(S408)、その最大値が所定の閾値よりも大きいか否かを判断する(S409)。図6(c)に示す例ではこの垂線である線分W4K4は所定の閾値よりも長くはない(S409でNo)ので、この線分W3W5の間にある頂点W4を削除する(S411)。そして再度、処理ループの最初の処理(S404)に戻る。
第4回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに線分W0W2及び線分W2W3という2つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている1つの辺を取り出す(S405)。
ここでは仮に線分W0W2が取り出されたと仮定する。
そして、この線分W0W2の間にある頂点W1から線分W0W2までの距離を計算する(S406)。この距離は所定の閾値よりも長くはない(S408でNo)ので、この線分W0W2の間にある頂点W1を削除する(S411)。そして再度、処理ループの最初(S404)に戻る。
第5回目の処理ループの最初でも、スタックが空か否かの判断を行う(S404)。以上説明した例では、スタックに辺W2W3という1つの線分が残っているので、スタックは空でなく(S404でNo)、次の処理に移る。
そして、スタックから残っている線分W2W3を取り出す(S405)。
そして、この辺の間には頂点が存在しないので以下の処理は行わず、再度、処理ループの最初(S404)に戻る。
この段階ではこれ以上スタックには辺は存在しない(S404でYes)ので、この簡略化の処理を終了する(S411)。
これらの一連の処理によって、図6(d)に示すように、頂点W1及び頂点W4が削除され、元の多角形W0W1W2W3W4W5が、多角形W0W2W3W5のように簡略化される。
以上説明したように、本発明の実施の形態では、与えられたポリゴンを構成する1つの多角形に対して、トータルとして高速化が可能かどうかを事前に判断又は予想した上で、ポリゴンの簡略化を行うことができる。また、この簡略化されたポリゴンに対してシェーディング処理等の描画処理を実行することによって、ポリゴン近似を使った3次元物体の描画を、計算能力が必ずしも高くない機器においても高速に実行することを可能にすると共に、違和感のない動画像を表示することができる。
上記では、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例について説明したが、ポリゴンを表示する際の光の3原色(Red、Green及びBlue)に着目してポリゴン簡略化処理を実行することも可能である。ポリゴンの頂点の位置座標のみに基づいて頂点の削減を行うと、例えば、隣り合う色が黒と白など極端に違う時でも一方が削除されてしまい、視覚的に大きく変わってしまうことがある。そこで、ポリゴンの色の変化が激しい場合などには、頂点の位置座標だけではなく、色による評価も加味することにより、視覚的に違和感なくポリゴンの簡略化を可能にすることとする。
以下、図7〜図9、図11及び図13を参照しながら、ポリゴンを表示する際の3原色に着目してポリゴン簡略化処理を実行する実施例について説明する。なお、上記ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例と同じ内容については同じ符号を付し、その説明は省略する。
図7(a)は、描画情報取得部110を介して入力したポリゴンの一例を示す図である。図7(a)に示されるポリゴンは、6角形であり、各頂点(頂点V0〜V5)に色が定義されている。また、図7(b)は、上記図7(a)に示されるポリゴンの詳細な態様をまとめた表であり、各頂点における座標値(x,y,z)と色値(R,G,B)が定義されている。
図8(a)〜図8(f)は、上記図7(a)のポリゴンについて、上記のポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する方法と同様の方法で、各頂点の色に着目してポリゴン簡略化処理を実行した過程を示す図である(なお、図8(a)〜図8(f)は、より実際の色空間に合わせて各頂点の配置を行っているため、上記図7(a)に示すポリゴンの形状とは異なっている。)。
最初に、図8(a)に示すように、辺V0V5を基準辺として、頂点V1〜頂点V4について削除が可能か否かを判定する。図8(a)の場合は、線分V2H1が閾値より長いため、頂点V1〜頂点V4については削除がされない様子が示されている。
次に、図8(b)には、基準辺として、新たに線分V0V2と線分V2V5を特定した様子が示されている。
さらに、図8(c)に示されるように、基準辺を辺V0V2とした場合の頂点V1が削除可能か否か、及び基準辺を辺V2V5とした場合の頂点V3と頂点V4が削除可能か否かを判定する。図8(c)の判定結果は、図8(d)に示されるように、線分V1H2は閾値よりも短いため頂点V1の削除は可能であるが、線分V3H3が閾値より長いため、頂点V3及び頂点V4については削除がされない様子が示されている。
以下同様に判定した結果、図8(e)に示されるように、基準辺を線分V3V5とした場合には線分V4H4が閾値よりも短いため、頂点V4は削除が可能と判定される。
以上の結果、図7(a)に示すポリゴンにおける各頂点の色値に着目した場合は、頂点V1と頂点V4が削除可能であると判定される。
上述の各頂点の色値に着目して簡略化処理を実行した場合に特定された(頂点V1及び頂点V4)と、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行した場合に特定された(頂点V1、頂点V2及び頂点V4)で共通する(頂点V1及び頂点V4)のみを削除することで、図7(a)に示すポリゴンに対して頂点の位置座標だけではなく、色による評価も加味した簡略化が完了する。簡略化完了後のポリゴンを図9に示す。
図13は、上記図11における、色値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
頂点Vpから色データ(Rp,Gp,Bp)を取り出す処理(S602)並びに端点Vk及び端点Vnから取り出した色データに基づいて距離Lrgbを算出する点以外、上記の図12の処理と同じである。なお、図13においては、下記の(2)式及び(3)式を用いる。
なお、上記(2)式において、Lrgbは、辺Vk−Vn間にある任意の頂点Vpの色から辺Vk−Vnにおける平均色までの色合い上の遠さを示す。また、Rkpは、上記の辺Vk−Vnの端点である頂点Vkにおける赤色と上記頂点Vpにおける赤色の強さの差(即ち、Rkp=Rp−Rk)を示す。以下同様に、Gkpは、頂点Vkにおける緑色と頂点Vpにおける緑色の強さ差(即ち、Gkp=Gp−Gk)を、Bkpは、頂点Vkにおける青色と頂点Vpにおける青色の強さの差(即ち、Bkp=Bp−Bk)をそれぞれ示す。同様に、Rknは、上記の頂点Vkにおける赤色と頂点Vnにおける赤色の強さの差(即ち、Xkn=Xn−Xk)を示す(GknおよびBknのついても同様である。)。さらに、上記(2)式において、「sqrt」は平方根を、「**」はべき乗を、「*」は掛け算をそれぞれ表わしている。
なお、上記(3)式において、Lrgbは、頂点Vkと頂点Vpの間の色合い上の遠さを示す。ここで、色データを用いる場合には、3次元座標系の場合と異なり、異なる頂点に同一の値が割り当てられることがある。この場合は、頂点Vk(又はVn)の色と辺Vk−Vnの平均の色合いとは同じになるので、上記(3)式のような式を用いる。なお、頂点Vkの代わりに頂点VpとVnとの遠さを求めたり、上記(2)式と同じ式により頂点Vpと辺Vk−Vnの平均の色合いとの遠さを求めた場合でも、結果は同一となる。したがって、(3)式の代わりに上記のような遠さを求める式を用いてもよい。
以上で説明したように、本実施の形態に係る描画装置等によれば、ポリゴンにおける各頂点の色値に着目した場合であっても、ポリゴンの2次元又は3次元の座標値に着目した場合と同様の手法で、各頂点を削除の可否について判定することが可能である。
また、上記実施の形態では、ポリゴンの2次元又は3次元の座標に着目してポリゴン簡略化処理を実行する実施例、及びポリゴンにおける各頂点の2次元又は3次元の座標と色値を組み合わせて簡略化処理を実行する実施例について説明したが、もちろん、頂点の位置や色以外の、例えば法線ベクトルやテクスチャ座標も組み合わせてポリゴンの簡略化の適否について評価を行うこととしてもよい。また、色、法線ベクトル、テクスチャ座標それぞれ単独にのみに着目してポリゴン簡略化の適否について評価を行うこととしてもよい。
(実施の形態2)
上記実施の形態1では、描画情報取得部110で取得したポリゴンが「FAN型」で定義されている場合の実施例について説明したが、本実施の形態では、「STRIP型」で定義されたポリゴンを「FAN型」に変換した上でポリゴン簡略化処理を行う実施例について説明する。
本実施の形態に係る描画装置では、上記実施の形態1に係る描画装置100における描画情報取得部110が、さらに、STRIP型で定義されたポリゴンをFAN型に変換する機能を有することを特徴とする。それ以外の機能構成については、上記実施の形態1に係る描画装置100と同じである。
図14は、多角形(図14の場合は6角形)のポリゴンを定義する場合の2つの形式を示す図である。図14で示されるように、STRIP型で定義されたポリゴン(STRIP型ポリゴン)は、上から下に(例えば、各頂点のy座標の値に沿って)ジグザグ状に定義する方式であり、FAN型で定義されたポリゴン(FAN型ポリゴン)は、閉ループ状に時計回りに定義する方式である。ここで、STRIP型で定義した場合もFAN型で定義した場合も各頂点の座標自体は同じであるため、STRIP型ポリゴンとFAN型ポリゴンは相互に変換が可能である。
なお、本実施の形態で、「STRIP型」で定義されたポリゴンを「FAN型」に変換する理由は、以下の通りである。上記実施の形態1においてポリゴンの頂点の削減に用いたアルゴリズムは、線分列の形状をなるべく維持する性質がある。しかしながら、STRIP型で定義されたポリゴンは、線分列の形と外周が一致しないので、このアルゴリズムを無理に適用すると不自然な変換がなされしまうことがある。したがって、実施の形態1では、FAN型のポリゴンのみを対象としていたが、それでは取り扱うことの出来るポリゴンの種類が限定されてしまうととなり、十分な簡略化が出来ない。そこで、本実施の形態では、その欠点を解消するために当該変換を行っている。
次に、本実施の形態に係る描画情報取得部における、STRIP型ポリゴンからFAN型ポリゴンに変換する手順について、図15及び図16を参照しながら説明する。
図15は、STRIP型ポリゴンからFAN型ポリゴンに変換する手順を説明するための図である。また、図16は、本実施の形態に係る描画情報取得部における処理の流れを示すフローチャートである。
最初に、当該描画情報取得部は、STRIP型で定義されたポリゴンの頂点データを入力すると(S701)、ポリゴンの全ての頂点をx座標でソートする(S702)。本実施の形態では、ソートした頂点を、vs’(0)、vs’(1)・・・vs’(n−1)と表している。なお、nはポリゴンの全頂点数である。
次に、当該描画情報取得部110は、初期化処理として「vf(0)=vs’(0)」を定義する(S703)。ここで、vfは、FAN型に変換した後の頂点を示す記号であり、vf(0)、vf(1)・・・vf(n−1)と表される。
さらに、当該描画情報取得部は、上記vs’(0)よりy座標で上にある頂点を順次検索(上側を検索)しながら、vf(1)以降の頂点を順次定義する(S704)。つまり、y座標上で上にある頂点を、x座標が昇順になるよう調べていけば時計回りになる(vs’のように、x座標の順序でソートした頂点を定義しているのは、この際の検索に使うためである。)。
さらに、当該描画情報取得部は、頂点vs’(n−1)よりy座標で下にある頂点を順次検索(下側を検索)しながら、S704の処理が終わった時点で未定義の頂点vfを順次定義する(S705)。つまり、y座標上で下にある頂点を、x座標が降順になるよう調べていけば時計回りになる。
このような順序で頂点vfを定義することにより、STRIP型で定義されているポリゴンデータの頂点の列を時計回りの列に変換できるので、FAN型で定義されたポリゴンデータに変換することが出来る。
以上で説明したように、本実施の形態に係る描画装置等は、STRIP型で定義されているポリゴンデータをFAN型のポリゴンデータに変換するので、入力されるポリゴンデータの形式に柔軟に対応することができる。
(変形例)
さらに、上記図12又は図13では、ユークリッド距離を用いた算出式を用いたが((1)式〜(3)式)、8近傍距離を使った算出式を適用することもできる(下記(4)式〜(6)式を参照)。
さらに、4近傍距離を使った算出式を適用することもできる(下記(7)式〜(9)式を参照)。
具体的には、上記(1)式の代わりに(4)式又は(7)式を用いてもよい。また、上記(2)式の代わりに(5)式又は(8)式を用いてもよい。さらに、上記(3)式の代わりに(6)式又は(9)式を用いてもよい。
また、上述したように、実施の形態1又は実施の形態2では、正規化、距離の計測及びポリゴンの頂点の削減等は同じ座標系で行っているが、別々の座標系を使う(例えば、3次元座標で測った距離を色座標の空間サイズで正規化する)ことも可能である。
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(3)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blue-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム若しくは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせることとしてもよい。
本発明は、携帯電話機、PDA(Personal Digital Assistants)又はゲーム機等の必ずしも処理能力は高くないが、コンピュータ・グラフィックスを表示する機器に利用可能であり、その産業上の利用可能性は極めて高い。
図1は、従来の曲線近似装置によって曲線を近似する手法を説明するための図である。
図2は、本発明に係る描画装置の構成の概略を示す図である。
図3は、実施の形態1に係る描画装置の制御部の機能構成を示すブロック図である。
図4は、本発明に係る簡略化基準表の一例を示す図である。
図5(a)〜図5(d)は、実施の形態1に係るポリゴンを削減する過程の一例を説明するための図である。
図6(a)〜図6(d)は、実施の形態1に係るポリゴンを削減する過程のその他の例を説明するための図である。
図7(a)は、描画情報取得部を介して入力したポリゴンの一例を示す図である。図7(b)は、ポリゴンの詳細な態様をまとめた表である。
図8(a)〜図8(f)は、実施の形態1に係るポリゴンの各頂点の色に着目してポリゴン簡略化処理を実行した過程を示す図である。
図9は、簡略化を実行したポリゴンの一例を示す図である。
図10は、実施の形態1に係るポリゴンデータを構成する頂点の削減についての判断を行う処理の流れを示すフローチャートである。
図11は、実施の形態1に係るポリゴンを削減する処理の流れを示すフローチャートである。
図12は、図11における、座標値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
図13は、図11における、色値に着目した場合の「辺−各頂点間距離計算処理」の詳細なフローチャートである。
図14は、実施の形態2に係る多角形のポリゴンを定義する場合の2つの形式を示す図である。
図15は、STRIP型ポリゴンからFAN型ポリゴンに変換する手順の概略を示す図である。
図16は、実施の形態2に係る描画情報取得部におけるSTRIP型ポリゴンからFAN型ポリゴンに変換する処理の流れを示すフローチャートである。
符号の説明
100 描画装置
102 制御部
103 RAM
104 ROM
105 表示部
106 操作部
107 通信部
108 内部バス
110 描画情報取得部
120 描画種別決定部
130 閾値決定部
140 初期線分決定部
150 簡略化判定部
160 ポリゴン簡略化部