次に、本発明の一実施形態の概略を説明する。
本発明の一実施形態は、仮想的な3次元の構造体に対して2次元のテクスチャーを貼り付け、貼り付け後の3次元の構造体を所定方向から眺めた状態を示す2次元の画像(以下、レンダリング済み画像と呼ぶ)を生成するレンダリング処理に関連した技術である。すなわち、本発明の一実施形態は、該レンダリング処理を行う際に扱う画像データを効率よく管理する圧縮方式を提供するための形態であり、当該圧縮方式は、レンダリング処理によって、テクスチャーが貼り付けられるテクスチャー領域と該テクスチャーが貼り付けられない領域とが併存するレンダリング済み画像が生成される場合に適用される。
本実施形態においては、少ないリソースで上述のレンダリング処理を実施可能にするため、3次元モデルにテクスチャーが貼り付けられた後のレンダリング済み画像を比較して、テクスチャーからレンダリング済み画像を生成するための係数を画像描画情報として予め定義しておく構成としてある。
この係数は、任意のテクスチャーの画素の位置とレンダリング済み画像の画素の位置との対応関係および、各画素間での色の変化を規定した数式であり、以下の工程を経て算出される。
(A)貼り付けられるテクスチャーの特定
(B)レンダリング処理が輝度に与える影響の特定
(C)画素の位置の対応関係の特定
これらの工程は、任意のテクスチャーではなく、上述の係数を特定するために生成された所定パターンのテクスチャー(以下、特殊テクスチャーと呼ぶ)を利用して実施される。なお、特殊テクスチャーの大きさ(縦横の画素数)は、上述の2次元のテクスチャーと同数に設定される。以下、該(A)〜(C)の概略を説明する。
(A)貼り付けられるテクスチャーの特定
図1Aは、レンダリング処理の概要を説明するための図である。本実施形態におけるレンダリング処理では、n枚(nは自然数)の2次元のテクスチャーを仮想的な3次元の構造体の各面に貼り付けたことを想定し、テクスチャーが貼り付けられた状態で当該3次元の構造体を所定方向から眺めた2次元の画像をレンダリング済み画像とする。従って、レンダリング済み画像においては、3次元の構造体の向きに応じて最大n枚のテクスチャーが視認される状態になる。同図1Aにおいては、仮想的な直方体Rに対して2次元のテクスチャーT1〜T6を貼り付けた場合のレンダリング済み画像をI0として示しており、6枚のテクスチャーT1〜T6のうち、3枚のテクスチャーT1〜T3が視認される例を示している。なお、同図1Aの例においては、仮想的な直方体Rが台上に置かれたことを想定しており、台上には直方体Rの影Sが形成されている。
このようなレンダリング処理は、3次元の構造体の特定の面に特定のテクスチャーを貼り付けることによって実現されるため、レンダリング済み画像のある座標には必ず一つのテクスチャーが対応し、複数のテクスチャーが対応することはない。すなわち、レンダリング済み画像の座標とテクスチャーの座標とは一対一の関係にある。そこで、本実施形態においては、特定の一枚のみを白、該特定の一枚以外を黒としたn枚の特殊テクスチャーを生成し、さらに、n枚の全てを黒とした特殊テクスチャーを生成し、レンダリング済み画像を比較することによって上述の特定の一枚である白い特殊テクスチャーが対応するレンダリング済み画像の位置を特定する。なお、ここでは、白の特殊テクスチャーが第2ベタ塗りパターンに相当し、黒の特殊テクスチャーが第1ベタ塗りパターンに相当する。
図1B〜図1Dは、右側に示す6個の矩形にて、図1Aに示すテクスチャーT1〜T6の替わりに貼り付けられる特殊テクスチャーの例を示しており、図1Bにおいては、テクスチャーT1に相当する特殊テクスチャーのみが白、テクスチャーT2〜T6に相当する特殊テクスチャーが黒である例を示している。また、図1Cは、テクスチャーT1〜T6に相当する特殊テクスチャーが黒である例を示している。そして、以上の図1Bおよび図1Cに示す特殊テクスチャーに基づくレンダリング処理によって生成されたレンダリング済み画像をそれぞれI1,I2として示している。
本実施形態においては、以上のようにして生成されたレンダリング済み画像I1,I2を比較することによって第2ベタ塗りパターンの特殊テクスチャーに対応するレンダリング済み画像の位置を特定する。すなわち、レンダリング済み画像の画素ごとにレンダリング済み画像I1,I2の輝度を比較すると、第2ベタ塗りパターンの特殊テクスチャーが貼り付けられた画素においては輝度に差異が生じるが、第1ベタ塗りパターンの特殊テクスチャーが貼り付けられた画素に差異は生じない。そこで、例えば、レンダリング済み画像I1の輝度がレンダリング済み画像I2の輝度よりも大きいか否かを判定する処理を各画素について行えば、レンダリング済み画像I1の輝度がレンダリング済み画像I2の輝度よりも大きいと判定された画素については、第2ベタ塗りパターンの特殊テクスチャーが貼り付けられたと判定することができる。
すなわち、図1Bに示すように、テクスチャーT1を第2ベタ塗りパターンの特殊テクスチャーとしてレンダリング処理を行った場合のレンダリング済み画像I1と、図1Cに示すように、全てのテクスチャーを第1ベタ塗りパターンの特殊テクスチャーとしてレンダリング処理を行った場合のレンダリング済み画像I2とを比較することによって、テクスチャーT1が対応するレンダリング済み画像の位置が特定される。同様に、図1Dに示すように、テクスチャーT2を第2ベタ塗りパターンの特殊テクスチャーとしてレンダリング処理を行った場合のレンダリング済み画像I3とレンダリング済み画像I2とを比較することによって、テクスチャーT2が対応するレンダリング済み画像の位置が特定される。従って、n枚のテクスチャーのいずれか一枚を白、他を黒とした特殊テクスチャーをレンダリングしたレンダリング済み画像のそれぞれについて以上の処理を行えば、レンダリング済み画像においてn枚のテクスチャーが貼り付けられる位置が特定される。
(B)レンダリング処理が輝度に与える影響の特定
次に、レンダリング済み画像の各画素について、レンダリング処理が輝度に与える影響を特定する。図1Aに示すような、レンダリング処理は、各テクスチャーT1〜T6を仮想的な3次元の構造体に貼り付けた後に、仮想的な位置に設定された光源からの光や当該3次元の構造体の形状に起因する陰影等に所定の影響を受けるとみなしてレンダリング済み画像の輝度値を特定する。従って、当該所定の影響は、レンダリング済み画像の画素ごとに規定することができる。さらに、本実施形態においては、レンダリング済み画像の画素ごとの輝度値が、テクスチャーT1〜T6に依存しない定数成分(以下、バイアスBと呼ぶ)とテクスチャーT1〜T6の輝度に比例する比例成分(以下、ゲインGと呼ぶ)との和によって規定されるとみなす。
そこで、レンダリング済み画像の画素ごとにバイアスBとゲインGとを特定すれば、レンダリング処理が輝度に与える影響を特定することができる。この影響は、図1Cに示すような、n枚のテクスチャーを全て第1ベタ塗りパターンの特殊テクスチャーに取り替えてレンダリング処理を行ったレンダリング済み画像I2と図1B,図1Dに示すようなn枚のテクスチャーの特定の一枚を第2ベタ塗りパターンの特殊テクスチャー、他を第1ベタ塗りパターンの特殊テクスチャーに取り替えてレンダリング処理を行ったレンダリング済み画像I1,I3等を利用して特定することができる。
すなわち、図1Cに示すレンダリング済み画像I2は、n枚の全てが第1ベタ塗りパターンの特殊テクスチャーであり、当該第1ベタ塗りパターンの特殊テクスチャーを仮想的な3次元の構造体に貼り付けて生成したレンダリング済み画像の各画素において有意な輝度値(0より大きい輝度値)となるのであれば、当該輝度値は元のテクスチャーの影響を受けることなく有意な値となっていることが分かる。そこで、第1ベタ塗りパターンの特殊テクスチャーを仮想的な3次元の構造体に貼り付けて生成したレンダリング済み画像の各画素における輝度値をバイアスBとして定義することができる。
一方、第2ベタ塗りパターンの特殊テクスチャーが貼り付けられた部分に相当するレンダリング済み画像の各画素における輝度値からバイアスBを減じれば、ゲインGを特定することができる。そこで、第2ベタ塗りパターンの特殊テクスチャーが貼り付けられた位置に対応したレンダリング済み画像の各画素からバイアスBを減じることによって各画素のゲインGを特定する。
(C)画素の位置の対応関係の特定
次に、レンダリング前後の画素の位置の対応関係を特定する。すなわち、テクスチャーの各画素の位置と、レンダリング済み画像の各画素の位置との対応関係が特定される。当該対応関係の特定は、特殊テクスチャーをレンダリングしたレンダリング済み画像に基づいて、当該レンダリング済み画像の座標(x,y)とテクスチャーの座標(X,Y)とを対応づけることによって実施される。但し、本実施形態において当該対応関係の特定は、x座標とX座標との対応関係を特定し、y座標とY座標との対応関係を特定する処理を行うことによって実施され、前者および後者のそれぞれを行うための特殊テクスチャー(対応関係設定用パターン)が生成される。
図2A〜図2Cは、x座標とX座標との対応関係を特定するために生成される特殊テクスチャーの例を示す図である。これらの図においては、横方向の画素の位置をX座標、x座標が規定し、縦方向の画素の位置をY座標、y座標が規定する座標系を採用している。また、ここでは、X座標、Y座標ともに値域が1〜8のテクスチャーを想定しているため、特殊テクスチャーもX座標、Y座標ともに値域が1〜8である。図2Aには、特殊テクスチャーの一つにおいてX座標の値を矢印で示している。また、x座標とX座標との対応関係を特定するために生成される特殊テクスチャーは、n枚のテクスチャーの全てについて同じパターンである。例えば、図2Aに示す例は図1Aに示すように6枚のテクスチャーT1〜T6を仮想的な3次元の構造体に貼り付ける場合に生成される特殊テクスチャーの例を示している。当該図2Aに示す例において、6枚のテクスチャーT1〜T6の替わりとされる特殊テクスチャーのパターンは全て同一である。
但し、x座標とX座標との対応関係を特定するために生成される特殊テクスチャーにおいては、X座標のビット数と同数のパターンが生成される。例えば、図2A〜図2Cに示す例においては、X座標の値域が1〜8であって3ビットであるため、3種類の特殊テクスチャーが生成される。すなわち、図2A,2B,2Cのそれぞれにおいて特殊テクスチャーのパターンは異なるパターンであるが、図2Aに示す特殊テクスチャー同士で比較するとn枚の特殊テクスチャーのパターンは同一である。
さらに、本実施形態においては、3種類の特殊テクスチャーから同じX座標値の輝度を順に抽出して得られる輝度の順列が全てのX座標値において異なるように、当該3種類の特殊テクスチャーのパターンが設定されている。例えば、X座標値1の輝度を図2A,2B,2Cの順に抽出して得られる順列は(黒、黒、黒)であり、X座標値2の輝度を図2A,2B,2Cの順に抽出して得られる順列は(白、黒、黒)である。このように、全てのX座標値についての順列が全て異なるように特殊テクスチャーのパターンが設定されていると、これら3種類の特殊テクスチャーをレンダリング処理した後の3種類のレンダリング済み画像の各座標における輝度値に基づいて、元の特殊テクスチャーのX座標値を特定することができる。例えば、3種類のレンダリング済み画像の各座標における輝度値を順に参照することによって元の特殊テクスチャーの輝度の順列を特定すれば、レンダリング済み画像の各座標に対応する特殊テクスチャーのX座標値を特定することができる。
より具体的には、図2A〜図2Cに示す例において、レンダリング済み画像I4,I5,I6の位置P1の輝度値を順に抽出して特定される元の特殊テクスチャーの輝度の順列は(黒、黒、黒)である。この順列は元の特殊テクスチャーのX座標値1の輝度に対応しており、他のX座標値の輝度がこの順列に対応することはない。従って、この順列が抽出されたレンダリング済み画像の位置P1には、特殊テクスチャーのX座標値1の画像が貼り付けられていると特定することができる。
そこで、本実施形態においては、特殊テクスチャーのX座標のビット数と同数の種類の特殊テクスチャーを各n枚生成してレンダリング処理を行い、上述の(A)によってn枚のテクスチャーのいずれかが貼り付けられることが特定されたレンダリング済み画像の各位置の輝度値を順に抽出する。そして、抽出された順列に基づいて元の特殊テクスチャーのX座標値を特定することにより、x座標とX座標との対応関係を特定する構成としている。
このようなx座標とX座標との対応関係は、例えば、X座標値をグレイコードで表現することによって特定する構成が好ましい。図2A〜図2Cに示す特殊テクスチャーのパターンは、グレイコードを用いてx座標とX座標との対応関係を特定する際に利用されるパターンである。すなわち、これらの例においては、グレイコードを用いてx座標とX座標との対応関係を特定するために、X座標値をグレイコードで表現した場合の最下位のビットの値が0の場合を黒、1の場合を白として図2Aに示すパターンを生成している。同様に、X座標値をグレイコードで表現した場合の最下位よりも一つ上位のビット(中位ビットと呼ぶ)の値が0の場合を黒、1の場合を白として図2Bに示すパターンを生成し、最上位のビットの値が0の場合を黒、1の場合を白として図2Cに示すパターンを生成している。すなわち、図2Aに示す特殊テクスチャーのパターンはX座標値をグレイコードで表現した場合の最下位のビット値に基づいて決定され、図2B,図2Cに示す特殊テクスチャーのパターンはX座標値をグレイコードで表現した場合の中位ビット、最上位のビット値に基づいて決定される。すなわち、図2A〜図2Cに示す例においては、ビット数3と同数のパターンが形成され、かつ、図2A,2B,2Cのそれぞれには最下位ビット、中位ビット、最上位ビットが対応づけられている。
図2Dは、当該パターンの生成を説明する図である。同図2Dに示すように、X座標値1を示すグレイコードは(000)であり、最下位ビットが0、中位ビットが0、最上位ビットが0である。従って、図2Aに示す特殊テクスチャーのX座標値1の輝度は黒、図2Bに示す特殊テクスチャーのX座標値1の輝度は黒、図2Cに示す特殊テクスチャーのX座標値1の輝度は黒となる。同様に、X座標値2を示すグレイコードは(001)であり、最下位ビットが1、中位ビットが0、最上位ビットが0である。従って、図2Aに示す特殊テクスチャーのX座標値2の輝度は白、図2Bに示す特殊テクスチャーのX座標値2の輝度は黒、図2Cに示す特殊テクスチャーのX座標値2の輝度は黒となる。同様の処理をX座標値3〜8まで続けることにより、図2A〜図2Cのパターンが生成される。
このようにグレイコードによって複数の種類の特殊テクスチャーのパターンを決定しておけば、当該複数の種類の特殊テクスチャーから生成したレンダリング済み画像の各座標の輝度値から特定される元の特殊テクスチャーの輝度によって、元の特殊テクスチャーのX座標値をグレイコードで表現した値を決定することができる。ここで、レンダリング済み画像の各座標の輝度値から特定される元の特殊テクスチャーの輝度は、例えば、レンダリング済み画像の輝度値から上述のバイアスBを減じた値がゲインGの1/2より大きいか否かを判定することによって特定することができる。すなわち、元の特殊テクスチャーが黒の場合、レンダリング済み画像の輝度値から上述のバイアスBを減じた値はほぼ0になり、元の特殊テクスチャーが白の場合、レンダリング済み画像の輝度値から上述のバイアスBを減じた値はほぼゲインGと同値になる。従って、レンダリング済み画像の各位置の輝度値から各位置のバイアスBを減じた値が各位置のゲインGの1/2より大きければ元の特殊テクスチャーが白、レンダリング済み画像の各位置の輝度値から各位置のバイアスBを減じた値が各位置のゲインGの1/2以下であれば元の特殊テクスチャーが黒であるとみなすことができる。
そこで、X座標値をグレイコードで表現した場合の最下位ビット値に基づいて生成された特殊テクスチャーをレンダリングしてレンダリング済み画像を生成し、当該レンダリング済み画像の各座標の輝度値から元の特殊テクスチャーが白であると判定される場合には、その位置におけるグレイコード表現のX座標値の最下位ビット値を1とする。また、レンダリング済み画像の各座標の輝度値から元の特殊テクスチャーが黒であると判定される場合、その位置におけるグレイコード表現のX座標値の最下位ビット値を0とする。以上の処理を、複数の種類の特殊テクスチャーのそれぞれについて実施することにより、レンダリング済み画像の各位置に対応するグレイコード表現のX座標値の全ビットを決定することができ、この結果、x座標とX座標との対応関係を定義することができる。
例えば、図2Aに示す例において、レンダリング済み画像I4の位置P1(x,y)の輝度値からバイアスB(x,y)を減じた値はゲインG(x,y)の1/2以下であるため、元の特殊テクスチャーが黒であると判定される。従って、位置P1(x,y)に対応するテクスチャーのX座標値の最下位ビットは0となる。同様に、図2Bに示す例において、レンダリング済み画像I5の位置P1(x,y)の輝度値からバイアスB(x,y)を減じた値はゲインG(x,y)の1/2以下であるため、元の特殊テクスチャーが黒であると判定される。従って、位置P1(x,y)に対応するテクスチャーのX座標値の中位ビッドは0となる。図2Cに示す例において、レンダリング済み画像I6の位置P1(x,y)の輝度値からバイアスB(x,y)を減じた値はゲインG(x,y)の1/2以下であるため、元の特殊テクスチャーが黒であると判定される。従って、位置P1(x,y)に対応するテクスチャーのX座標値の最上位ビットは0となる。従って、位置P1(x,y)に対応するX座標値のグレイコード表現は(000)であり、X座標値1であることが特定される。
以上のような処理は、複数の種類のレンダリング済み画像の各座標における輝度値に基づいて元の特殊テクスチャーの輝度の順列を特定し、当該順列からX座標値を特定することによって、レンダリング済み画像の各座標に対応するX座標値を決定することと実質的に等価な処理となる。なお、Y座標値についても同様の処理を行うことによって、レンダリング済み画像の各座標に対応するY座標値を特定することが可能になる。すなわち、図2A〜図2Cに示すパターンを90度回転させたような特殊テクスチャーによってX座標値における判定と同様の判定を行えば、Y座標値をグレイコードで表現した値とy座標との対応関係を特定することが可能になる。
以上のように(A)〜(C)の各工程を実行すれば、レンダリング済み画像の任意の座標(x,y)に対応するテクスチャーの座標(X,Y)を特定することができる。また、レンダリング済み画像の任意の座標(x,y)においてレンダリング処理が輝度に与える影響を特定することができる。従って、各工程によって特定された座標の対応関係およびレンダリング処理が輝度に与える影響を示す情報を保存しておけば、当該保存された情報に基づいて任意のテクスチャーからレンダリング済み画像を生成する処理を極めて少ないリソースで高速に実行することが可能である。また、レンダリング処理において想定した仮想的な3次元の構造体や照明の位置等が明らかでない場合、すなわち、レンダリング処理後の画像と処理前のテクスチャーのみが明らかである場合であっても、レンダリング処理を再現することが可能になる。
本実施形態においては、以上のように、レンダリング前のテクスチャーとレンダリング済み画像との対応関係を関数によって表現する。すなわち、レンダリング済み画像の座標値(x,y)を変数とし、各座標値について、貼り付けられるテクスチャーを示すI(x,y)、バイアスB(x,y)、ゲインG(x,y)、テクスチャーの座標X(x,y)、Y(x,y)を画像描画情報として規定すれば、任意のテクスチャーからレンダリング済み画像を生成することが可能になる。
ここで、バイアスB(x,y)、ゲインG(x,y)、座標X(x,y)、座標Y(x,y)は変数x,yに応じてバイアスB(x,y)、ゲインG(x,y)、座標X(x,y)、座標Y(x,y)の階調値が変化する関数であり、本実施形態においては、これらの関数を圧縮することによってレンダリング済み画像を効率よく、かつ、画質の低下を抑制しながら管理する構成としている。すなわち、バイアスB(x,y)、ゲインG(x,y)についてはJPEG圧縮方式によって高圧縮率で圧縮する構成とし、座標X(x,y)、座標Y(x,y)については線形圧縮方式によって画質の低下を抑制する構成としている。
具体的には、座標X(x,y)は、テクスチャーの座標Xとレンダリング済み画像の座標(x,y)との対応関係を示し、座標Y(x,y)は、テクスチャーの座標Yとレンダリング済み画像の座標(x,y)との対応関係を示している。従って、不可逆圧縮方式によって座標の対応関係に誤差が生じた場合、レンダリング済み画像においてテクスチャーが貼り付けられるべき本来の位置と実際にテクスチャーが貼り付けられる位置とに誤差が生じることになる。ここで、当該誤差がテクスチャーの隣接画素間で急激に変化するとレンダリング済み画像の画質が著しく劣化するが、当該誤差がテクスチャーの画素ごとに徐々に変化する場合にはレンダリング済み画像の画質低下は抑制される。
そこで、本実施形態においては、座標X(x,y)、座標Y(x,y)を線形圧縮方式によって圧縮する構成としている。すなわち、例えば、JPEG圧縮方式においては、画像をMCU(Minimum Coded Unit)に分割して圧縮処理を行うため、MCUの境界にて誤差が急激に変化するブロックノイズが発生し得る。しかし、線形圧縮においては、隣接する画素間で階調値が線形的に変化するように圧縮がなされるため、圧縮に起因して誤差が発生したとしても当該誤差はテクスチャーの画素ごとに徐々に変化することになる。従って、座標X(x,y)、座標Y(x,y)を線形圧縮方式によって圧縮することにより、画質の低下を抑制することが可能になる。
なお、線形圧縮は各種の手法によって行うことが可能であり、例えば、x−y平面上に座標Xの値を高さとした3次元のグラフで座標X(x,y)を表現したときに当該グラフ上で座標Xの値が示す高さ方向の凹凸を、表面の全てが多角形(例えば三角形)によって構成された近似的な凹凸で表現することによって実現可能である。なお、表面の全てが三角形となるように近似的な凹凸を定義する場合、当該三角形のx−y平面への投影がドロネーの三角形分割で分割された三角形となるように三角形を決定する構成を採用可能である。また、近似は、三角形が示す近似的な座標Xの値と、座標Xの真の値との誤差が所定値以内となるまで三角形分割によって三角形の数を増加させることによって実現可能である。
次に、本発明の実施の形態を具体的な例とともに図面を用いて説明する。図4は、本発明の一実施形態である画像処理方法に用いるコンピューター20とビューワー40の構成の概略を示す構成図である。本実施形態のコンピューター20は、中央演算処理装置としてのCPUや処理プログラムを記憶するROM、データを一時的に記憶するRAM、グラフィックプロセッサー(GPU)、ハードディスク(HDD)、ディスプレイ22などからなる汎用のコンピューターとして構成されており、その機能ブロックとしては、仮想的な3次元の構造体を示す3次元モデリングデータ(以下、3次元モデルという)やこれに貼り付けるテクスチャーデータ(以下、テクスチャーという)などを記憶する記憶部31と、3次元モデルに貼り付ける前処理用の特殊なテクスチャーを生成する特殊テクスチャー生成処理部32と、3次元モデルをレンダリングしてビットマップ画像を生成するレンダリング処理部34と、レンダリングにより得られたビットマップ画像としてのレンダリング済み画像を解析するレンダリング済み画像解析処理部36と、生成したレンダリング済み画像やレンダリング済み画像解析処理部36の解析により得られる各種データを圧縮する圧縮処理部38とを備える。
特殊テクスチャー生成処理部32は、レンダリング処理部34でレンダリングされる3次元モデルに貼り付ける特殊テクスチャーを生成する処理部であり、具体的には、値0.0〜1.0の階調値範囲内で階調値が値1.0の白ベタのパターン(第2ベタ塗りパターン)や、階調値が値0.0の黒ベタのパターン(第1ベタ塗りパターン),値0.0と値1.0の階調値が横方向に交互に現われる縦縞模様のパターン(対応関係設定用パターン),値0.0と値1.0の階調値が縦方向に交互に現われる横縞模様のパターン(対応関係設定用パターン)を生成する。なお、これらの各パターンがもつ役割については後述する。
レンダリング処理部34は、3Dレンダリング用のソフトウエアがコンピューター20にインストールされることにより機能する処理部であり、3次元モデルに特殊テクスチャー生成処理部32で生成されたテクスチャーを貼り付けてレンダリングすることにより所定のフレームレート(例えば、1秒間に30回や60回など)でフレーム単位にビットマップ画像を再生して動画を表示する。本実施形態では、光源からの光をたどりながらオブジェクト面の反射や光の屈折などを計算してレンダリングするレイトレーシング法を用いてレンダリング処理を行なうものとした。
レンダリング済み画像解析処理部36は、レンダリング処理部34により生成されたビットマップ画像(レンダリング済み画像)を解析することにより、特殊テクスチャーに代えて写真などの所望の画像データを自由に差し替えてレンダリング済み画像をビューワー40側で表示できるようにするための画像描画情報を生成する。
圧縮処理部38は、レンダリング済み画像解析処理部36により解析に伴って生成された画像描画情報を圧縮するための処理部であり、本実施形態では、画質の劣化を抑制しながら全体の圧縮率を高めるために、複数種の圧縮方式を使い分けてデータを圧縮するものとした。圧縮方式の詳細については後述する。
本実施形態のビューワー40は、コンピューター20のレンダリング処理部34で得られたレンダリング済み画像やレンダリング済み画像解析処理部36により解析されると共に圧縮処理部38により圧縮された画像描画情報などを記憶する記憶部41と、メモリーカードMCに記憶されている写真などの画像データの入力を司る入力処理部42と、入力処理部42により入力された画像データや記憶部41に記憶されているレンダリング済み画像,画像描画情報をデコード(展開)する展開処理部44と、レンダリング済み画像に入力した画像データをテクスチャーとして合成して描画する描画処理部46と、を備える。このビューワー40は、ユーザーからの指示によりメモリーカードMCに記憶されている複数の画像データを順次読み込むと共に読み込んだ画像データを画像描画情報を用いて3次元モデルのレンダリング済み画像に貼り付けて順次再生を行なうスライドショー表示を行なうことができるようになっている。
次に、こうして構成された本実施形態のコンピューター20の特殊テクスチャー生成処理部32やレンダリング処理部34,レンダリング済み画像解析処理部36,圧縮処理部38の動作と、ビューワー40の展開処理部44や描画処理部46の動作について説明する。まず、特殊テクスチャー生成処理部32の処理について説明する。図5は、特殊テクスチャー生成処理の一例を示すフローチャートである。
特殊テクスチャー生成処理では、まず、複数のセットのうちのいずれのセットであるのかを特定するための対象セット番号iを値1に初期化し(ステップS100)、対象セット番号iに対してRGBの色成分毎にn個の特殊テクスチャーを生成して(ステップS110)、対象セット番号iを値1だけインクリメントし(ステップS120)、対象セット番号iと値nとを比較して(ステップS130)、対象セット番号iが値n以下のときにはステップS110に戻って次の対象セット番号iに対してn個の特殊テクスチャーを生成する処理を繰り返し、対象セット番号iが値nを超えたときには次の処理に進む。ここで、対象セット番号iが値1から値nまでの特殊テクスチャーの生成は、次式(1)に示すように、1番からn番までの対象テクスチャー番号jを1番から値1ずつシフトしながら対象テクスチャー番号jと対象セット番号iと比較し、両者が一致する対象テクスチャー番号jに対しては最小値0.0(黒)〜最大値1.0(白)の階調値範囲で全座標(X,Y)に値1.0の階調値を設定することにより白ベタの特殊テクスチャー(第2ベタ塗りパターン)を生成し、両者が一致しない対象テクスチャー番号jに対しては全座標(X,Y)に値0.0の階調値を設定することにより黒ベタの特殊テクスチャー(第1ベタ塗りパターン)を生成することにより行なわれる。ここで、式(1)中の「c」は、画像データのRGB値の各色に対応する値を示し、「n」は1画面に配置するテクスチャーの数を示し、「b」はテクスチャーの座標を2進数で表わしたときのビット数を示し、「Tc,i,j(X,Y)」は色成分c,対象セット番号i,対象テクスチャー番号jにおける特殊テクスチャーの座標(X,Y)の階調値を示す(以下、同じ)。なお、ここでは、全ての色成分について、全座標に階調値の最大値が設定されたパターンを白ベタと呼び、全座標に階調値の最小値が設定されたパターンを黒ベタと呼んでいる(以下、同じ)。
対象セット番号iが値1〜値nの特殊テクスチャー(n個のセットから成る第1のセット群)を生成すると、次に、対象セット番号iが値(n+1)の色成分毎のn個の特殊テクスチャーを生成し(ステップS140)(第2のセット)、対象セット番号iを値1だけインクリメントする(ステップS150)。ここで、対象セット番号iが値(n+1)の特殊テクスチャーの生成は、次式(2)に示すように、1番からn番までのすべての対象テクスチャー番号jに対して全座標(X,Y)に値0.0の階調値を設定することにより黒ベタの特殊テクスチャーを生成することにより行なわれる。
対象セット番号iが値(n+1)の特殊テクスチャーを生成すると、次に、対象セット番号iに対してテクスチャーの座標を交番2進数(グレイコード)表現としたときの第[i−(n+2)]ビットに対応する縦縞模様の色成分毎のn個の特殊テクスチャーを次式(3)により生成して(ステップS160)、対象セット番号iを値1だけインクリメントし(ステップS170)、対象セット番号iと値(n+b+1)とを比較し(ステップS180)、対象セット番号iが値(n+b+1)以下のときにはステップS160に戻って次の対象セット番号iに対してn個の特殊テクスチャーを生成する処理を繰り返し、対象セット番号iが値(n+b+1)を超えたときには次の処理に進む。以上の処理により、レンダリング済み画像のx座標と特殊テクスチャーのX座標との対応関係を設定するための対応関係設定用パターンが生成される。ここで、式(3)中の「gray(a)」は数値aのグレイコード(交番2進数符号)表現であり、「and(a,b)」はaとbのビット毎の論理積を示す(以下、同じ)。(n+2)番から(n+b+1)番までの対象セット番号iは、それぞれテクスチャーの座標を2進数で表現したときに第(b−1)ビット(最下位ビット)から第0ビット(最上位ビット)までの各ビットに対応しており、対象セット番号iに対応するビットの値が値1のときには値1.0(白)の階調値を設定し、対応するビットの値が値0のときには値0.0(黒)の階調値を設定することにより縦縞模様の特殊テクスチャーが生成される。本実施形態では、テクスチャーの座標を交番2進数で表現しており、例えば、テクスチャー数nが値3で座標が値1〜8の3ビット(b=3)とすると、対象セット番号iが第2ビット(最下位ビット)を示す値5の特殊テクスチャーとしてはX座標値1については黒の階調値が設定されX座標値2,3については白の階調値が設定されX座標値4,5については黒の階調値が設定されX座標値6,7については白の階調値が設定されX座標値8については黒の階調値が設定される。また、対象セット番号iが第1ビットを示す値6の特殊テクスチャーとしてはX座標値1,2については黒の階調値が設定されX座標値3〜6については白の階調値が設定されX座標値7,8については黒の階調値が設定され、対象セット番号iが第0ビット(最上位ビット)を示す値7の特殊テクスチャーとしてはX座標値1〜4については黒の階調値が設定されX座標値5〜8については白の階調値が設定されることになる。
対象セット番号iが値(n+2)〜値(n+b+1)の特殊テクスチャーを生成すると、次に、対象セット番号iに対してテクスチャーのy座標を交番2進数表現としたときの第[i−(n+b+2)]ビットに対応する横縞模様の色成分毎のn個の特殊テクスチャーを次式(4)により生成して(ステップS185)、対象セット番号iを値1だけインクリメントし(ステップS190)、対象セット番号iと値(n+2b+1)とを比較し(ステップS195)、対象セット番号iが値(n+2b+1)以下のときにはステップS185に戻って次の対象セット番号iに対してn個の特殊テクスチャーを生成する処理を繰り返し、対象セット番号iが値(n+2b+1)を超えたときには、全ての特殊テクスチャーの生成が完了したとして、本ルーチンを終了する。以上の処理により、レンダリング済み画像のy座標と特殊テクスチャーのY座標との対応関係を設定するための対応関係設定用パターンが生成される。(n+b+2)番から(n+2b+1)番までの対象セット番号iは、それぞれテクスチャーの座標を2進数で表現したときに第(b−1)ビット(最下位ビット)から第0ビット(最上位ビット)からまでの各ビットに対応しており、対象セット番号iに対応するビットの値が値1のときには値1.0(白)の階調値を設定し、対応するビットの値が値0のときには値0.0(黒)の階調値を設定することにより横縞模様の特殊テクスチャーが生成される。本実施形態では、テクスチャーの座標を交番2進数で表現しており、例えば、テクスチャー数nが値3でy座標が値1〜8の3ビット(b=3)とすると、対象セット番号iが第2ビット(最下位ビット)を示す値8の特殊テクスチャーとしてはY座標値1については黒の階調値が設定されY座標値2,3については白の階調値が設定されY座標値4,5については黒の階調値が設定されY座標値6,7については白の階調値が設定されY座標値8については黒の階調値が設定される。また、対象セット番号iが第1ビットを示す値9の特殊テクスチャーとしてはY座標値1,2については黒の階調値が設定されY座標値3〜6については白の階調値が設定されY座標値7,8については黒の階調値が設定され、対象セット番号iが第0ビット(最上位ビット)を示す値10の特殊テクスチャーとしてはY座標値1〜4については黒の階調値が設定されY座標値値5〜8については白の階調値が設定されることになる。図6に、テクスチャー数nが値3で座標のビット数bが値3のときに生成される特殊テクスチャーの一覧を示す。
レンダリング処理部34は、セット毎に、対応するn個の特殊テクスチャーを3次元モデルに貼り付けてレンダリング処理を行なう。図7にレンダリング処理の様子を示す。本実施形態では、3次元モデルを動画としてレンダリングし、テクスチャー数nが値3でビット数bが値3としたから、合計10セット分のレンダリング処理が行なわれて10セット分の動画が生成されることになる。この動画は、フレーム1〜Tまでの各フレーム毎に生成されたビットマップ画像(レンダリング済み画像)により構成される。なお、図7においては、10セット分のレンダリング済み画像のそれぞれから、共通のフレーム番号のビットマップ画像を抜き出して示している。
次に、レンダリング処理部34により生成されたレンダリング済み画像を解析する処理について説明する。図8は、レンダリング済み画像解析処理部36により実行されるレンダリング済み画像解析処理の一例を示すフローチャートである。
レンダリング済み画像解析処理では、まず、次式(5)に示すように各フレーム番号t(=1〜T)におけるレンダリング済み画像の座標(x,y)に貼り付けられるテクスチャー番号を示す変数It(x,y)を値0に初期化し(ステップS200)、対象フレームtにおけるセット番号1〜nのレンダリング済み画像中の白ベタ領域(座標)を特定して、この白ベタ領域の変数It(x,y)に対応するテクスチャー番号を設定する(ステップS210)。この処理は、次式(6)に示すように、対象セット番号iを1番からn番まで順次シフトしながら対象セット番号iのレンダリング済み画像の階調値(各色成分毎の階調値の総和)とセット番号(n+1)のレンダリング済み画像の階調値(各色成分毎の階調値の総和)とを比較することにより行なうことができる。すなわち、対象セット番号iにおいては番号iと等しいテクスチャー番号の特殊テクスチャーが白ベタに設定されており、セット番号(n+1)においては全テクスチャー番号の特殊テクスチャーが黒ベタに設定されている。従って、対象セット番号iのレンダリング済み画像の階調値がセット番号(n+1)のレンダリング済み画像の階調値より大きい場合には、座標(x,y)にテクスチャー番号iの特殊テクスチャーが貼り付けられていたことが分かる。ここで、式(5)中の「w」はレンダリング済み画像の幅方向のサイズを示し、「h」はレンダリング済み画像の高さ方向のサイズを示す。また、式(6)中の「Ac,i,t(x,y)」は色成分c,セット番号i(1〜n),フレーム番号tにおけるレンダリング済み画像の座標(x,y)の階調値を示す(以下、同じ)。
続いて、次式(7)によりセット番号(n+1)のレンダリング済み画像の階調値をバイアスBc,t(x,y)として設定すると共に(ステップS220)、変数It(x,y)が値0でないレンダリング済み画像の座標(x,y)、即ちテクスチャーが貼り付けられる領域について次式(8)によりゲインGc, t(x,y)を計算する(ステップS230)。ここで、式(8)中の「Ac,It(x,y),t(x,y)」は色成分c,変数It(x,y)に格納されたセット番号i,フレーム番号tにおけるレンダリング済み画像の座標(x,y)の階調値を示す。図9に、バイアスBc,t(x,y)とゲインGc,t(x,y)との関係を示す。3次元モデルにテクスチャーを貼り付けてレンダリングする場合、図示するように、元のテクスチャーの階調値に依存しないオフセット分がバイアスBc,t(x,y)に相当し、元のテクスチャーの階調値の変化に対するレンダリング済み画像の階調値の変化の傾きがゲインGc,t(x,y)に相当する。
そして、次式(9)によりテクスチャーのグレイコード表現の座標(X't(x,y),Y't(x, y))を値0に初期化し(ステップS240)、セット番号(n+2)〜(n+2b+1)のレンダリング済み画像の座標(x,y)とテクスチャーの座標(X't(x,y),Y't(x,y))との対応関係を設定する(ステップS250)。ここで、座標の対応関係は、次式(10)により設定され、具体的には、番号iを1番からb番まで順次シフトしながらセット番号(i+n+1)のレンダリング済み画像の階調値Ac,i+n+1,t(x,y)からバイアスBc,t(x,y)を減じたもの(各色成分毎の総和)がセット番号iのレンダリング済み画像のゲインGc,t(x,y)を値2で割ったもの(各色成分毎の総和)よりも大きいか否か即ちセット番号(i+n+1)における白と黒の縦縞模様のパターンのうち座標(x,y)が白か否かを判定し白のときには交番2進数表現の座標X't(x,y)の対応する第(i−1)ビットの値に値1を設定し、番号iを1番からb番まで順次シフトしながらセット番号(i+b+n+1)のレンダリング済み画像の階調値Ac,i+b+n+1,t(x,y)からバイアスBc,t(x,y)を減じたもの(各色成分毎の総和)がセット番号iのレンダリング済み画像のゲインGc,t(x,y)を値2で割ったもの(各色成分毎の総和)よりも大きいか否か即ちセット番号(i+b+n+1)における白と黒の横縞模様のパターンのうち座標(x,y)が白か否かを判定し白のときには座標Y't(x,y)の対応する第(i−1)ビットの値を値1に設定することにより行なわれる。ここで、式(10)中の「or(a,b)」はaとbのビット毎の論理和を示す。
座標の対応関係を設定すると、グレイコード表現のテクスチャーの座標(X't(x,y),Y't(x,y))を次式(11)を用いて復号化して復号化後座標(Xt(x,y),Yt(x,y))を算出し(ステップS260)、値1〜Tまでの全フレームについて処理が完了したか否かを判定し(ステップS270)、全フレームについて処理が完了していないときには次のフレームを対象フレームtに設定してステップS210に戻って処理を繰り返し、全フレームについて処理が完了したときに本処理を終了する。ここで、式(11)中の「gray-1(a)」はグレイコードaを復号化した値を示し、「Xt(x,y)」はフレーム番号tのレンダリング済み画像の座標(x,y)に対応するテクスチャーのx座標を示し、「Yt(x,y)」はフレーム番号tのレンダリング済み画像の座標(x,y)に対応するテクスチャーのy座標を示す。なお、本実施形態では、座標(X't(x,y),Y't(x,y))の原点を(1,1)としているから、グレイコードを復号化した値に値1を加算している。画像描画情報としては、変数It(x,y)とバイアスBc,t(x,y)とゲインGc,t(x,y)と座標(Xt(x,y),Yt(x,y))とが含まれる。
次に、レンダリング済み画像解析処理部36により解析されて得られた画像描画情報を圧縮する処理、特に座標(Xt(x,y),Yt(x,y))を圧縮する処理について説明する。図10は、圧縮処理部38により実行される圧縮処理の一例を示すフローチャートである。
圧縮処理では、まず、バイアスBc,t(x,y)およびゲインGc,t(x,y)についてJPEG圧縮方式によって圧縮する(ステップS300)。次に、座標(Xt(x,y),Yt(x,y))について線形圧縮方式により圧縮し(ステップS310)、圧縮データを保存して(ステップS320)、本ルーチンを終了する。なお、以上の圧縮処理は、テクスチャーが貼り付けられるテクスチャー領域とテクスチャーがが貼り付けられない非テクスチャー領域とを分離し、各領域のいずれかまたは双方に対して実施する構成であっても良い。また、画像描画情報としてのIt(x,y)を圧縮しても良い。
図11は、図10のステップS310により実行される線形圧縮処理の一例を示すフローチャートである。本実施形態における線形圧縮処理は、レンダリング済み画像の座標Xt(x,y),Yt(x,y)のそれぞれを三角形分割により線形近似する方式である。すなわち、x-y平面において座標値Xtを高さとしたグラフにおいて、この高さに近似させた複数の三角形でx-y平面の上部空間を覆い、当該複数の三角形と座標値Xtとの差分が所定の基準以下になるように設定する。そして、当該三角形の表面が座標(x、y)における座標値Xtであるとみなす構成としている。具体的には、まず、対象テクスチャー領域を設定する(ステップS400)。すなわち、座標Xt(x,y)は、It(x,y)≠0の座標(x,y)、つまりテクスチャーが貼り付けられる座標に対してのみ定義されるため、ここでは、全座標(x,y)のなかから、It(x,y)≠0となっている領域の一つを対象テクスチャー領域として設定する。なお、It(x,y)≠0となっている領域が一つしかなければ当該一つの領域が対象テクスチャー領域となり、It(x,y)≠0となっている領域がx-y平面内で分離して複数個存在する場合には各領域を一つずつ対象テクスチャー領域とし、それぞれの対象テクスチャー領域に対してステップS410以降の処理を行う。なお、本実施形態においては、テクスチャー領域について座標Xt(x,y),Yt(x,y)のそれぞれを線形圧縮する構成としているが、非テクスチャー領域について任意の座標値Xt,Ytを設定し全座標(x,y)についてまとめて線形圧縮を行う構成であっても良い。
対象テクスチャー領域を設定すると、この対象テクスチャー領域内の階調値z(座標値Xtあるいは座標値Yt)の平均をとることにより平均階調値zaを算出すると共に(ステップS410)、対象テクスチャー領域内の各画素の階調値zと平均階調値zaとの偏差Δzを計算し(ステップS420)、計算した偏差Δzが閾値zrefよりも大きいか否かを判定する(ステップS430)。いずれの画素についての偏差Δzも閾値zref以下のときには次のテクスチャー領域があるか否かを判定し(ステップS560)、次のテクスチャー領域があるときにはステップS400に戻ってこのテクスチャー領域を対象テクスチャー領域に設定して処理を繰り返し、いずれかの画素についての偏差Δzが閾値zrefよりも大きいときには、階調値が最大z1の画素A(x1,y1,z1)と階調値が最小z2の画素B(x2,y2,z2)を検索し(ステップS440)、A−B直線に直交しx-y平面に平行な直線及び2点A,Bを含む平面αを設定し(ステップS450)、設定した平面αとの距離L1が最も大きい画素C(x3,y3,z3)を検索する(ステップS460)。図12に平面αと画素Cとの関係を示す。こうして画素Cを検索すると、距離L1が閾値Lrefよりも大きいか否かを判定し(ステップS470)、距離L1が閾値Lref以下のときには次の処理に進み、距離L1が閾値Lrefよりも大きいときには点集合G={A,B,C}を設定し(ステップS480)、上記3点A,B,Cを含む平面βを設定する(ステップS490)。図13に平面βと画素Pとの関係を示す。次に、平面との距離Lpが最も大きい画素P(xp,yp,zp)を検索する(ステップS500)。なお、S500が初めて実行される場合、距離Lpの算出対象となる平面はステップS490で設定した平面βであり、S500の実行が2回目以降である場合、距離Lpの算出対象となる平面はステップS540で再設定した平面である。
そして、距離Lpが閾値Lrefよりも大きいか否かを判定し(ステップS510)、距離Lpが閾値Lref以下のときには次の処理に進み、距離Lpが閾値Lrefよりも大きいときには画素Pを新たに加えた点集合Gを設定し(ステップS520)、設定した点集合Gに対して三角形分割して(ステップS530)、平面を再設定する(ステップS540)。図14は点集合G={A,B,C,P}を三角形分割する様子を示す説明図である。図示するように、3点A,B,Cを含む三角平面と3点A,B,Pを含む三角平面とを両者が共有する直線A−Bで分割し、直線A−Bを境に各三角平面を延長することにより平面を再設定する。平面を再設定すると、ステップS500に戻って再設定した平面との距離Lpが最も大きい新たな画素P(xp,yp,zp)を検索し(ステップS510)、距離Lpが閾値Lref以下となるまでステップS500〜S540の処理を繰り返す。ステップS510で距離Lpが閾値Lref以下となると、設定した平面を対象テクスチャー領域の形状に切り抜いて(ステップS550)、次のテクスチャー領域があるときには(ステップS560)、ステップS400に戻ってこのテクスチャー領域を対象テクスチャー領域に設定してステップS400〜S560の処理を繰り返し、次のテクスチャー領域がないときには各テクスチャー領域毎に切り抜いた各平面を組み合わせ(ステップS570)、これを列(y座標方向)毎にx座標方向に順次走査し(ステップS580)、これにより得られる始点a、傾きΔa、長さlを保存して(ステップS590)、本処理を終了する。当該保存された始点a、傾きΔa、長さlを示す情報が線形圧縮された座標Xt(x,y)あるいは座標Yt(x,y)を示す情報となる。図15に、線形圧縮の様子を示す。線形圧縮は、図示するように、走査ラインs1に対して始点a0,a1,a2と傾きΔa0,Δa1,Δa2と長さl0,l1,l2を求めてこれを各走査ラインs2,s3・・毎に繰り返し、結果を保存することにより行なわれる。
コンピューター20の圧縮処理部38により圧縮された画像描画情報(バイアスBc,(x,y),ゲインGc,t(x,y),座標Xt(x,y),Yt(x,y))および変数It(x,y)はビューワー40の記憶部41に記憶され、ビューワー40の展開処理部44により線形圧縮した座標Xt(x,y),Yt(x,y)については線形圧縮用の解凍処理によりJPEG圧縮したバイアスBc,t(x,y),ゲインGc,t(x,y)についてはJPEG解凍処理によりそれぞれ解凍した上で描画処理部46による描画処理に用いられる。描画処理部46では、メモリーカードMCに記憶されている写真などの複数の画像データを差し替え用テクスチャーとして読み込むと共に次式(12)を用いてレンダリング済み画像に合成して順次描画することにより、テクスチャーを差し替えながら3次元モデルのレンダリング済み画像を表示するスライドショー再生を行なうことができる。ここで、式(12)中の「Uc,It(x,y)(Xt(x,y),Yt(x,y))」は色成分c,テクスチャー番号iにおける差し替え用テクスチャーの座標(X,Y)の階調値(0.0〜1.0)を示し、「Pc,t(x,y)」は色成分c,フレーム番号tにおける表示画像(レンダリング済み画像)の座標(x,y)の階調値(0.0〜1.0)を示す。式(12)に示すように、表示画像の階調値Pc,t(x,y)の設定は、変数It(x,y)が値0でないテクスチャー配置領域に対しては表示画像の座標(x,y)に対応する差し替え用テクスチャーの座標(Xt(x,y),Yt(x,y))の階調値にゲインGc,t(x,y)を乗じてバイアスBc,t(x,y)を加えたものを設定することにより行なわれる。図16にテクスチャー番号が1〜3の3つの差し替え用テクスチャーを示し、図17にレンダリング済み画像に図16の差し替え用テクスチャーを配置して描画する様子を示す。前述したように、座標Xt(x,y),Yt(x,y)として線形圧縮により圧縮したものを用いているから、比較的高い圧縮率でデータ量を抑えながら差し替え用テクスチャーを配置したときの画像の歪みを抑制することができる。
以上説明した実施例の画像処理方法によれば、3次元モデルに特殊テクスチャーを貼り付けてレンダリングすると共にレンダリング済み画像を解析することにより得られる画像描画情報の一つとしての座標(x,y)とテクスチャーの座標(X,Y)との対応関係を示す画像描画情報(Xt(x,y),Yt(x,y))を線形圧縮方式により圧縮するため、全体の画質の劣化を抑制しながら高い圧縮率によりデータを圧縮することができる。また、コンピューター20側では、座標(X,Y)を2進数表現したときの各ビットの値に対応するx座標用の縦縞模様のパターンとy座標用の横縞模様のパターンとを特殊テクスチャーとして3次元モデルに貼り付けてレンダリングし、レンダリングによりビットマップ画像として得られたレンダリング済み画像を解析することによりレンダリング済み画像の座標(x,y)とテクスチャーの座標(Xt(x,y),Yt(x,y))との対応関係を設定して画像描画情報として保存し、ビューワー40側でレンダリング済み画像を用いて画像を表示するときには、予め記憶した画像描画情報によりテクスチャーの座標(Xt(x,y),Yt(x,y))の階調値に基づいて表示画像の座標(x,y)に描画するから、3次元モデルのレンダリング済み画像をテクスチャーを自由に差し替えて再生することができると共にリアルタイムで3次元モデルをレンダリングして表示するものに比して処理負担を少なくすることができる。しかも、ゲインGc,t(x,y)やバイアスBc,t(x,y)を用いてテクスチャーの階調値を変換して表示画像の階調値を設定するから、3次元モデルをレンダリングしたときの屈折光や鏡面反射,影などの影響も反映させることができる。さらに、座標の対応関係を特定するための特殊テクスチャーとして交番2進数に対応する縦縞模様のパターンと横縞模様のパターンとを形成するから、隣接する座標に移行する際には常に1ビットの変化となり、画像の階調値の誤差に起因して誤ったデータが取得されてしまうのを抑制することができる。
本実施形態では、座標Xt(x,y),Yt(x,y)を線形圧縮方式により圧縮するものとしたが、これに限定されるものではなく、バイアスBc,t(x,y)やゲインGc,t(x,y)を線形圧縮により圧縮するものとしても良い。また、線形圧縮対象となる座標系がx−y座標系であっても良い。すなわち、座標の対応関係をxt(X,Y),yt(X,Y)と規定し、X-Y平面上での高さxtやyt等を三角形分割を利用した線形近似にて表現する構成であっても良い。また、上述のJPEG圧縮方式に代えて他の圧縮方式たとえばJPEG2000やGIF,TIFF、デフレート圧縮などの可逆圧縮処理により圧縮するものとしてもよい。
本実施形態では、座標(X,Y)を2進数表現したときの各ビットの値に対応するx座標用の縦縞模様のパターンとy座標用の横縞模様のパターンとをテクスチャーとして用いて3次元モデルに貼り付けてレンダリングすると共にレンダリング結果を解析することにより画像描画情報を生成するものとしたが、用いるパターンはこれに限られず、x座標方向(横方向)に濃淡(階調値)が徐々に変化するパターンとy座標方向(縦方向)に濃淡が徐々に変換するパターンとを用いるものとしてもよい。この場合、前述した式(3)により得られるセット番号(n+2)〜(n+b+1)の縦縞模様のパターンに代えて次式(13)により得られるセット番号(n+2)の1つのパターンを用いると共に式(4)により得られるセット番号(n+b+2)〜(n+2b+1)の横縞模様のパターンに代えて次式(14)により得られるセット番号(n+3)の1つのパターンを用いるものとすればよい。
式(13)のパターンと式(14)のパターンとを用いる場合、座標の対応関係の設定は、次式(15)により求めることができる。図18に特殊テクスチャーの一例を示し、図19に図18の特殊テクスチャーを3次元モデルに貼り付けてレンダリングする様子を示す。これにより、生成すべき特殊テクスチャーの数を減らすことができる。
本実施形態では、対象セット番号iが値(n+2)〜値(n+b+1)の縦縞模様パターンの特殊テクスチャーを座標を交番2進数表現したときに各ビットの値に対応するものとすると共に対象セット番号iが値(n+b+2)〜値(n+2b+1)の横縞模様パターンの特殊テクスチャーを座標を交番2進数表現したときの各ビットの値に対応するものとしたが、これらのパターンを、座標を一般の2進数表現したときに各ビットの値に対応するものとして生成するものとしてもよい。この場合の特殊テクスチャーの一例を図20に示す。
本実施形態では、ビューワー40により画像を再生するものとしたが、画像を再生できる機器であれば、液晶画面付きの携帯電話やプリンターなど如何なる機器を用いるものとしても構わない。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。