(57)【特許請求の範囲】
【請求項１】
ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を備える画像処理装置であって、
前記グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力する座標値入力部、
前記座標値入力部から入力されるデータに基づいて前記グラデーション発生部によって発生される前記ポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出す座標値読出部、
前記座標値読出部によって読み出された前記ポリゴンの各ピクセルの座標値と特定点の座標値との距離を求める距離算出部、および
前記距離算出部で求められた距離に応じて、前記ポリゴンの各ピクセルの色データを決定する色データ決定部を備える、画像処理装置。
【請求項２】
前記座標値入力部は、前記グラデーション発生部が処理可能な色データの範囲内に収まるように、前記ポリゴンの各頂点の座標値を所定値で割った値を前記グラデーション発生部に対して入力し、
前記距離算出部は、前記特定点の座標値を前記所定値で割った値を前記特定点の座標値とみなして、距離を算出することを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記特定点が光源の位置である場合、
前記色データ決定部は、前記光源の輝度を基準として、前記距離算出部で求められた距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする、請求項１又は２に記載の画像処理装置。
【請求項４】
前記特定点がカメラの位置である場合、
前記色データ決定部は、前記カメラの位置を基準として、前記距離算出部で求められた距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする、請求項１又は２に記載の画像処理装置。
【請求項５】
ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を用いた画像処理方法であって、
前記グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力するステップ、
前記入力されるデータに基づいて前記グラデーション発生部によって発生される前記ポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出すステップ、
前記読み出された前記ポリゴンの各ピクセルの座標値と特定点の座標値との距離を求めるステップ、および
前記求められた距離に応じて、前記ポリゴンの各ピクセルの色データを決定するステップを備える、画像処理方法。
【請求項６】
前記グラデーション発生部が処理可能な色データの範囲内に収まるように、前記ポリゴンの各頂点の座標値を所定値で割った値を前記グラデーション発生部に対して入力するステップをさらに備え、
前記距離を求めるステップは、前記特定点の座標値を前記所定値で割った値を前記特定点の座標値とみなして、距離を算出することを特徴とする、請求項５に記載の画像処理方法。
【請求項７】
前記特定点が光源の位置である場合、
前記決定するステップは、前記光源の輝度を基準として、求められた前記距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする、請求項５又は６に記載の画像処理方法。
【請求項８】
前記特定点がカメラの位置である場合、
前記決定するステップは、前記カメラの位置を基準として、求められた前記距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする、請求項５又は６に記載の画像処理方法。
【請求項９】
ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を用いた画像処理方法を、コンピュータ装置で実行させるためのプログラムであって、
前記グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力するステップ、
前記入力されるデータに基づいて前記グラデーション発生部によって発生される前記ポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出すステップ、
前記読み出された前記ポリゴンの各ピクセルの座標値と特定点の座標値との距離を求めるステップ、および
前記求められた距離に応じて、前記ポリゴンの各ピクセルの色データを決定するステップを含む、プログラム。
【請求項１０】
前記グラデーション発生部が処理可能な色データの範囲内に収まるように、前記ポリゴンの各頂点の座標値を所定値で割った値を前記グラデーション発生部に対して入力するステップをさらに含み、
前記距離を求めるステップは、前記特定点の座標値を前記所定値で割った値を前記特定点の座標値とみなして、距離を算出することを特徴とする、請求項９に記載のプログラム。
【請求項１１】
前記特定点が光源の位置である場合、
前記決定するステップは、前記光源の輝度を基準として、求められた前記距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする、請求項９又は１０に記載のプログラム。
【請求項１２】
前記特定点がカメラの位置である場合、
前記決定するステップは、前記カメラの位置を基準として、求められた前記距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする、請求項９又は１０に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び方法並びにそのプログラムに関し、より特定的には、ポリゴンを用いたグラフィック表現を行う際に、特定点からの距離に応じて色データを決定する画像処理装置及び画像処理方法並びに当該方法を実行するためのプログラムに関する。
【０００２】
【従来の技術】
従来、光源に応じてポリゴン面に陰影を付加する処理は、一般に以下のようにして行われる。
図７は、従来の陰影付け処理を説明するための図である。なお、本明細書においては、座標値を（  ）表記で、色データを［  ］表記で、それぞれ示すことにする。
【０００３】
従来の処理では、まず、光源と処理対象となるポリゴンの各頂点との距離が、それぞれ求められる。図７（ａ）の例では、各座標値（ｘ，ｙ，ｚ）は、光源の座標値が（０，１０，０）であり、ポリゴンの頂点Ａの座標値が（１０，１０，０）、頂点Ｂの座標値が（３０，２０，０）、頂点Ｃの座標値が（３０，０，０）である。従って、光源と頂点Ａとの距離が“１０”、光源と頂点Ｂ及び頂点Ｃとの距離がそれぞれ“３１．６”となる。なお、座標値（Ｉ，Ｊ，Ｋ）と座標値（ｉ，ｊ，ｋ）との２点間距離Ｄは、周知のように以下の式で求められる。
Ｄ＝√｛（Ｉ−ｉ）2 ＋（Ｊ−ｊ）2 ＋（Ｋ−ｋ）2 ｝
【０００４】
次に、上記求められた２点間距離Ｄに応じて、ポリゴンの各頂点の色データ［ｒ，ｇ，ｂ］がそれぞれ決定される。この例では、頂点Ａの色データが白色である［２５５，２５５，２５５］に、頂点Ｂ及び頂点Ｃの色データが共に黒色である［０，０，０］に決定されたものとする。
最後に、ポリゴンの各頂点の色データに基づいてシェーディング処理が行われ、ポリゴン内の各ピクセルの色がそれぞれ補完される。図７（ｂ）は、図７（ａ）に示す条件でシェーディング処理がされたポリゴンを示す図である。図７（ｂ）のように従来のシェーディング処理では、ポリゴン内の各ピクセルの色データが、各頂点間の色データの差分に従って段階的に色表現される。例えば、ポリゴン内の座標値（２０，５，０）の色データは、［ｒ，ｇ，ｂ］＝［１２８，１２８，１２８］となる。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来の処理では、光源との距離に応じてポリゴンの各頂点の色データを求めている。従って、図７（ａ）のように、処理対象となるポリゴンの外側に光源がある場合には何ら問題ないが、ポリゴンの内側に光源がある場合には次のような問題が生じる。
図８（ａ）のように、ポリゴンの内側、特に各頂点から等距離の位置に光源がある場合、光源との距離に応じてポリゴンの各頂点の色データを求めると全て同じデータとなる。このため、この差分がない色データを用いてシェーディング処理を行っても、図８（ｂ）のようにポリゴン全体が頂点と同一の色データとなってしまい、図９に示す実際に表現すべき陰影とは程遠い処理結果となる。
【０００６】
このような場合の対策として、ポリゴンをさらに細かく分割して、この分割されたポリゴン毎に上述の陰影付け処理を行うことが考えられる。しかし、このような画像処理は、装置に大きな負担がかかるので、高性能の大規模なコンピュータ等で行うことは可能であっても、家庭用のパーソナルコンピュータやゲーム機器等で行うことは現実的に難しい。
【０００７】
それ故、本発明の目的は、処理対象となるポリゴンの内側に光源がある場合でも、装置に大きな処理負担をかけることなく、実際の映像に近いポリゴンの陰影付け処理を行うことが可能な画像処理装置及び方法並びにそのプログラムを提供することである。
【０００８】
【課題を解決するための手段および発明の効果】
第１の発明は、ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を備える画像処理装置であって、
グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力する座標値入力部、
座標値入力部から入力されるデータに基づいてグラデーション発生部によって発生されるポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出す座標値読出部、
座標値読出部によって読み出されたポリゴンの各ピクセルの座標値と特定点の座標値との距離を求める距離算出部、および
距離算出部で求められた距離に応じて、ポリゴンの各ピクセルの色データを決定する色データ決定部を備える。
【０００９】
上記のように、第１の発明によれば、ポリゴンの各頂点の座標値に対してシェーディング処理を行うことで得られる各ピクセルの座標値を用い、特定点と各ピクセルとの距離に応じて光源の色やテクスチャの色等を変化させる。これにより、処理対象となるポリゴンの内側に光源がある場合でも、装置に大きな処理負担をかけることなく、実際の映像に近いポリゴンの陰影付け処理を行うことが可能となる。
【００１０】
第２の発明は、第１の発明に従属する発明であって、
座標値入力部は、グラデーション発生部が処理可能な色データの範囲内に収まるように、ポリゴンの各頂点の座標値を所定値で割った値をグラデーション発生部に対して入力し、
距離算出部は、特定点の座標値を所定値で割った値を特定点の座標値とみなして、距離を算出することを特徴とする。
【００１１】
上記のように、第２の発明によれば、ポリゴンの各頂点の座標値を所定値で割って適切な座標値へ丸め込む。これにより、ポリゴンの各頂点の座標値を色データとして取り扱うことができる。
【００１２】
第３の発明は、第１及び第２の発明に従属する発明であって、
特定点が光源の位置である場合、
色データ決定部は、光源の輝度を基準として、距離算出部で求められた距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする。
【００１３】
上記のように、第３の発明によれば、光源との距離に応じてポリゴンの各ピクセルの輝度を変化させるので、光が当たっている様子を表現することができる。
【００１４】
第４の発明は、第１及び第２の発明に従属する発明であって、
特定点がカメラの位置である場合、
色データ決定部は、カメラの位置を基準として、距離算出部で求められた距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする。
【００１５】
上記のように、第４の発明によれば、カメラとの距離に応じてポリゴンの各ピクセルの色をぼかして変化させるので、カメラを視点とした被写界深度を表現することができる。
【００１６】
第５の発明は、ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を用いた画像処理方法であって、
グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力するステップ、
入力されるデータに基づいてグラデーション発生部によって発生されるポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出すステップ、
読み出されたポリゴンの各ピクセルの座標値と特定点の座標値との距離を求めるステップ、および
求められた距離に応じて、ポリゴンの各ピクセルの色データを決定するステップを備える。
【００１７】
第６の発明は、第５の発明に従属する発明であって、
グラデーション発生部が処理可能な色データの範囲内に収まるように、ポリゴンの各頂点の座標値を所定値で割った値をグラデーション発生部に対して入力するステップをさらに備え、
距離を求めるステップは、特定点の座標値を所定値で割った値を特定点の座標値とみなして、距離を算出することを特徴とする。
【００１８】
第７の発明は、第５及び第６の発明に従属する発明であって、
特定点が光源の位置である場合、
決定するステップは、光源の輝度を基準として、求められた距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする。
【００１９】
第８の発明は、第５及び第６の発明に従属する発明であって、
特定点がカメラの位置である場合、
決定するステップは、カメラの位置を基準として、求められた距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする。
【００２０】
第９の発明は、ポリゴンの各頂点の色データに基づいて頂点間がグラデーション表現されるように、当該ポリゴンの各ピクセルの色データを発生するグラデーション発生部を用いた画像処理方法を、コンピュータ装置で実行させるためのプログラムであって、
グラデーション発生部に対して、ポリゴンの各頂点の座標値を色データとして入力するステップ、
入力されるデータに基づいてグラデーション発生部によって発生されるポリゴンの各ピクセルの色データを、各ピクセルの座標値として読み出すステップ、
読み出されたポリゴンの各ピクセルの座標値と特定点の座標値との距離を求めるステップ、および
求められた距離に応じて、ポリゴンの各ピクセルの色データを決定するステップを含む。
【００２１】
第１０の発明は、第９の発明に従属する発明であって、
グラデーション発生部が処理可能な色データの範囲内に収まるように、ポリゴンの各頂点の座標値を所定値で割った値をグラデーション発生部に対して入力するステップをさらに含み、
距離を求めるステップは、特定点の座標値を所定値で割った値を特定点の座標値とみなして、距離を算出することを特徴とする。
【００２２】
第１１の発明は、第９及び第１０の発明に従属する発明であって、
特定点が光源の位置である場合、
決定するステップは、光源の輝度を基準として、求められた距離に応じて、ポリゴンの各ピクセルの輝度を決定することを特徴とする。
【００２３】
第１２の発明は、第９及び第１０の発明に従属する発明であって、
特定点がカメラの位置である場合、
決定するステップは、カメラの位置を基準として、求められた距離に応じて、ポリゴンの各ピクセルの色をぼかして決定することを特徴とする。
【００２４】
【発明の実施の形態】
本発明が提供する画像処理装置及び方法は、ポリゴンによる画像表現を必要とするグラフィックシステムやゲーム機器等に用いられ、それらを構成するＣＰＵやメモリ等と協働して特徴的な処理を行うことで実現される。
以下、この特徴的な処理を行う構成部分を機能ブロックで表現して、本発明が提供する画像処理装置及び方法を説明する。
【００２５】
図１は、本発明の一実施形態に係る画像処理装置を機能ブロックで表現した図である。図１において、本実施形態の画像処理装置は、色データ入力部１１と、グラデーション発生部１２と、距離算出部１３と、色データ決定部１４とを備える。また、図２は、本発明の一実施形態に係る画像処理装置が行う画像処理方法の手順を示すフローチャートである。
なお、以下の説明では、ポリゴンが三角形である場合について記述するが、他の多角形であっても同様に処理することが可能である。
【００２６】
まず、色データ入力部１１は、処理対象となるポリゴンの各頂点の座標値（ｘ０，ｙ０，ｚ０）、（ｘ１，ｙ１，ｚ１）及び（ｘ２，ｙ２，ｚ２）を、所定のメモリ等から読み出す（ステップＳ２０１）。
次に、色データ入力部１１は、グラデーション発生部１２で処理可能な色データの範囲内に収まるように座標値を所定値で割って丸め込みを行い、丸め座標値（Ｘ０，Ｙ０，Ｚ０）、（Ｘ１，Ｙ１，Ｚ１）及び（Ｘ２，Ｙ２，Ｚ２）を求める（ステップＳ２０２）。この処理は、色表現に用いられるデータ範囲が、座標表現に用いられるデータ範囲より小さい場合でも、各頂点の座標値をグラデーション発生部１２において色データとして取り扱えるようにするために行われる。
例えば、座標値が０〜１０２３の範囲で表現され、色データが０〜２５５の範囲で表現されている場合、色データ入力部１１は、座標値をそれぞれ４で割って、丸め座標値（ｘ０／４，ｙ０／４，ｚ０／４）、（ｘ１／４，ｙ１／４，ｚ１／４）及び（ｘ２／４，ｙ２／４，ｚ２／４）を求める。なお、丸め込みを行う必要がない場合には、読み出された座標値（ｘ０，ｙ０，ｚ０）、（ｘ１，ｙ１，ｚ１）及び（ｘ２，ｙ２，ｚ２）が、そのまま以下の処理に用いられることになる。
そして、色データ入力部１１は、求めた丸め座標値を、ポリゴンの各頂点の色データ［Ｘ０，Ｙ０，Ｚ０］、［Ｘ１，Ｙ１，Ｚ１］及び［Ｘ２，Ｙ２，Ｚ２］とみなしてそれぞれ設定し、グラデーション発生部１２へ与える（ステップＳ２０３）。
【００２７】
次に、グラデーション発生部１２は、ポリゴンの各頂点の色データとみなして与えられた丸め座標値に基づいて、上記従来の技術で説明したシェーディング処理を実行し、グラデーション化されたポリゴン内の各ピクセルの色データ［Ｒｍ，Ｇｍ，Ｂｍ］をそれぞれ求める（ステップＳ２０４）。なお、ｍは１〜ピクセル数である。このように、各頂点の色データに代えて座標値でシェーディング処理を実行させることで、この処理により求められた各色データは、ポリゴン内の各ピクセルの座標値（Ｒｍ，Ｇｍ，Ｂｍ）に相当することになる。従って、このグラデーション発生部１２には、従来のグラフィックシステムやゲーム機器にすでに存在する構成、すなわち各頂点の色データから各ピクセルの色データを求める構成（カラーコンバイナ等）を、そのまま使用することができる。
そして、グラデーション発生部１２は、各色データを各ピクセルの座標値として距離算出部１３へ与える（ステップＳ２０５）。
【００２８】
距離算出部１３は、陰影付けの処理基準となる光源位置等の特定点の座標値（ｘ，ｙ，ｚ）を入力し、色データ入力部１１で行われたものと同様の丸め込みを行って、丸め座標値（Ｘ，Ｙ，Ｚ）を求める（ステップＳ２０６）。なお、色データ入力部１１で丸め込みが行われていない場合には、入力される座標値（ｘ，ｙ，ｚ）が、そのまま以下の処理に用いられることになる。
次に、距離算出部１３は、特定点とポリゴンの各ピクセルとの２点間距離Ｄを、座標値に従ってそれぞれ求める（ステップＳ２０７）。なお、この例において、座標値は４以上の値（例えば「８」）で割ってもよい。なお、求めるべき２点間距離Ｄは、従来の技術で述べたように各座標値差分の２乗和を平方根した値であってもよいし、単に各座標値差分の２乗和の値であってもよい。
Ｄ＝√｛（Ｘ−Ｒｍ）2 ＋（Ｙ−Ｇｍ）2 ＋（Ｚ−Ｂｍ）2 ｝又は
Ｄ＝（Ｘ−Ｒｍ）2 ＋（Ｙ−Ｇｍ）2 ＋（Ｚ−Ｂｍ）2
そして、距離算出部１３は、それぞれ求めた２点間距離Ｄを、色データ決定部１４へ出力する。ここで、座標値のうちＸ座標は色データのＲ値として、Ｙ座標は色データのＧ値として、Ｚ座標は色データのＢ値としてグラデーション発生部１２に入力される。なお、座標と色データの対応関係はこの例に限られない。
【００２９】
色データ決定部１４は、特定点の色データを基準として、各頂点を含めたポリゴンの各ピクセルの色データを、２点間距離Ｄに応じて決定する（ステップＳ２０８）。なお、どのようにして色データを決定するかは、グラフィック表現の性能や目的に応じて自由に設定することが可能である。
例えば、（テクスチャカラーｍ）×６５５３６／Ｄｍ等の計算によって、色データをそれぞれ求めればよい。なお、ｍは１〜ピクセル数である。
【００３０】
このように、ポリゴンの各頂点の座標値に本来色データに対して行われる処理を行うことで、ポリゴン内の各ピクセルの座標値を得ることができる。従って、この座標値を用いて特定点と各ピクセルとの距離を求めることができ、図９に示すように、光源からの距離に応じた色データを各ピクセルの位置にそれぞれ設定することができる。
【００３１】
一般に、上述した距離の計算及び色データの決定は、グラフィックシステムやゲーム機器等に内蔵されるカラーコンバイナで行われる。このカラーコンバイナは、所定のパラメータによって決定される計算機能を有している。カラーコンバイナで処理される計算式及び計算回数は、ＣＰＵが実行するプログラムで所定のパラメータを与えることによって設定される。
具体的には、カラーコンバイナにおいて次のような計算が実行されることで、距離の計算及び色データの決定が行われる。なお、カラーコンバイナが行う１回の計算処理を「ステージ」と表現する。
【００３２】
まず、ステージ１〜ステージ４では、Ｘ座標について計算が行われる。
ステージ１では、
各ピクセルの色データ（Ｒ）−特定点の座標値（Ｘ）
となるように計算式が設定される。ここで、各ピクセルの色データ（Ｒ）とは、上記図２のステップＳ２０４で求められた色データ（Ｒ）である。また、この計算式で求められた結果は、レジスタ０に記憶されるように設定される。なお、特定点の座標値（Ｘ）は、座標値（ｘ）を４で割って丸め込んだ値とする（Ｘ＝ｘ／４）。
ステージ２では、
特定点の座標値（Ｘ）−各ピクセルの色データ（Ｒ）
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ１に記憶されるように設定される。
ステージ３では、
レジスタ０の値＋レジスタ１の値
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ２に記憶されるように設定される。これによって、Ｘ座標について、特定点座標と各ピクセル座標との差が求まる。なお、ステージ１及びステージ２の両方の和を求めているのは、カラーコンバイナではマイナス値を使用できず、計算結果がマイナス値の場合に「０」となる理由による。
ステージ４では、
レジスタ２の値×レジスタ２の値
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ３に記憶されるように設定される。これによって、Ｘ座標について、特定点座標と各ピクセル座標との差の２乗が求まる。
【００３３】
次に、ステージ５〜ステージ８では、Ｙ座標について計算が行われる。
ステージ５では、
各ピクセルの色データ（Ｇ）−特定点の座標値（Ｙ）
となるように計算式が設定される。ここで、各ピクセルの色データ（Ｇ）とは、上記図２のステップＳ２０４で求められた色データ（Ｇ）である。また、この計算式で求められた結果は、レジスタ０に記憶されるように設定される。なお、特定点の座標値（Ｙ）は、座標値（ｙ）を４で割って丸め込んだ値とする（Ｙ＝ｙ／４）。
ステージ６では、
特定点の座標値（Ｙ）−各ピクセルの色データ（Ｇ）
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ１に記憶されるように設定される。
ステージ７では、
レジスタ０の値＋レジスタ１の値
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ２に記憶されるように設定される。これによって、Ｙ座標について、特定点座標と各ピクセル座標との差が求まる。
ステージ８では、
レジスタ２の値×レジスタ２の値＋レジスタ３の値
となるように計算式が設定される。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。これによって、「Ｘ座標についての特定点座標と各ピクセル座標との差の２乗」と「Ｙ座標についての特定点座標と各ピクセル座標との差の２乗」との和が求まる。
【００３４】
さらに、ステージ９〜ステージ１２では、Ｚ座標について計算が行われる。
ステージ９では、
各ピクセルの色データ（Ｂ）−特定点の座標値（Ｚ）
となるように計算式が設定される。ここで、各ピクセルの色データ（Ｂ）とは、上記図２のステップＳ２０４で求められた色データ（Ｂ）である。また、この計算式で求められた結果は、レジスタ０に記憶されるように設定される。なお、特定点の座標値（Ｚ）は、座標値（ｚ）を４で割って丸め込んだ値とする（Ｚ＝ｚ／４）。
ステージ１０では、
特定点の座標値（Ｚ）−各ピクセルの色データ（Ｂ）
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ１に記憶されるように設定される。
ステージ１１では、
レジスタ０の値＋レジスタ１の値
となるように計算式が設定される。また、この計算式で求められた結果は、レジスタ２に記憶されるように設定される。これによって、Ｚ座標について、特定点座標と各ピクセル座標との差が求まる。
ステージ１２では、
レジスタ２の値×レジスタ２の値＋レジスタ３の値
となるように計算式が設定される。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。これによって、「Ｘ座標についての特定点座標と各ピクセル座標との差の２乗」と「Ｙ座標についての特定点座標と各ピクセル座標との差の２乗」と「Ｚ座標についての特定点座標と各ピクセル座標との差の２乗」との和（つまり距離の２乗）が求まる。
【００３５】
そして、ステージ１〜ステージ１２の計算によって各々の距離の２乗が求められると、色データを決定する計算が行われる。
ステージ１３では、
任意の定数（例えば２５５）−レジスタ３の値（距離の２乗）
となるように計算式が設定される。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。なお、計算の結果がマイナス値になる場合には「０」となる。これによって、距離が大ききほど小さくなる値を得ることができる。
ステージ１４では、
各ピクセルのテクスチャカラー×レジスタ３の値
となるように計算式が設定される。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。このレジスタ３の値が、最終的に画面に出力される色データとなる。つまり、距離が大ききほど暗い色データが出力されることとなる。
【００３６】
ここで、特定点の座標をカメラの座標とすることで、カメラからピクセルまでの２点間距離Ｄをそれぞれ求めることができる。従って、この２点間距離Ｄの値を用いて、適切なフィルタをかけることにより、被写界深度を実現することができる。図３に、特定点の座標をカメラの座標にした場合の被写界深度表現を実現する手順の一例を示す。
【００３７】
まず、本発明の画像処理装置を用いるシステムに予め内蔵されているフレームバッファから、メモリ内に用意された等倍画像保存用バッファに、１フレーム分の画像データが転送される（ステップＳ３０１）。この画像データを、等倍画像データＡとする。次に、フレームバッファ上で、１フレームサイズより小さい予め定めたサイズのポリゴンに、１フレーム分の画像データが貼り付けられてレンダリングされる（ステップＳ３０２）。このように、１フレーム画像を縮小させた画像を生成することで、解像度が低下して絵が粗くなった（ぼかした感じとなる）画像データを得ることができる。そして、フレームバッファから、メモリ内に用意された縮小画像保存用バッファに、必要な領域分の画像データが転送される（ステップＳ３０３）。この画像データを、縮小画像データＢとする。
次に、等倍画像データについて、上記図２のステップＳ２０１〜Ｓ２０８が実行されて、カメラから各ピクセルまでの２点間距離Ｄがそれぞれ求められる（ステップＳ３０４）。等倍画像保存用バッファの色データ［Ａｒ，Ａｇ，Ａｂ］，縮小画像保存用バッファの色データ［Ｂｒ，Ｂｇ，Ｂｂ］及びこの２点間距離Ｄに基づいて、各ピクセル毎にＲＧＢ成分のそれぞれについて以下の計算が行われ、
Ａｎ×（２５５−Ｄ）／２５５＋Ｂｎ×Ｄ／２５５
（ｎ＝ｒ，ｇ，ｂのそれぞれ）
等倍画像データＡと縮小画像データＢとを混ぜ合わせた実際に表示させる画像データが求められる（ステップＳ３０５）。この混ぜ合わせ（フィルタをかけること）によって、カメラ位置からの距離に応じて色をぼかした色データを、各ピクセルに付加させることができる。
【００３８】
この特定点の座標をカメラの座標とした場合において、上記カラーコンバイナのステージ１３以降で行われる色データを決定する計算を説明する。
ステージ１３では、
任意の定数（例えば２５５）−レジスタ３の値（距離の２乗）
となるように計算式が設定される。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。なお、計算の結果がマイナス値になる場合には「０」となる。これによって、距離が大ききほど小さくなる値を得ることができる。
ステージ１４では、縮小画像の各ピクセルのテクスチャカラーが、レジスタ０に記憶されるように設定される。
ステージ１５では、
（（任意の定数−レジスタ３の値）×等倍画像の各ピクセルの
テクスチャカラー＋レジスタ３の値×レジスタ０の値）／任意の定数
となるように計算式が設定される。なお、この計算式において、任意の定数は、例えば２５５である。また、この計算式で求められた結果は、再びレジスタ３に記憶されるように設定される。このレジスタ３の値が、最終的に画面に出力される色データとなる。
【００３９】
上述した画像処理方法を用いたビデオゲームシステムの構成例を図４に示す。
図４において、画像処理方法は、コプロセッサ４２内で実行される。メモリ４３には、図５のメモリマップで示されるプログラム及びデータが格納される。また、ゲームディスク４７は、ＤＶＤ等の記録媒体であって、図６のメモリマップで示されるプログラム及びデータが格納される。
【００４０】
メモリ４３において、プログラム領域には、ビデオゲームメインユニットを動作させるための基本的なシステムプログラムが格納されている。頂点座標データ領域には、色データ入力部１１が上記図２のステップＳ２０１で読み出すポリゴンの各頂点の座標値が格納される。丸め込み頂点座標データバッファには、色データ入力部１１がステップＳ２０２で丸め込まれたポリゴンの各頂点の座標値が格納される。ポリゴンデータ領域には、１枚のフレーム画像を構成するための、各頂点がどのように接続されるか等の情報が格納される。画像保存用バッファには、上記図３のステップＳ３０１でフレームバッファから転送される等倍画像データＡと、ステップＳ３０３でフレームバッファから転送される縮小画像データＢとが、それぞれ格納される。
ゲームディスク４７において、メインプログラム領域には、ゲームを動作させる基本的なプログラムが格納されている。シェーディング処理プログラム領域には、各頂点の色データに代えて座標値でシェーディング処理を実行させ、ピクセル毎に特定点との距離を求めて色データを決定させるためのプログラム（代入処置や演算処理等）が格納されている。これは、ゲーム毎にどのようなグラフィック表現を行うかが異なるため、ゲーム機器にあっては、ポリゴンの陰影付け処理を実行させるための指示が、ゲームディスク４７から与えられるようにしているためである。その他のプログラム領域には、メインプログラム及びシェーディング処理プログラム以外のプログラムが格納されている。画像データ領域には、ゲームのグラフィック表現に必要なポリゴン及びテクスチャ等に関する様々なデータが格納されている。音データ領域には、ゲームの音表現に関する様々なデータが格納されている。
【００４１】
以上のように、本発明の一実施形態に係る画像処理装置及び方法によれば、ポリゴンの各頂点の座標値に対してシェーディング処理を行うことで得られる各ピクセルの座標値を用い、特定点との距離に応じて各ピクセルの色を変化させる。
例えば、特定点が光源の場合には、距離に応じて色の明るさを変化させ、特定点がカメラ位置の場合には、距離に応じてぼかしをかける。
これにより、処理対象となるポリゴンの内側に光源がある場合でも、装置に大きな処理負担をかけることなく、実際の映像に近いポリゴンの陰影付け処理を行うことが可能となる。また、特定点をカメラ位置とすることで、カメラ視点からの被写界深度表現を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る画像処理装置を機能ブロックで表現した図である。
【図２】本発明の一実施形態に係る画像処理装置が行う画像処理方法の手順を示すフローチャートである。
【図３】特定点の座標をカメラの座標にした場合の被写界深度表現を実現する手順例を示すフローチャートである。
【図４】本発明の一実施形態に係る画像処理方法を用いたゲームシステムの構成例を示すブロック図である。
【図５】図４におけるメモリ４３のメモリマップの一例を示す図である。
【図６】図４におけるゲームディスク４７のメモリマップの一例を示す図である。
【図７】従来の陰影付け処理を説明するための図である。
【図８】従来の陰影付け処理における不具合を説明するための図である。
【図９】図８の光源配置において実際に表現すべき陰影を示す図である。
【符号の説明】
１１…色データ入力部
１２…グラデーション発生部
１３…距離算出部
１４…色データ決定部
４１…メインプロセッサ
４２…コプロセッサ
４３…メモリ
４４…ドライブユニット
４５…表示部
４６…ゲームコントローラ
４７…ゲームディスク
【図１】
0004554834.tif 000002
【図２】
0004554834.tif 000003
【図３】
0004554834.tif 000004
【図４】
0004554834.tif 000005
【図５】
0004554834.tif 000006
【図６】
0004554834.tif 000007
【図７】
0004554834.tif 000008
【図８】
0004554834.tif 000009
【図９】
0004554834.tif 000010