(57)【要約】【課題】オブジェクトの表面凹凸を忠実に再現し、かつオブジェクト再現時のレンダリング負荷を抑制可能とする、オブジェクト再現用の画像データを生成する。【解決手段】表面凹凸データ解像度変換部2002は、オブジェクトの表面凹凸の状態を示す表面凹凸データを入力する。そして該表面凹凸データのデータ平面を分割した領域毎に、該領域内の表面凹凸データから算出されるオブジェクト表面の傾きに応じて該領域の解像度を変換する。またオブジェクト形状解像度変換部2005はオブジェクトの形状を示す形状データを入力し、該形状データをオブジェクト形状が簡単化されるように変換する。そして反射強度分布算出部2103で、これら変換後の表面凹凸データおよび形状データをオブジェクト再現用の画像データとして、さらにオブジェクトの変角反射特性、仮想空間情報を用いたレンダリングによりオブジェクトを再現する。【選択図】  図2
2014206875.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトを生成するための画像処理装置であって、
前記オブジェクトの表面凹凸の状態を示す表面凹凸データを入力する表面凹凸データ入力手段と、
前記オブジェクトの領域毎に、表面凹凸の変化が大きいかどうかを判定する判定手段と、
前記判定手段による判定の結果に応じて、前記表面凹凸データの解像度を、領域ごとに第1の解像度または前記第1の解像度よりも低い第2の解像度のいずれかに変換する第1の変換手段と、
前記第1の変換手段による変換後の前記表面凹凸データを出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記領域内の画素ごとに前記表面凹凸データからオブジェクト表面の傾きを算出し、該領域内での前記傾きの分散に基づいて判定することを特徴とする請求項1に記載の画像処理装置。
【請求項３】
前記第1の変換手段は、前記領域内の画素ごとに法線データを算出することを特徴とする請求項2に記載の画像処理装置。
【請求項４】
前記第1の変換手段は、前記判定手段により前記表面凹凸の変化が大きいと判定された領域においては第1の解像度に変換し、前記判定手段により前記表面凹凸の変化が小さいと判定された領域においては前記第2の解像度に変換することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項５】
前記第1の変換手段は、前記領域毎に、
前記表面凹凸データから画素毎に算出されるオブジェクト表面の傾き、前記オブジェクトの反射特性データ、および周囲環境データに応じて第1の反射光強度を算出し、
前記表面凹凸データから画素毎に算出されるオブジェクト表面の傾きの平均、前記オブジェクトの反射特性データ、および周囲環境データに応じて第2の反射光強度を算出し、
前記第1の反射光強度と前記第2の反射光強度との差分が所定の閾値以上である領域のデータ解像度を第1の解像度に変換し、前記差分が前記閾値未満である領域のデータ解像度を前記第1の解像度よりも低い第2の解像度に変換することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項６】
前記第1の解像度は前記表面凹凸データの解像度であり、前記第2の解像度は視覚の空間分解能であることを特徴とする請求項4または5に記載の画像処理装置。
【請求項７】
さらに、複数のポリゴンから構成され、前記オブジェクトの形状を示す形状データを入力する形状データ入力手段と、
前記形状データを構成するポリゴン数がより少ない形状データに変換する第2の変換手段と、
を有することを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項８】
前記第2の変換手段は、前記形状データから視覚の空間分解能よりも低周波な特性を抽出することを特徴とする請求項7に記載の画像処理装置。
【請求項９】
さらに、前記第1および第2の変換手段による変換後の前記表面凹凸データおよび前記形状データをレンダリングすることで前記オブジェクトの再現画像を生成するレンダリング手段を有することを特徴とする請求項7または8に記載の画像処理装置。
【請求項１０】
前記レンダリング手段は、前記第1および第2の変換手段による変換後の前記表面凹凸データおよび前記形状データと、前記オブジェクトの反射特性データおよび周囲環境データを用いて、該形状データを構成するポリゴン毎の反射光強度を算出することを特徴とする請求項9に記載の画像処理装置。
【請求項１１】
表面凹凸データ入力手段、判定手段、第1の変換手段、および出力手段を有し、オブジェクトを生成するための画像処理装置における画像処理方法であって、
前記表面凹凸データ入力手段が、前記オブジェクトの表面凹凸の状態を示す表面凹凸データを入力し、
前記判定手段が、前記オブジェクトの領域毎に、表面凹凸の変化が大きいかどうかを判定し、
前記第1の変換手段が、該判定の結果に応じて、前記表面凹凸データの解像度を、領域ごとに第1の解像度または前記第1の解像度よりも低い第2の解像度のいずれかに変換し、
前記出力手段が、該変換後の前記表面凹凸データを出力する、ことを特徴とする画像処理方法。
【請求項１２】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至10のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス技術を用いてオブジェクト表面の質感を忠実に再現する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
コンピュータグラフィックス技術(以下、CG技術)を用いて、実物(オブジェクト)の表面凹凸を再現する手法として、ミップマップと呼ばれる手法がある。この手法は、予め複数の解像度で取得した表面凹凸データを保持しておき、表示解像度に最も近い解像度の表面凹凸データを選択して描画(レンダリング)処理を実施するものである。このように、表示解像度に応じた表面凹凸データを用いることで、表面凹凸再現におけるレンダリング負荷を軽減することができる。
【０００３】
しかしながら上記ミップマップ技術においては、表示解像度よりも低解像度の表面凹凸データを用いた際に、実際のオブジェクト表面とは視覚的な印象が異なるという課題があった。そこでオブジェクトの表面凹凸を忠実に再現するために、表示解像度以上の解像度を有する表面凹凸データを用いる手法が提案されている(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Charles Han,Bo Sun,Ravi Ramamoorthi,Eitan Grinspun,"Frequency Domain Normal Map Filtering",ACM Transactions on Graphics-Proceedings of ACM SIGGRAPH 2007,Volume 26 Issue 3,2007.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記非特許文献1に記載の技術では、オブジェクト再現にかかるレンダリング負荷が高くなってしまい、リアルタイムの操作性を確保できないという問題があった。
【０００６】
本発明は上記問題を解決するために、オブジェクトの表面凹凸を忠実に再現し、かつオブジェクト再現時のレンダリング負荷を抑制可能とする、オブジェクト再現用のデータを生成することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための一手段として、本発明の画像処理装置は以下の構成を備える。すなわち、オブジェクトを生成するための画像処理装置であって、前記オブジェクトの表面凹凸の状態を示す表面凹凸データを入力する表面凹凸データ入力手段と、前記オブジェクトの領域毎に、表面凹凸の変化が大きいかどうかを判定する判定手段と、前記判定手段による判定の結果に応じて、前記表面凹凸データの解像度を、領域ごとに第1の解像度または前記第1の解像度よりも低い第2の解像度のいずれかに変換する第1の変換手段と、前記第1の変換手段による変換後の前記表面凹凸データを出力する出力手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明では、オブジェクトの表面凹凸を忠実に再現し、かつオブジェクト再現時のレンダリング負荷を抑制可能とする、オブジェクト再現用のデータを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】第1実施形態における画像処理装置のシステム構成を示すブロック図、
【図２】第1実施形態における画像処理装置の論理構成を示すブロック図、
【図３】第1実施形態におけるレンダリング処理を示すフローチャート、
【図４】第1実施形態における表面凹凸データの構成例を示す図、
【図５】オブジェクト形状データの構成例を示す図、
【図６】仮想環境の一例を示す図、
【図７】第1実施形態における表面凹凸データ解像度変換処理を示すフローチャート、
【図８】物体表面の微細な凹凸による変角反射特性への影響を説明する図、
【図９】第1実施形態における法線ベクトルの傾きの分散と輝度変動の関係を説明する図、
【図１０】第1実施形態における変換後法線データの概念を説明する図、
【図１１】第1実施形態における変換後法線データのデータ形式を示す図、
【図１２】第1実施形態におけるオブジェクト形状解像度変換処理を示すフローチャート、
【図１３】第1実施形態におけるオブジェクト形状の解像度変換の概念を説明する図、
【図１４】第1実施形態における反射強度分布算出処理を示すフローチャート、
【図１５】変角反射特性を説明する図、
【図１６】第2実施形態における画像処理装置の論理構成を示すブロック図、
【図１７】第2実施形態におけるレンダリング処理を示すフローチャート、
【図１８】第2実施形態における表面凹凸データ解像度変換処理を示すフローチャート、である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
＜第1実施形態＞
本実施形態では、オブジェクト再現用のデータを生成する画像処理装置において以下のような構成を備えることで、オブジェクトの表面凹凸の忠実な再現と、再現時のレンダリング負荷の低減とを両立させる。まず、複数画素による均一解像度のデータ平面からなり、各画素がオブジェクトの表面凹凸の状態を示す表面凹凸データを入力する(表面凹凸データ入力処理)。同様に、オブジェクトの形状を示す形状データを入力する(形状データ入力処理)。そして、表面凹凸データのデータ平面を分割した領域毎にデータ解像度を変換する(第1の変換処理)。さらに、形状データを、領域毎にデータ解像度を変換する(第2の変換処理)。これら変換後の表面凹凸データおよび形状データをオブジェクト再現用のデータとしてレンダリングを行うことで、上記目的が達成される。
【００１２】
●装置構成
図1は、本発明の実施形態における画像処理装置の構成を示す図である。同図において入力部101は、ユーザからの指示や、データを入力する装置であり、キーボードやマウスなどのポインティングデバイスを含む。表示部102は、GUI等を表示する表示デバイスであり、CRTや液晶ディスプレイ等である。なお表示部102は、本実施形態において生成されたオブジェクト画像を表示する出力機器としても機能する。データ保存部103は、画像データやプログラムを蓄積する装置であり、通常はハードディスクが用いられる。CPU104は、上述した各構成の処理全てを統括的に制御する。ROM105とRAM106は、上記処理にかかる制御プログラムやデータ、作業領域等をCPU104に提供する。なお、処理に必要な制御プログラムがデータ保存部103やROM105に格納されている場合には、一旦RAM106に読み出された後に実行される。また、通信部107を経由して画像処理装置がプログラムを受信する場合には、一旦データ保存部103に記録した後にRAM106に読み込まれるか、又は、通信部107からRAM106に直接読み込まれて実行される。通信部107は、機器間の通信を行うためのI/Fであって、周知のイーサネットやUSB、IEEE、ブルートゥース、等の通信方式が適用可能である。なお、本実施形態の画像処理装置のシステム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないためその説明については省略する。
【００１３】
図2は、本実施形態における画像処理装置の論理構成を示すブロック図である。本実施形態の画像処理装置は、システム20とシステム21の2つのシステムにより構成されている。システム20は、レンダリング負荷を軽減するために、入力データを適切な解像度のデータに変換する処理を行う解像度変換システムである。システム21は、解像度変換後の入力データに基づいてオブジェクトの再現画像の描画(レンダリング)を行うレンダリングシステムである。以下、各システムにおける処理の詳細について説明する。
【００１４】
システム20において、表面凹凸データ解像度変換部2002は、表面凹凸保持部2001に保持されている表面凹凸データを用いて、表面凹凸に基づく法線ベクトル(法線データ)を適切な解像度へ変換する。変換後法線保持部2003は、表面凹凸データ解像度変換部2002で解像度変換された法線データを保持する。オブジェクト形状解像度変換部2005は、オブジェクト形状保持部2004に保持されているオブジェクト形状を適切な解像度へ変換し、変換されたオブジェクト形状は変換後オブジェクト形状保持部2006に保持される。このようにシステム20では、表面凹凸データとオブジェクト形状のデータを、レンダリング負荷が軽減されるような適切な解像度に変換する。
【００１５】
システム21において、仮想空間設定部2012は、周囲環境保持部2101に保持されている環境データを用いて、仮想空間における周囲環境、仮想物体、視点を設定することで、オブジェクトを観察する仮想空間を生成する。反射強度分布算出部2103は、仮想空間におけるオブジェクトの反射強度分布を算出する。この算出には、変換後法線保持部2003に保持された変換後法線データ、変換後オブジェクト形状保持部2006に保持された変換後オブジェクト形状データ、及び反射特性保持部2104に保持された物体の変角反射特性を表す反射特性データ、を用いる。画像出力部2105は、反射強度分布算出部2103で算出された反射強度分布データを、表示部102へ出力するための変換を行う。
【００１６】
●レンダリング処理
以下、上記構成からなる本実施形態の画像処理装置で実行されるオブジェクト描画(レンダリング)処理について、図3のフローチャートを用いて説明する。
【００１７】
まずS1001で、描画の対象物体(オブジェクト)と視点との観察距離dを、入力部101を介してユーザが設定する。次にS1002で、観察距離dを用いて、以下の(1)式に基づいて視覚の空間分解能r[mm]を算出する。この空間分解能rは後段の処理において、再生される画像の解像度rとして参照される。なお(1)式では、視野一分に相当する分解能に変換するための係数を適用している。
【００１８】
R＝d×(1.5/5000.0)      ・・・(1)
次にS1003で表面凹凸データ解像度変換部2002が、表面凹凸保持部2001から、オブジェクトを測定する等の方法によって予め得られている表面凹凸データを読み込む。ここで図4に、本実施形態における表面凹凸データの一例を示す。図4に示すように表面凹凸データとは、オブジェクト平面を0としたときのオブジェクト表面上の微細な凹凸を表す。表面凹凸データは例えば、画素位置毎の高さデータを記録した2次元のデータ配列からなり、物体表面の凹凸の状態を段差計により測定する等の方法で得られる。なお、表面凹凸データにおける各画素は均一解像度をなし、例えば、物体表面の高さを測定する際の測定間隔に相当する。なお本実施形態では、表面凹凸データを対象物体の測定値からなるデータ平面として説明を行うが、表面凹凸データは必ずしも測定値である必要はなく、例えばユーザが作成した2次元データであっても良い。
【００１９】
次にS1004で表面凹凸データ解像度変換部2002が、表面凹凸保持部2001に保持された対象物体の表面凹凸データを読み込み、該表面凹凸データの解像度変換を行う(第1の変換処理)。このS1004における表面凹凸データ解像度変換処理の詳細については後述する。そしてS1005で、S1004で解像度変換された表面凹凸データを変換後法線保持部2003へ転送する。
【００２０】
次にS1006でオブジェクト形状解像度変換部2005が、オブジェクト形状保持部2004から、対象物体の形状を表すオブジェクト形状データを読み込む。ここで図5を用いて、本実施形態におけるオブジェクト形状データについて説明する。オブジェクト形状データは複数のポリゴンで形成されており、図5(a)に1ポリゴンの概念を示す。図5(a)に示すように1つのポリゴンは、3つの頂点A、B、Cを結ぶ三角面として構成されている。図5(b)にオブジェクト形状データの一例を示す。図5(b)に示すようにオブジェクト形状データには、まず形状を構成するポリゴン数が記述され、次に各ポリゴンの情報が記述されている。各ポリゴン情報は、ポリゴン番号、ポリゴンを構成する頂点の座標、という形式で構成されている。
【００２１】
次にS1007で、オブジェクト形状解像度変換部2005が、オブジェクト形状保持部2004に保持されたオブジェクト形状データの解像度を変換する(第2の変換処理)。このS1007におけるオブジェクト形状解像度変換処理の詳細については後述する。
【００２２】
次にS1008で、S1007で解像度変換されたオブジェクト形状データを、変換後オブジェクト形状保持部2006へ転送する。
【００２３】
次にS1009で、仮想空間生成部2102が、仮想的に対象物体を観察する環境(仮想環境)を作成する。具体的にはまず、図6に示すような壁や天井、床などの3Dオブジェクトを設定して仮想空間301を作成する。次に、対象物体を観察する仮想照明302を、周囲環境保持部2101に保持された環境データを用いて設定する。そして仮想オブジェクト303を、仮想空間301の中央近辺に設定し、最後に仮想視点304を設定する。ただしここで設定される仮想オブジェクト303は、表面に凹凸のないものである。
【００２４】
次にS1010で、反射強度分布算出部2103が、仮想オブジェクト303における各画素の反射光の強度XYZ値を算出して反射強度分布を得る。この算出は、反射特性保持部2104、変換後法線保持部2003、変換後オブジェクト形状保持部2006のそれぞれに保持されているデータを用いて行われる。このS1010における反射強度分布算出処理の詳細については後述する。
【００２５】
次にS1011で、画像出力部2105がまず、S1010で算出された反射光強度XYZ値を、以下の(2)式に従ってディスプレイ表示用のRGB信号値であるRout、Gout、Boutに変換し、該RGB値を表示して処理を終了する。
【００２６】
2014206875.tif 000003
【００２７】
なお本実施形態ではS1011で、XYZ値からRGB値への色変換としてsRGBの変換式を用いる例を示したが、変換方法はこの例に限るものではなく、表示部の特性に合わせて行えば良い。例えば、変換を行う色空間はAdobe色空間であっても良いし、表示部の特性に合わせて作成された3DLUTによる変換を行っても良い。
【００２８】
●表面凹凸データ解像度変換処理(S1004)
以下、上記S1004における表面凹凸データ解像度変換処理(第1の変換処理)について、図7のフローチャートを用いて詳細に説明する。
【００２９】
表面凹凸データ解像度変換処理の説明に先立ち、図8を用いて、物体表面の微細な凹凸による、反射強度分布への影響について説明する。各物体表面は、位置に応じて変角反射特性をもつ。ここで変角反射特性とは、BRDF(Bidirectional Reflection Distribution Function)とも呼ばれる。具体的には図15(a)に示すように、光をある角度から照射した際の各出射角度についての反射光強度を示す三刺激値XYZ値が記されたデータである。変角反射特性は、例えば図15(b)に示すように、実照明701によりある方向から対象物体702に光を照射し、測定器703を用いて各出射角の反射光強度を測定する等によって得られる。
【００３０】
図8は、同じ物体を近距離から観察する場合と、遠距離から観察する場合とにおける反射強度分布を示している。近距離からの観察の場合は視野分解能が高いため高解像度での観察となり、図8上段に示すように画素毎に法線ベクトルが決定され、画素毎に物体の変角反射特性に応じた反射光を算出することができる。一方、遠距離からの観察の場合は視野分解能が低いため低解像度での観察となり、上記高解像度で観察された複数画素(図8の例では2画素)を1画素相当として、反射光が算出される。この低解像度での1画素相当における反射光を算出するには、当該画素における法線ベクトルを決定する必要があり、単純には元の複数画素の法線ベクトルを平均化することが考えられる。しかしながら図8の下段に示すように、物体を遠距離から観察した場合、物体表面の微細な凹凸によって複数の方向に光が散らされるため、1画素相当に対する変角反射特性は複数のピークを持つ。この1画素相当に実質対応する複数画素分の法線ベクトルを平均化した場合、ベクトルの方向が平均化されてしまうため、該平均化された法線ベクトルに基づいて算出される当該画素の反射光は、実際に見える反射光の強度とは異なってしまう場合がある。
【００３１】
そこでS1004では、遠距離での観察時に、微細な表面凹凸によって複数方向にピークを持つ物体の反射光強度を正確かつ高速に再現するために、表面凹凸データの画素毎の法線ベクトルのデータ解像度を、領域毎に適切なデータ解像度に変換する。なお、本実施形態における表面凹凸データは図4に示したように、画素ごとの高さを示すデータ平面からなる。
【００３２】
まずS2001で、表面凹凸データにおける各画素に対し、隣接する画素の高さデータに基づいて法線ベクトルを算出する。
【００３３】
次にS2002で、S1002で視覚の分解能として設定された解像度rに応じて、表面凹凸データをn×nの矩形ブロックでタイル状に分割(タイリング)する。なお、nの値は以下の(3)式により決定する。なお、(3)式においてr'は表面凹凸データの解像度である。
【００３４】
n＝r/r'    (r＜r'のとき)
n＝1        (r≧r'のとき)      ・・・(3)
これは、表面凹凸データの解像度r'が既に、視覚の分解能である解像度rよりも高い場合、表面凹凸データの解像度r'を維持していた方がよいので、分割しないことを意味する。一方表面凹凸データの解像度r'の方が視覚の分解能rよりも高い解像度である場合、解像度を変換する領域として分割する。
【００３５】
次にS2003で、S2002でタイリングされた領域(x,y)に含まれる全ての画素について、S2001で算出した法線ベクトルの平坦面に対する傾きを算出し、領域内の傾きの分散ｖx,yを以下の(4)式により算出する。なお(4)式において、i,jは領域(x,y)に含まれる画素位置であり、ax,y(i,j)は画素位置i,jにおける法線ベクトルの傾きである。
【００３６】
2014206875.tif 000004
【００３７】
次にS2004では、S2003で算出した分散ｖx,yの値を、予め設定されている閾値εと比較することで、当該領域(x,y)を高解像度領域として処理すべきか低解像度領域として処理すべきかを判定する。ここで、法線ベクトルの傾きの分散と画素における反射光の強度である輝度の変動の関係について、図9を用いて説明する。
【００３８】
図9(a)は、物体の表面凹凸を示す高さデータをグラフ化した表面凹凸特性を示す図である。横軸は物体におけるある直線上での画素位置、縦軸は該画素位置における高さを表している。図9(a)において、破線401よりも左側の領域の高さデータ402は、破線401よりも右側の領域の高さデータ403と比べて、表面凹凸における高さの変動が小さい。
【００３９】
図9(b)は、図9(a)に示す表面凹凸特性を有する物体を低解像度化した場合の輝度変動を示す図である。横軸は低解像度化後の物体における画素位置、縦軸は該画素位置における輝度(画素における反射光の強度)を表している。図9(b)において、破線502は、低解像度化に伴い法線ベクトルを平均化して画像を再現した場合の輝度変動を表しており、実線503は、法線ベクトルを高解像度のまま保持して画像を再現した場合の輝度変動を表わしている。なお図9(b)の横軸は、図9(a)に示す横軸を低解像度化したものであるから、その軸中央を示す破線501は破線401とほぼ同位置の画素を示す。図9(b)に示されるように、破線501よりも右側の、凹凸の高さ変動が大きい領域では、破線502と実線503の差(輝度変動量)が顕著である。対して破線501よりも左側の、凹凸の高さ変動が小さい領域では、破線502と実線503の差(輝度変動量)は小さい。
【００４０】
このように、低解像度化に伴う物体の輝度変動量は、表面凹凸が急激に変化する箇所で大きくなる。そこで、物体の輝度変動を忠実に再現するためには、表面凹凸が急激に変化する領域では低解像度化を行わずに、高解像度な表面凹凸データとして保持すべきである。従って本実施形態では、表面凹凸データをタイリングした領域ごとに表面凹凸の変化が大きいか否かを判定し、高解像度な表面凹凸データを用いて再現すべき領域であるか、低解像度な表面凹凸データによる再現が可能な領域であるかを決定する。具体的には、領域における法線ベクトルの傾きの分散ｖを特徴量として、該分散ｖが閾値εに対して以下の(5)式を満たす場合には、高解像度な法線ベクトルを用いて再現すべき領域とみなしてS2005へ進む。一方、(5)式を満たさない場合は、低解像度な法線ベクトルでの再現が可能な領域とみなしてS2007へ進む。
【００４１】
ｖx,y＞ε      ・・・(5)
S2005では、S2002でタイリングされた領域を高解像度領域として設定する。具体的には例えば、タイリング後の領域位置におけるデータ解像度として、表面凹凸データの1画素に相当する解像度r'(第1の解像度)を設定する。そしてS2006で、S2005で設定された領域内の各画素の法線ベクトルのベクトル値を、対応する画素位置に記録して処理を終了する。
【００４２】
一方、S2007では、S2002でタイリングされた領域を低解像度領域として設定する。具体的には例えば、タイリング後の領域位置におけるデータ解像度として、S1002で設定した視覚の分解能を示す解像度r(第2の解像度)を設定する。そしてS2008で、領域内の各画素の法線ベクトルを平均化し、該平均化されたベクトル値を、該平均化により解像度変換された対応する画素位置に記録して処理を終了する。
【００４３】
なお、ここではS2005で傾きの分散が閾値以上である高解像度領域に対する第1の解像度として表面凹凸データの解像度R'を設定し、S2007で該分散が閾値未満である低解像度領域に対する第2の解像度として視覚の分解能rを設定する例を示した。もちろん、第1の解像度の方が第2の解像度よりも高解像度であるという関係を保てば、r',r以外の値を設定することも可能である。例えば、画像出力部2105が出力するディスプレイの解像度を設定してもよい。さらに、表面凹凸データの解像度と視覚の分解能の解像度とディスプレイの解像度全てが異なる場合、2つの解像度ではなく、領域毎に3つの解像度にそれぞれ変換するような構成でも良い。
【００４４】
S1004では以上のように、表面凹凸データをタイリングし、領域毎に必要に応じて表面凹凸データを低解像度化することで、非均一解像度をなす変換後表面凹凸データが生成される。ここで図10に、変換後表面凹凸データの概念を示す。なお本実施形態では、図4に示す表面凹凸データから画素毎に法線データを算出し、変換後表面凹凸データとして法線デ―タを出力する。図10(a)は変換前の表面凹凸データ例であり、各セルが1画素を示し、例えば5mm/pixelの均一解像度のデータ平面をなす。つまり図10(a)は、図4を画像データ形式で表わしている。一方、図10(b)は変換後の法線データ例であり、5mm/pixelの解像度の領域と、20mm/pixelの解像度の領域とが混在した、非均一な解像度のデータ平面をなす。図10(b)に示す変換後法線データは、上述したように、表面凹凸の高さ変動が大きい領域では高解像度で記述され、高さ変動が小さい領域では低解像度で記述されている。
【００４５】
図10の例であれば、図10(a)に示す変換前の表面凹凸データは16×16=256画素からなるため、該256画素分の法線データを保持する必要がある。対して図10(b)に示す変換後では、タイリングした16領域分の解像度16個と、全領域内の画素数分(4×4の6領域、低解像度化による1×1の10領域、の合計106画素分)の法線データを保持すれば良いため、データ量が約53.3％削減される。なお、変換後法線データの詳細な形式については後述する。
【００４６】
●変換後法線データ詳細
ここで図11を用いて、上記S1004で作成された変換後法線データのデータ形式を示す。
図11に示すように変換後法線データは、ヘッダ部601とデータ部602で構成されている。ヘッダ部601には、S2002でのタイリング後の縦・横方向の領域数が記述されている。次にデータ部602には、まずタイリング後の各領域位置における解像度の数値データ、それに続いて法線ベクトルデータが記述されている。具体的には、まずS2005またはS2007で設定された解像度(r'またはr)の数値データが記述されており、それに続いて法線ベクトルを表すn×n個の3次元ベクトルデータが記述されている。データ部602に記述されているデータは、タイリング後の領域位置(0,0)から、(0,1)、(0,2)、…と水平方向に順番に記述されている。そして、(0,16)の法線ベクトルデータの後は、領域位置(1,0)の法線ベクトルデータが記述されており、以下、順次(1,1)、(1,2)、…の法線ベクトルデータが記述されている。これらの法線ベクトルデータが、ヘッダ部601で記述されている縦・横方向の領域数分、記述されている。
【００４７】
●オブジェクト形状解像度変換処理(S1007)
以下、上記S1007におけるオブジェクト形状データの解像度換処理(第2の変換処理)について、図12のフローチャートを用いて詳細に説明する。ここではオブジェクト形状データが示す形状特性から、オブジェクト再現時に人間の視覚では視認が困難である高周波成分を除去することにより、すなわちオブジェクト形状を構成するポリゴン数を削減する。
【００４８】
まずS3001で、S1002で算出された視覚の分解能rに応じたローパスフィルタとして、以下の(6)式に従ってガウシアンフィルタFを生成する。なお、ローパスフィルタに相当するフィルタであればこの例に限らず、例えばボックスフィルタ等を用いても良い。
【００４９】
2014206875.tif 000005
【００５０】
次にS3002で、オブジェクト形状データのポリゴンによって示されるオブジェクト形状特性と、上記ローパスフィルタとの畳み込み演算を、以下の(7)式により行う。これにより、低周波域のみが残った形状特性が得られるが、これによって再構築されるポリゴン数は減少している。なお、(7)式におけるオブジェクト形状(i,j)は、制御点(i,j)におけるポリゴンのオブジェクト形状データを示す。
【００５１】
2014206875.tif 000006
【００５２】
ここで図13に、S1007のオブジェクト形状解像度変換処理による処理結果の具体例を示す。図13(a)は変換前のオブジェクト形状データによって示される平面上での形状特性の概念図であり、微小な凹凸を有する様子を示す。図13(b)は、図13(a)に示す形状特性から、視覚の空間分解能Rよりも低周波な域を抽出した形状データの概念図である。図13(b)によれば、視覚の空間分解能Rよりも高周波である、視認できないほど細かい凹凸部分が除去されていることで、図13(a)に示す変換前のオブジェクト形状データよりも凹凸が低減されている。その結果、変換後のオブジェクト形状データによる形状再現において、物体を構成するポリゴン数を削減することができる。
【００５３】
本実施形態ではこのように、オブジェクト形状を構成するポリゴン数を削減することで、オブジェクト形状の実質的な解像度変換(低解像度化)を実現している。
【００５４】
●反射強度分布算出処理(S1010)
以下、上記S1010における反射強度分布算出処理について、図14のフローチャートを用いて詳細に説明する。
【００５５】
まずS4001で、反射特性保持部2104に保持されている、対象物体を予め測定する等の方法で得られた変角反射特性を読み込む。なお本実施形態では、変角反射特性をXYZ値として説明するが、光を照射した際の出射角度ごとの反射光強度を記録したデータであればXYZ値に限るものではない。例えば、変角反射特性はRGB値であっても良いし、分光反射率データであっても良い。
【００５６】
次にS4002で、S1004で変換された変換後法線データを、変換後法線保持部2003から取得する。具体的には、変換後法線データが図11に示すデータ形式で保持されていた場合、まずヘッダ部601のデータから、変換後法線データの領域サイズを取得する。次に、データ部602のデータの1行目を読み込む。1行目のデータは、領域位置(0,0)における解像度r0,0である。次に、対応する位置に格納されている法線ベクトル数を算出するため、以下の(8)式によりkの値を算出した後、k×k個の法線ベクトルデータを順次読み込む。以上の処理を、ヘッダ部に格納されている領域数分について行うことにより、変換後法線データを取得する。
【００５７】
k＝r'/rx,y      ・・・(8)
次にS4003で、S1008で変換された変換後オブジェクト形状データを、変換後オブジェクト形状保持部2006から取得する。次にS4004で、S4003で取得した変換後オブジェクト形状データの各頂点と、S4002で取得した変換後法線データの位置を対応付ける。ここで本実施形態では、変換後オブジェクト形状データと変換後法線データの全体領域サイズおよび画像平面上でのデータ構成の最小単位となる解像度が等しいため、両データにおいて互いに位置が一致するデータを参照すれば良い。ただし、両データの解像度が異なる場合には、変換後オブジェクト形状の解像度に適合するように、変換後法線データの領域位置を拡大または縮小してから対応付けを行えば良い。
【００５８】
そしてS4005で、変換後オブジェクト形状データによって構成されるポリゴン毎の反射光強度を以下のように算出し、そして、以下の(9)式により仮想オブジェクト303の反射光強度(輝度)XYZ(x,y)を算出する。まず、各ポリゴンに対応した変換後法線データの領域位置(x,y)におけるn番目の法線ベクトルと、S1009で設定した仮想視点304の位置から、物体と視点がなす出射角度θoutを算出する。次に、該領域位置(x,y)におけるn番目の法線ベクトルと、周囲環境との交点から入射角度θin(n)を算出する。オブジェクトの変換反射特性とn番目の法線ベクトルの位置に入射角度θin(n)で入射する光の強度とから、n番目の法線ベクトルにおける反射光の強さを算出する。ポリゴンにおける全ての法線ベクトルの反射光の強さの総和をXYZ(x,y)として算出し、処理を終了する。
【００５９】
2014206875.tif 000007
【００６０】
以上説明したように本実施形態によれば、オブジェクトにおける微小面の表面凹凸の高さ変動が激しい領域については表面凹凸データを保持し、そうでない領域の表面凹凸データについては低解像度化して削減する。これにより、物体の変角反射特性を正確かつ高速に再現することができる。
【００６１】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。第2実施形態では、変換後法線データの作成時に、物体の変角反射特性および周囲環境データを用いることによって、周囲環境と人間の視覚特性を考慮した解像度変換を行うことを特徴とする。なお、第2実施形態における装置構成は上述した第1実施形態と同様であるため、説明を省略する。また、第1実施形態と同様の動作についても説明を省略する。第2実施形態ではすなわち、上述した第1実施形態とは異なる部分のみについて説明する。
【００６２】
●装置構成
図16は、第2実施形態における画像処理装置の論理構成を示すブロック図であり、第1実施形態の図2と同様の動作を行う構成には同一番号を付してある。第2実施形態では図16に示す表面凹凸データ解像度変換部8004における法線データの解像度変換処理を特徴とする。すなわち表面凹凸データ解像度変換部8004では表面凹凸データに対し、反射特性保持部2104に保持されている物体の反射特性データ、周囲環境保持部2101に保持されている周囲環境データを用いて法線データの解像度を変換する。
【００６３】
●レンダリング処理
以下、上記構成からなる第2本実施形態の画像処理装置で実行されるオブジェクト描画(レンダリング)処理について、図17のフローチャートを用いて説明する。なお図17において、第1実施形態で示した図3と同様の処理には同一ステップ番号を付し、説明を省略する。
【００６４】
S1003で表面凹凸データ解像度変換部8004が、表面凹凸保持部2001から対象物体の表面凹凸データを読み込んだ後、S5004で反射特性保持部2104から、対象物体の反射特性データを読み込む。次にS5005で周囲環境保持部2101から、仮想空間で対象物体を観察する際の仮想照明のデータを取得する。次にS5006で表面凹凸データ解像度変換部8004が、対象物体の表面凹凸データに対する解像度変換を行う。第2実施形態における表面凹凸データ解像度変換処理の詳細については後述する。
【００６５】
S5006で表面凹凸データ解像度変換処理が行われると、以降は第1実施形態と同様に、オブジェクト形状の解像度変換、反射強度分布の算出を行って表示することで、処理を終了する。
【００６６】
●表面凹凸データ解像度変換処理(S5006)
以下、上記S5006における第2実施形態の表面凹凸データ解像度変換処理について、図18のフローチャートを用いて詳細に説明する。なお図18において、第1実施形態で示した図7と同様の処理には同一ステップ番号を付し、説明を省略する。
【００６７】
S2002で表面凹凸データを矩形ブロックにタイリングした後、S6003で1画素ごとの法線ベクトルを用いて、タイリングされた各領域(x,y)における第1の反射光強度XYZ1(x,y)を算出する。具体的には、まず、予め設定された仮想視点と、タイリング後の領域位置(x,y)におけるn番目の法線ベクトルとがなす出射角度θoutを算出する。次に、位置(x,y)における法線ベクトルと周囲環境に応じた入射角度θinを算出し、上記(7)式により第1の反射光強度XYZ1(x,y)を算出する。
【００６８】
そしてS6004でタイリング後の領域内の法線ベクトルを平均化し、次にS6005ではS6004で平均化した法線ベクトルを用いて、タイリング後の各領域(x,y)における第2の反射光強度XYZ2(x,y)を、以下の(10)式により算出する。
【００６９】
XYZ2(x,y)＝周囲環境(θin)×BRDF(θin,θout)      ・・・(10)
次にS6006で、S6003で算出された第1の反射光強度XYZ1(x,y)と、S6005で算出された第2の反射光強度XYZ2(x,y)から、輝度差ΔL(x,y)を算出する。具体的には、以下の(11)〜(16)式によって2つのXYZ値をL*a*b*値へ変換した後、該L*a*b*値の差分を算出する。
【００７０】
Xn＝95.045
Yn＝100.000
Zn＝108.892      ・・・(11)
X/Xn ＞ 0.00856 のとき、
XRate＝(X/Xn)1/3
X/Xn ≦ 0.00856 のとき、
XRate＝7.787×(X/Xn)＋16.0/116.0      ・・・(12)
Y/Yn ＞ 0.00856 のとき、
YRate＝(Y/Yn)1/3
Y/Yn ≦ 0.00856 のとき、
YRate＝7.787×(Y/Yn)＋16.0/116.0      ・・・(13)
Z/Zn ＞ 0.00856 のとき、
ZRate＝(Z/Zn)1/3
Z/Zn ≦ 0.00856 のとき、
ZRate＝7.787×(Z/Zn)＋16.0/116.0      ・・・(14)
Y/Yn ＞ 0.00856 のとき、
L*＝116.0×(Y/Yn)1/3−16.0
Y/Yn ≦ 0.00856 のとき、
L*＝903.29×(Y/Yn)                    ・・・(15)
a*＝500×(XRate−YRate)
b*＝200×(YRate−ZRate)                      ・・・(16)
次にS6007で、S6006で算出した輝度差ΔLを、所定の閾値η(η＝1.6)との比較を行う。ΔLが閾値より大きい場合、2つのレンダリング方法による輝度差が視覚的に認識可能であると考えられるため、当該領域は高解像度の法線ベクトルが必要であると判断し、S2005へ進む。一方、ΔLが閾値以下である場合、2つのレンダリング方法による輝度差が視覚的に認識されないと考えられるため、当該領域は低解像度の法線ベクトルによる処理を行える領域であると判断し、S2007へ進む。なおここでは、ΔLと比較する閾値ηとしては、色の隣接比較においてわずかに差が感じられるレベルとしてη＝1.6を想定したが、必要に応じて閾値ηは変更可能である。例えば、離間比較レベルでも良い場合にはη＝1.6に代えてη＝3.2を用いても良い。
【００７１】
以降、第1実施形態と同様に、領域ごとに設定された解像度に応じて、法線ベクトルを設定する。
【００７２】
以上説明したように第2実施形態によれば、周囲環境および物体の変角反射特性を用いて、法線データの解像度変換を行うことが可能であり、この変換により得られる変換後法線データを用いることで、人間の視覚特性を考慮した物体の再現が可能となる。
【００７３】
＜その他の実施形態＞
前述の実施形態では、反射強度算出部3103が用いる表面凹凸データとして、法線データを出力する例について説明した。しかしながら、反射強度算出部3103に出力される表面凹凸データは、高さデータでもよい。
【００７４】
前述の実施形態では、タイリングされた領域における法線ベクトルの傾きの分散に基づいて、表面凹凸の変化が大きいかどうかを判定した。しかしながらこの方法に限るものではない。例えば、領域における高さの最小値と最大値の差分を算出し、差分が閾値以上かどうかにより、表面凹凸の変化の大きさを判定することもできる。
【００７５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2014206875.tif 000008
【図２】
2014206875.tif 000009
【図３】
2014206875.tif 000010
【図４】
2014206875.tif 000011
【図５】
2014206875.tif 000012
【図６】
2014206875.tif 000013
【図７】
2014206875.tif 000014
【図８】
2014206875.tif 000015
【図９】
2014206875.tif 000016
【図１０】
2014206875.tif 000017
【図１１】
2014206875.tif 000018
【図１２】
2014206875.tif 000019
【図１３】
2014206875.tif 000020
【図１４】
2014206875.tif 000021
【図１５】
2014206875.tif 000022
【図１６】
2014206875.tif 000023
【図１７】
2014206875.tif 000024
【図１８】
2014206875.tif 000025