(57)【特許請求の範囲】
【請求項１】
所定の表示画面に表示するための画像データを生成する画像処理装置において、
フレームバッファメモリと、
ぼかし値バッファメモリと、
少なくとも表示画面上の位置情報を含むポリゴン情報を供給され、前記ポリゴン情報から各ピクセルのピクセル属性データを生成し、前記ピクセル属性データから該ポリゴンの領域内のピクセルに対応する第１の画像データを生成して前記フレームバッファに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記ピクセル属性データから前記第１の画像データがその周囲のピクセルに与える影響度の情報をぼかし値として演算して前記ぼかし値バッファメモリに記憶する画像データ生成処理部と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記ぼかし値バッファメモリから読み出した周囲のピクセルのぼかし値に従って演算処理して前記表示画面に表示するための第２の画像データを生成するぼかし処理部とを有することを特徴とする画像処理装置。
【請求項２】
請求項１において、前記ぼかし処理部は、前記フレームバッファメモリと表示装置への出力端子との間に設けられ、演算処理して生成した前記第２の画像データを前記表示装置への出力端子から出力することを特徴とする画像処理装置。
【請求項３】
請求項１または２において、
前記ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの奥行きを示すＺ値を含み、前記画像データ生成処理部は前記ピクセル属性データとして前記表示画面に表示されるポリゴン内のピクセル単位のＺ値を生成し、
該画像処理装置は更に、該Ｚ値を記憶するＺ値バッファメモリを有し、
前記ぼかし処理部は、対象となるピクセルと周囲のピクセルとのＺ値を比較し、該対象のピクセルが後方に位置する場合に、前記周囲のピクセルのぼかし値に従って演算処理を行なうことを特徴とする画像処理装置。
【請求項４】
請求項１または２において、
前記ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの前後の度合いを規定するＺ値を含み、前記画像データ生成処理部は前記ピクセル属性データとして前記表示画面に表示されるポリゴン内のピクセル単位のＺ値を生成し、
該画像処理装置は更に、該Ｚ値を記憶するＺ値バッファメモリを有し、
更に、前記画像データ生成処理部は、各ピクセルのＺ値と前記表示画面に表示される被写界深度とのずれに従ってその周辺のピクセルに与える影響度を前記ぼかし値として演算することを特徴とする画像処理装置。
【請求項５】
請求項１または２において、前記画像データ生成処理部は、前記ピクセル属性データとして各ピクセルの速度ベクトルを生成し、更に、該ピクセルの速度ベクトルに従ってその周辺のピクセルに与える影響度が決定されることを特徴とする画像処理装置。
【請求項６】
請求項１または２において、
前記ポリゴン情報に輝度情報あるいは輝度を決定するための情報が含まれ、前記画像データ生成処理部は、前記ピクセル属性データとして各ピクセルの輝度情報を生成し、
更に、画像データ生成処理部は、該ピクセルの輝度情報が所定値を越える場合は、その輝度情報に従ってその周辺のピクセルに与える影響度を前記ぼかし値として演算することを特徴とする画像表示装置。
【請求項７】
請求項１または２において、
前記ポリゴン情報にポリゴンの透明度の情報あるいは透明度を決定するための情報が含まれ、前記画像データ生成処理部は、半透明のポリゴンに対してその後方に位置するポリゴンを重ねた前記画像データを生成し、
更に、画像データ生成処理部は、該後方のポリゴン内のピクセルに対して当該透明度の情報に従ってその周辺に与える影響度を前記ぼかし値として演算することを特徴とする画像処理装置。
【請求項８】
所定の表示画面に表示するための画像データを生成する画像処理方法において、
少なくとも表示画面上の位置情報を含むポリゴン情報にもとづいて該ポリゴンの領域内のピクセル毎にピクセル属性データを生成し、前記ピクセル属性データからピクセル毎に第１の画像データを生成してフレームバッファメモリに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記ピクセル属性データから前記第１の画像データがその周囲のピクセルに与える影響度の情報をぼかし値として所定のピクセル単位で演算してぼかし値バッファメモリに記憶するレンダリング工程と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記ぼかし値バッファメモリから読み出した周囲のピクセルのぼかし値に従って演算処理して前記表示画面に表示するための第２の画像データを生成するぼかし処理工程とを有することを特徴とする画像処理方法。
【請求項９】
請求項８において、
前記ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの前後の度合いを規定するＺ値を含み、
前記レンダリング工程は、前記ピクセル属性データとして前記表示画面に表示されるポリゴン内のピクセル単位のＺ値を生成し、該Ｚ値をＺ値バッファメモリに記憶し、
前記ぼかし処理工程は、対象となるピクセルと周囲のピクセルとのＺ値を比較し、該対象のピクセルが後方に位置する場合に、前記周囲のピクセルのぼかし値に従って演算処理を行なうことを特徴とする画像処理方法。
【請求項１０】
請求項８において、
前記ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの前後の度合いを規定するＺ値を含み、
更に、前記レンダリング工程は、前記ピクセル属性データとして前記表示画面に表示されるポリゴン内のピクセル単位のＺ値を生成し、該Ｚ値をＺ値バッファメモリに記憶する工程と、
各ピクセルのＺ値と前記表示画面に表示される被写界深度とのずれに従ってその周辺のピクセルに与える影響度を前記ぼかし値として演算する工程とを含むことを特徴とする画像処理方法。
【請求項１１】
請求項８において、前記レンダリング工程は、前記ピクセル属性データとして各ピクセルの速度ベクトルを生成し、該ピクセルの速度ベクトルに従ってその周辺のピクセルに与える影響度を決定する工程を含むことを特徴とする画像処理方法。
【請求項１２】
請求項８において、
前記ポリゴン情報に輝度情報あるいは輝度情報を決定するための情報が含まれ、
更に、前記レンダリング工程は、前記ピクセル属性データとして各ピクセルの輝度情報を生成し、該ピクセルの輝度情報が所定値を越える場合は、その輝度情報に従ってその周辺のピクセルに与える影響度を前記ぼかし値として演算する工程を含むことを特徴とする画像表示方法。
【請求項１３】
請求項８において、
前記ポリゴン情報にポリゴンの透明度の情報あるいは透明度を決定するための情報が含まれ、
更に、前記レンダリング工程は、前記ピクセル属性データとして各ピクセルの透明度の情報を生成し、半透明のポリゴンに対してその後方に位置するポリゴンを重ねた前記画像データを生成し、該後方のポリゴン内のピクセルに対して当該透明度の情報に従ってその周辺に与える影響度を前記ぼかし値として演算する工程を含むことを特徴とする画像処理方法。
【請求項１４】
所定の表示画面に表示するための画像データを生成する画像処理装置において、
Ｚ値バッファメモリと、
フレームバッファメモリと、
ぼかし値バッファメモリと、
少なくとも表示画面上の位置情報を含むポリゴン情報を供給され、前記ポリゴン情報から各ピクセルのピクセル属性データを生成し、前記位置情報に含まれる該表示画面における該ポリゴンの前後の度合いを規定するＺ値により該ポリゴン内のピクセル単位のＺ値を前記ピクセル属性データの一つとして生成して前記Ｚ値バッファメモリ内に記憶し、前記ピクセル属性データから該ポリゴンの領域内のピクセルに対応する第１の画像データを生成して前記フレームバッファメモリに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記ピクセル属性データから前記第１の画像データがその周囲のピクセルに与える影響度の情報をぼかし値として演算しピクセル単位で前記ぼかし値バッファメモリに記憶する画像データ生成処理部と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記ぼかし値バッファメモリから読み出した周囲のピクセルのぼかし値に従って演算処理して前記表示画面に表示するための第２の画像データを生成するぼかし処理部とを有し、
前記ぼかし処理部は、対象となるピクセルと周囲のピクセルとのＺ値を比較し、該対象のピクセルが後方に位置する場合に、前記周囲のピクセルのぼかし値に従って演算処理を行なうことを特徴とする画像処理装置。
【請求項１５】
所定の表示画面に表示するための画像データを生成する画像処理装置において、
Ｚ値バッファメモリと、
フレームバッファメモリと、
ぼかし値バッファメモリと、
該表示画面における頂点座標、頂点のＺ値及びテクスチャ座標を少なくとも有するポリゴンデータを供給され、前記ポリゴンデータから各ピクセルの座標、Ｚ値及びテクスチャ座標を含むピクセル属性データを生成し、前記Ｚ値を前記Ｚ値バッファメモリに記憶し、前記テクスチャ座標に従ってテクスチャバッファメモリから読み出したテクスチャデータから該ポリゴンの領域内のピクセルに対応するカラーデータを含む第１の画像データを生成して前記フレームバッファメモリに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記ピクセル属性データから前記第１の画像データがその周囲のピクセルに与える影響度の情報をぼかし値として演算してピクセル単位で前記ぼかし値バッファメモリに記憶するレンダリング処理部と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記ぼかし値バッファメモリから読み出した周囲のピクセルのぼかし値に従って演算処理して前記表示画面に表示するための第２の画像データを生成するぼかし処理部とを有し、
前記ぼかし処理部は、対象となるピクセルと周囲のピクセルとのＺ値を比較し、該対象のピクセルが後方に位置する場合に、前記周囲のピクセルのぼかし値に従って演算処理を行なうことを特徴とする画像処理装置。
【請求項１６】
所定の表示画面に表示するための画像データを生成する画像処理装置において、
フレームバッファメモリと、
エフェクト値バッファメモリと、
少なくとも表示画面上の位置情報を含むポリゴン情報を供給され、前記ポリゴン情報から各ピクセルのピクセル属性データを生成し、前記ピクセル属性データから該ポリゴンの領域内のピクセルに対応する第１の画像データを生成して前記フレームバッファメモリに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記第１の画像データに所定のエフェクト処理を施すことを示すエフェクト値をピクセル毎に生成して前記エフェクトバッファメモリに記憶する画像データ生成処理部と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記エフェクト値バッファメモリから読み出したエフェクト値に従って前記エフェクト処理をして前記表示画面に表示するための第２の画像データを生成し、表示装置に供給するエフェクト処理部とを有することを特徴とする画像処理装置。
【請求項１７】
請求項１６において、
前記所定のエフェクト処理は、遠景に対する揺らぎ処理であり、
前記ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの奥行きを示すＺ値を含み、前記画像データ生成処理部は前記ピクセル属性データとして前記表示画面に表示されるポリゴン内のピクセル単位のＺ値を生成し、
該画像処理装置は更に、該Ｚ値を記憶するＺ値バッファメモリを有し、
前記エフェクト処理部は、対象となるピクセルのＺ値が所定の閾値を超えている場合に、前記エフェクト値に従って前記揺らぎ処理を行うことを特徴とする画像処理装置。
【請求項１８】
所定の表示画面に表示するための画像データを生成する画像処理方法において、
少なくとも表示画面上の位置情報を含むポリゴン情報にもとづいて該ポリゴンの領域内のピクセル毎にピクセル属性データを生成し、前記ピクセル属性データからピクセル毎に第１の画像データを生成してフレームバッファメモリに記憶し、前記ピクセル属性データを生成してから前記第１の画像データを前記フレームバッファに記憶するまでの期間に前記第１の画像データに所定のエフェクト処理を施すことを示すエフェクト値をピクセル毎に生成してエフェクトバッファメモリに記憶するレンダリング工程と、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記エフェクト値バッファメモリから読み出したエフェクト値に従ってエフェクト処理して前記表示画面に表示するための第２の画像データを生成し、表示装置に供給するエフェクト処理工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータによる画像処理にかかり、特にピントズレや高速に移動する物体の残像等に対するぼかしの効果を与えるためのぼかし処理を行なうことができる画像処理装置およびその方法に関する。
【０００２】
【従来の技術】
シミュレーション装置やゲーム装置等で、コンピュータを利用した画像処理技術が利用される。通常、シミュレーションやゲームをコンピュータプログラムで提供し、操作者の操作に従って画像の各オブジェクトを移動させて、また表示画面の視点位置、視野角等を変更させてモニターテレビ等の表示装置に表示する。
【０００３】
その場合、例えば、コンピュータプログラムに従って演算処理して得られたオブジェクトの位置情報をもとにして三次元座標から二次元座標への透視変換を行なって表示画面上の位置座標を求め、その位置座標の情報と各オブジェクトの表面の色や模様等のテクスチャデータとからレンダリング処理（塗りつぶし処理）によりピクセル単位のカラー情報を含む画像データを求め、フレームバッファメモリに書き込んでいる。フレームバッファメモリに書き込まれたピクセル単位のカラーデータはＤ／Ａ変換されてモニタ−テレビ等に表示される。
【０００４】
上記の通り、主な画像処理にはオブジェクトを構成する複数のポリゴンの位置についての変換をおこなう処理と、そのポリゴンの領域に対して色の塗りつぶしであるレンダリング処理を経て、ピクセル（画素）単位の画像データが求められフレームバッファメモリに記憶される。これらの処理はそれ自体で多くの演算処理が必要である。
【０００５】
【発明が解決しようとする課題】
一方、コンピュータによる画像処理によって出力される画像は、通常全てのオブジェクトがぼかしのない焦点が合った鮮明な画像であり、各オブジェクトの種類、動き、位置等によってはぼかした状態のほうがより現実に近い場合がある。例えば、遠近感を出すためには、単なる透視変換により近くの物は大きく遠くの物は小さくというだけではなく、被写界深度に応じて焦点近くの物は鮮明で焦点から外れた物はぼかしがあるほうがより好ましい。また、高速で移動している物に対しては、所謂モーションブラ（Motion Blur)と呼ばれる物の後方の残像に該当するぼかしがあるほうが好ましい。また、非常に明るい輝度を持つ光源やそれが強く照射されるオブジェクトの場合も、その周囲にぼかしがあるほうがより現実的であり、更に半透明のガラスの反対側の画像についてはぼかしがあるとその半透明の感じを良く表現することができる。或いは、ゲームの進行上特定のオブジェクトまたはポリゴンに対しては常にぼかしを入れることが効果的である場合もある。
【０００６】
このように、ポリゴンに対してぼかしの処理を入れることで、表示される画像がより現実的になったりまたはより効果的になったりする。
【０００７】
従来では、ぼかし処理としては、例えば空間的に複数枚の画像データを少しづつずらして重ね合わせることが行なわれている。あるいは、時間的にずらした複数枚の画像データを重ね合わせることが行なわれている。しかしながら、このように複数枚の画像データを作成することは、非常に長い画像処理時間を要し、通常の動きを画面に再現しながら行なうには、処理時間が足りないという問題点がある。
【０００８】
そこで、本発明では、従来から一般的に行なわれている画像処理をそのまま利用しながら最低限の処理を追加するだけでぼかしの処理を行なうことができる画像処理装置及びその方法を提供することにある。
【０００９】
【課題を解決するための手段】
上記の目的は、本発明によれば、所定の表示画面に表示するための画像データを生成する画像処理装置において、
少なくとも表示画面上の位置情報を含むポリゴン情報を供給され、該ポリゴンの領域内のピクセルに対応する第１の画像データを生成する画像データ生成処理部と、
前記第１の画像データを記憶するフレームバッファメモリと、
前記第１の画像データがその周囲のピクセルに与える影響度の情報をぼかし値として所定のピクセル単位で記憶するぼかし値バッファメモリと、
前記フレームバッファメモリから読み出した前記第１の画像データを、前記ぼかし値バッファメモリから読み出した周囲のピクセル前記ぼかし値に従って演算処理して前記表示画面に表示するための画像データを生成するぼかし処理部とを有することを特徴とする画像処理装置及びその方法を提供することによって達成される。
【００１０】
更に、ポリゴン情報に含まれる位置情報に、該表示画面におけるポリゴンの奥行きを示すＺ値を含み、前記画像データ生成処理部によって前記表示画面に表示されるポリゴン内のピクセル単位のＺ値が生成され、該画像処理装置は更に、該ピクセル単位のＺ値を記憶するＺ値バッファメモリを有し、更に、各ピクセルのＺ値と前記表示画面に表示される被写界深度とのずれに従ってその周辺のピクセルに与える影響度が決定される。
【００１１】
また、前記画像データ生成処理部は、各ピクセルの速度ベクトルを生成し、該ピクセルの速度ベクトルに従ってその周辺のピクセルに与える影響度が決定される。
【００１２】
また、ポリゴン情報に輝度情報あるいは輝度を決定するための情報が含まれ、前記画像データ生成処理部は、各ピクセルの輝度情報を生成し、該ピクセルの輝度情報が所定値を越える場合は、その輝度情報に従ってその周辺のピクセルに与える影響度が決定される。
【００１３】
また、ポリゴン情報にポリゴンの透明度の情報あるいは透明度を決定するための情報が含まれ、前記画像データ生成処理部は、半透明のポリゴンに対してその後方に位置するポリゴンを重ねた前記画像データを生成し、該後方のポリゴン内のピクセルに対して当該透明度の情報に従ってその周辺に与える影響度が決定される。
【００１４】
上記の如く、ぼかし値バッファメモリを設けて、各所定のピクセル単位で、その周囲のピクセルに与える影響度を示すデータを書き込んでおく。そして、フレームバッファメモリから読みだされる画像データとそのぼかし値である影響度から表示する画像データを演算する。従って、フレームバッファメモリへの画像の描画は一回だけで良く、効率的にぼかし処理を行なうことができる。尚、ぼかし値バッファメモリは、各ピクセル単位であるいはＮ2 （Ｎは整数）個のピクセルを単位でデータを記録すれば良い。
【００１５】
更に、本発明では、上記の画像処理装置において、前記ぼかし処理部は、フレームバッファメモリと表示装置への出力端子との間に設けられ、ぼかし処理部により生成される画像データは、そのまま表示装置に供給される。従って、フレームバッファメモリへの画像データの書き込みとは独立してぼかし処理を行いながら表示装置に画像データを供給することができる。
【００１６】
更に、本発明は、所定の表示画面に表示するための画像データを生成する画像処理装置において、少なくとも表示画面上の位置情報を含むポリゴン情報を供給され、該ポリゴンの領域内のピクセルに対応する第１の画像データを生成する画像データ生成処理部と、前記第１の画像データを記憶するフレームバッファメモリと、前記第１の画像データに所定のエフェクト処理を施すことを示すエフェクト値をピクセル単位で記憶するエフェクト値バッファメモリと、前記フレームバッファメモリから読み出した前記第１の画像データを、前記エフェクト値バッファメモリから読み出したエフェクト値に従って前記エフェクト処理をして前記表示画面に表示するための第２の画像データを生成し、表示装置に供給するエフェクト処理部とを有することを特徴とする。
【００１７】
上記の発明では、ぼかし処理に限定されずに、例えば砂漠や熱帯草原の如き環境における遠景に対する揺らぎ処理などの一般的なエフェクト処理を行う場合に、フレームバッファメモリの画像データが表示装置に出力されるところで、エフェクト処理部により所定のエフェクト処理を加えた画像データを生成し、そのまま表示装置に供給することができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しつつ説明する。しかしながら、本発明の技術的な範囲がかかる実施の形態に限定されるものではない。
【００１９】
［ぼかし処理］
図１は、ぼかし処理を説明するための画像の一例を示す図である。この例では、表示画面１００内にオブジェクトとして、ビル１１０、道路１１２、走行する車１１４、道路１１２の遠方に設けられたゴールを示すゲート１１６、更に遠方の山１１９及び太陽１１８が含まれる。また、ビル１１０の前方の壁には半透明のガラス面１１１が設けられ、その中の人１１３が透けて映し出されている。
【００２０】
このような例の場合に、より現実的に画像を表示するためには、次の部分にぼかしが加えられることが望ましい。
（１）カメラの焦点が合っているビル１１０と焦点より遙か遠方に位置するゴール１６との間の遠近感を表すために、ビル１１０は鮮明にし、ゴール１６はぼかし処理が加えられる点である。
（２）高速に移動する車１１４の後方部分も所謂モーションブラの残像を表現するためにぼかし処理が加えられる。
（３）非常に輝度が高い太陽１１８自身あるいはその光が照射されて高い輝度をもつオブジェクト（図示せず）もその回りにぼかし処理が加えられることが効果的である。
（４）半透明のガラス面１１１の反対側の人１１３に対してもぼかし処理を加えることが考えられる。
（５）道路１１２が遠方に延びていく部分１１５についても、意図的にぼかし処理を入れて効果的に表現する場合もある。
【００２１】
以上のようにぼかし処理といっても、最終的に表示される画像に対して設計者がどのような効果を加えたいかという意図によって様々な態様が考えられるが、通常必要とされるぼかし処理は、上記したような５つの態様が大部分であり、それらを満足することが必要である。
【００２２】
［画像処理装置の概略］
図２は、上記のようなぼかし処理を行なうことができる画像処理装置のブロック図である。その構成について以下概略的に説明する。１は、シミュレーション用またはゲーム用のコンピュータプログラムを実行するＣＰＵであり、画像処理に必要なオブジェクトを構成するポリゴンデータや表示画面の視点情報等を生成する制御装置である。ＣＰＵ１は図示しないバスを介して演算用に使用されるＲＡＭ、上記コンピュータプログラムやオブジェクトデータ等が格納されているＲＯＭ及び入出力部に接続される。そして、ＣＰＵ１は、データバッファ２にそのポリゴンデータ等を書き込んで後段のジオメトリ処理部３２やレンダリング処理部３４に画像処理を行なわせる。
【００２３】
３２は、ジオメトリ処理部であり、ポリゴンデータに対して三次元座標空間内のポリゴンの配置変換の演算を行い、表示画面の二次元座標への透視変換を行なう。
【００２４】
３４は、レンダリング処理部であり、主にジオメトリ処理部３２から与えられるポリゴンの頂点座標で画定される領域内のピクセル（画素）に対して、上記の頂点データから種々の属性データを補間法等により演算して求め、テクスチャマップメモリ１４から対応する位置のアドレス領域のデータを読み出し、ピクセル単位の画像データをフレームバッファメモリ１７に記憶する。また、表示画面は二次元座標空間ではあるが、ピクセル間の重ね合わせのために表示画面の最も前面にあるピクセルのＺ値も同時にＺ値バッファメモリ１５に記憶される。
【００２５】
１６は、ぼかし値バッファメモリであり、本発明のぼかし処理を行なうために必要なデータがピクセル単位で又は所定の複数個のピクセル単位で記憶される。このぼかし値バッファ１６へのデータの作成は、主に画像データの生成を行なうレンダリング処理部３４により行なわれる。その点については後で詳述する。
【００２６】
本発明の実施の態様では、フレームバッファメモリ１７内にＲＧＢのカラーデータを含む画像データの書き込みが終了した後、表示装置１９に画像データを手渡す直前で、ぼかし値バッファメモリ１６にピクセル単位で又は所定のピクセル単位で書き込まれたぼかし値に関するデータを利用して、ぼかし処理回路１８にてフレームバッファメモリ１７から読みだされる画像データにぼかし処理を施す。
【００２７】
ぼかし処理回路１８は、フレームバッファメモリ１７から出力される画像データに対して所定のぼかし処理を施して、そのままぼかし処理された画像データを表示装置１９に出力する。従って、ぼかし処理はフレームバッファメモリ１７への書き込み動作とは独立して行われるので、画像データの処理の効率を高くすることができる。
【００２８】
例えば、フレームの周波数が６０Ｈｚの場合には、１／６０秒毎にフレームバッファメモリ１７への画像データの書き込みとぼかし値バッファメモリ１６への書き込み及び、ピクセル単位又は所定のピクセル単位でのぼかし処理が行なわれる。ぼかし処理にかなりの時間がかかることが予想される場合には、フレームバッファメモリ１７とぼかしバッファメモリ１６がそれぞれ２つづつ設けられ、それらの２つのメモリに対してレンダリング処理とぼかし処理とが交互に行なわれる。
【００２９】
［画像処理の詳細説明］
図３は、図２に示した画像処理装置内のぼかし処理回路１８内の詳細ブロック図であり、図４は、その画像処理のフローチャート図である。以下、画像処理について詳細に説明する。
【００３０】
先ず、ＣＰＵ１は、データバッファ２にポリゴンの頂点データと処理モードを指定するレジスタセットファンクションを書き込む（ステップＳ１）。
【００３１】
図５は、上記ポリゴンの頂点データの構成を説明する図である。例えば、この例ではポリゴンが４つの頂点から構成される。そして、各頂点に対して、図示しないポリゴンバッファの座標系の頂点座標、赤（Ｒ），緑（Ｇ），青（Ｂ）と透明度（ａ）を含むカラーデータ、ポリゴンの素材であるテクスチャデータを記憶したテクスチャバッファメモリ１４の座標（アドレス）、ＣＰＵからポリゴン毎に与えられる固有のぼかし値、及び速度ベクトル等のデータが与えられる。また、場合によっては、頂点毎の法線ベクトルが与えられることもある。あるいは、頂点座標の時間的変化が所定の閾値を超えるか否かを演算して速度によるぼかし値を与えるか否かが判定されることもある。
【００３２】
本発明のぼかし処理を行なう為に、上記の速度ベクトルや固有のぼかし値が追加されているのが特徴的である。尚、カラーデータや固有のぼかし値は、ポリゴン毎に同じデータである場合には、頂点毎に持つ必要はない。
【００３３】
このようなポリゴンの頂点データとレジスタセットファンクションが、データロード回路３によって、データバッファメモリ２から順次読みだされ、座標変換回路４に与えられる。
【００３４】
座標変換回路４では、上記したポリゴンバッファ内の座標系から三次元空間内の座標系への変換を行なう為に、頂点データに関しＣＰＵ１から与えられたマトリクス情報に従って３次元空間内へのオブジェクトの配置（変換）が行なわれる。即ち、ポリゴンの平行移動、回転移動等の指令がマトリクス情報としてＣＰＵから与えられ、ジオメトリ処理部３２でその指令に従って配置が行なわれる。具体的には、頂点座標、速度ベクトルが座標変換される（ステップＳ２）。
【００３５】
また座標変換回路４では、視点情報に従って三次元空間内でのビューポートの設定を行なう。或いは、ポリゴンの頂点データが法線ベクトルの属性データを有していない場合には、この座標変換回路４にてポリゴンの傾き等から各頂点の法線ベクトルが演算により求められる。この法線ベクトルは、例えば光の反射方向を求める場合等に後で利用される。
【００３６】
次に、クリッピング回路５では、ビューポート外にある頂点を取り除き、ビューポートの境界部に新たな頂点を生成することで、頂点で画定されるポリゴンが全てビューポート領域内に納まるようにする。これは一般的なクリッピング処理である。
【００３７】
そして、透視変換回路６にて、そのビューポート領域内にある頂点データに対して、三次元座標から表示画面の二次元座標への透視変換が行なわれる。具体的には、頂点の三次元座標、速度ベクトルに対して透視変換が行なわれる。また、表示画面内の奥行きを表すＺ値も同時に生成される（ステップＳ３）。
【００３８】
以上が、ジオメトリ処理部３２内での処理である。これらの処理は、いわゆるパイプライン制御方式により各回路で次々に行なわれる。即ち、システム内のクロックに同期して各回路がポリゴン毎にそれぞれの処理を行なう。
【００３９】
続いてレンダリング処理部３４での処理について説明する。先ず、塗りつぶし回路７にて、二次元座標系に変換された頂点データを基にして、その頂点で画定されるポリゴン領域内のピクセルのデータを演算する（ステップＳ４）。
【００４０】
図６は、そのピクセルのデータの構成例を示す図である。あるポリゴンがピクセル１，２，３で構成されるとする。各ピクセルに対して、属性データとして、座標（ｘ，ｙ）、Ｚ値、テクスチャ座標、法線ベクトル、カラー情報、固有のぼかし値、速度ベクトル等を含む。例えば、ピクセルの座標（ｘ，ｙ）は頂点データ内の座標データから補間法により求めることができる。また、それ以外の属性データについても、頂点データからの補間法により演算で求めることができる。
【００４１】
そして、これ以降の処理は、ピクセル毎に前述したパイプライン制御方式に従って次々に行なわれる。
【００４２】
Ｚ値比較回路８では、Ｚ値バッファメモリ１５内の同じ位置のピクセルに対応する領域に既に書き込まれているＺ値と、処理中のＺ値とを比較することにより陰面処理を行なう（ステップＳ５）。具体的には、Ｚ値バッファメモリ１５内に表示画面内の最も前面（手前）にあるピクセルのＺ値を常に記憶させるようにする。そして、処理中のピクセルのＺ値がＺ値バッファメモリ１５内のＺ値よりも小さいか否かの判断を行い、小さければより手前に位置することを意味する。従ってその場合は処理中のピクセルを表示画面上に表示する必要があり、対応する画像データをフレームバッファメモリ１７の対応する領域に書き込む。従って、フレームバッファメモリ１７内の画像データは、Ｚ値バッファメモリ１５内にそのＺ値が書き込まれたピクセルの画像データ（Ｒ，Ｇ，Ｂデータ等）となる。
【００４３】
そして、テクスチャ発生回路９では、図６のピクセルデータの一つの属性であるテクスチャ座標に従って、テクスチャバッファメモリ１４内のテクスチャデータを読み出し、対応するピクセルでのテクスチャカラーを演算により求める（ステップＳ６）。これは、テクスチャバッファ１４内のデータと表示画面内のピクセルの位置とが必ずしも一対一に対応しないので、かかる演算が行なわれる。
【００４４】
輝度計算回路１０では、光源からの影響に従って処理中のピクセルでの輝度情報の計算が行なわれる（ステップＳ７）。この輝度情報は、例えばオブジェクトに照射される光に従う拡散光（ディフューズドカラー）と、オブジェクト自身が発散する鏡面反射光（スペキュラーカラー）とが含まれる。これらの輝度情報は後に色変調回路１２にて最終的な画像データとしてのカラーデータの演算に利用される。尚、光源データは、ＣＰＵ１から予め与えられている。
【００４５】
次に、ぼかし値生成回路１１では、ピクセルのデータから、処理中のピクセルがその周囲のピクセルに与える影響度を示す値として次の値を演算して求め、ぼかし値バッファメモリ１６にピクセル毎に又は所定のピクセル単位毎に書き込む（ステップＳ８）。
【００４６】
（１）Ｚ値と被写界深度との差（ピントぼかしの値）
（２）速度ベクトル（モーションブラによるぼかしの値）
（３）輝度（光源としてのぼかしの値）
（４）半透明のぼかし値（半透明面の背後のぼかしの値）
（５）ポリゴンに固有のぼかし値（指定されたぼかしの値）
図７は、そのぼかし値バッファメモリ１６内に記憶されるピクセル毎のデータ構成を示す図である。それぞれのピクセルに対し、上記の５つのぼかしに対応する値がぼかし値として演算され与えられる。このぼかし値バッファメモリに記憶するぼかし値は、上記の影響度を示す値ではなく、これらの５つのデータから周囲のピクセルに与える影響度を直接示す重み付け値であっても良い。処理の重さと表示速度とのトレードオフにより、どの段階のぼかし値をぼかし値バッファメモリ１６に格納すべきが決定される。
【００４７】
上記した（１）の値は、両者の差を求める演算により求めることができる。（２）の値は、ピクセルデータからそのまま使用することができる。（３）の値は、輝度計算回路１０で計算された結果を基に、ある程度の輝度の閾値を越えている場合には、そのピクセルは一種の光源であると判断してその程度を示す値が与えられる。（５）の値は、ピクセルデータからそのまま使用できる。
【００４８】
更に上記の（４）の半透明のぼかし値は、処理中のピクセルのカラーデータの一つである透明度ａにより半透明のピクセルであることが判明すると、既に書き込まれているＺ値バッファメモリ１５内のＺ値との差から半透明面からその背後のポリゴンまでの距離を求め、透明度ａとその距離から（４）の半透明のぼかし値が求められる。
【００４９】
色変調回路１２では、テクスチャバッファ１４から読みだしたテクスチャカラーと前記輝度計算回路で求めた拡散光と鏡面反射光とから、輝度情報に従ったピクセルのカラーデータを求める。例えば、テクスチャカラーとは、その素材が１００％明るい所に存在する時の素材の色情報である。従って、次の如き演算式により輝度の影響による色の変調が行なわれる。
【００５０】
カラーデータ＝（テクスチャカラー）×（拡散光）＋（鏡面反射光）
即ち、明るい場所のピクセルであればテクスチャカラーがそのまま表現され、それに鏡面としての反射光が加算されるのである。
【００５１】
更に、色変調回路１２では、霧（フォグ）等の影響も考慮して変調がかけられる。霧の中のＺ値が大きいピクセルに対しては、霧の色がＺ値の大きさに従ってブレンドされる（ステップＳ９）。
【００５２】
ブレンド回路１３では、処理中のピクセルのカラーデータと、既に書き込まれているフレームバッファメモリ１７内のカラーデータとを適宜ブレンドして、ブレンド後のカラーデータがフレームバッファメモリ１７内に書き込まれる（ステップＳ１０）。例えば、ピクセルの透明度ａに従って、半透明のピクセルのカラーデータとその背面にあるピクセルのカラーデータ（フレームバッファメモリに記憶されている）とがブレンドされる。但し、このブレンドされたカラーデータにはぼかし処理は与えられていないので、その境界部分が鮮明のままである。
【００５３】
以上のようにして、ピクセル毎のカラーデータ（ＲＧＢ）がフレームバッファメモリ１７に書き込まれる。但し、このカラーデータは、ぼかしの処理が何ら行なわれていない値である。従って、そのまま表示装置に与えると、ぼかし処理が施されていない非現実的な画像となる。
【００５４】
［ぼかし処理］
次に、上記の処理によりピクセル毎のぼかしの値を記載したぼかし値バッファメモリ１６、ピクセル毎のカラーデータを記憶したフレームバッファメモリ１７及びＺ値バッファメモリ１５を利用して、ぼかし処理回路１８はぼかしのフィルタリングを行い、表示装置１９に表示用のカラーデータを与える。即ち、フレームバッファメモリ１７内のカラーデータに対してぼかし処理を行なうのである（ステップＳ１１）。その後、表示装置１９にて表示される（ステップＳ１２）。
【００５５】
図３は、ぼかし処理回路１８の内部を示すブロック図である。それぞれのバッファメモリ１５，１６，１７からのデータを一旦取り込むキャッシュメモリ２４，２５，２６が設けられている。そして、重み値算出回路２７、Ｚ値比較回路２８及び重み付け平均回路２９が設けられている。
【００５６】
さて、この重み値算出回路では、処理中のピクセルに対して周囲のピクセルからぼかしの程度としてどの程度の重みで影響を受けるかを示す重み値を求める。別の言い方をすると、周囲のピクセルのカラーデータを加算する時の加算の程度を示す値であり、一種のフィルタの値である。
【００５７】
図８及び図９に従って、このフィルタについて説明する。図８には、９個のマトリクス状に並んだピクセルＰ０〜Ｐ８を例にして重み値が示されている。９個のピクセルそれぞれが周囲のピクセルに与えるぼかしの影響度（重み値）が、ＦＰ０〜ＦＰ８として示されている。この例では、一つのピクセルが周囲に与える範囲は、周りの８個のピクセルである。この範囲は、処理速度やぼかしの精度等から任意に設定される。
【００５８】
図８において、例えばピクセルＰ０が周囲に与えるぼかしの影響度は、
ＦＰ０＝（Ｂ00，Ｂ01，Ｂ02，Ｂ03，Ｂ04，Ｂ05，Ｂ06，Ｂ07，Ｂ08）
として求められる。前述した図７に示したぼかし値バッファメモリの値から、周囲のピクセルにどの程度ぼかし込むかの演算が行なわれる。そして、５種類のぼかしの値から累積されるぼかしの影響度が、周囲のピクセルへの重み値として、上記の通り求められる。従って、上記のＢ04は、自分自身への影響度であり通常「１」である。この重み値の演算は、例えば上記の５種類のぼかし値から累積されるぼかしの影響度の大きさに応じて、周囲のピクセルに対して平等にその重み値を与えることで実現できる。但し、速度ベクトルについては、そのベクトルの方向による指向性に従う周囲のピクセルに対して、ベクトルの大きさに従う重み値を与えることで実現できる。
【００５９】
そこで、図８において、各ピクセル毎のフィルタＦＰ０〜８の内、イタリック体で示した重み値（Ｂ08，Ｂ17，Ｂ26，Ｂ35，１，Ｂ53，Ｂ62，Ｂ71，Ｂ80）が、周囲のピクセルからピクセルＰ４に与えられる重み値として求められることになる。図９は、その重み付けのフィルタを示している。
【００６０】
次に、Ｚ値比較回路２８にて、処理中のピクセルのＺ値とその周囲のピクセルのＺ値とが比較される。これは、表示画面中の背後にあるピクセルが前面にあるピクセルに対してはぼかしが発生しないようにする為である。この考え方を図１１により説明する。
【００６１】
図１１は、このＺ値比較回路２８の考え方を説明する図である。図１の表示画面内のビル１１０と遠方にあるゴール１１６との境界部分のピクセルのぼかしの影響度を例にして示す。即ち、ゴール１１６内のピクセルＰｂはビル１１０内のピクセルＰｆの背後に位置している。これは両ピクセルのＺ値を比較することで判別することができる。その場合に、背後にあるピクセルＰｂからのぼかしの影響は前面にあるピクセルＰｆに及ばないように処理する必要がある。
【００６２】
従って、Ｚ値比較回路２８で処理中のピクセルが周囲のピクセルより背後に位置していることが判明すると、その背後のピクセルから前面側のピクセルへの重み値は、例えばゼロ或いは小さい値に置き換えられる。その結果、背後のピクセルＰｂから前面側のピクセルＰｆにぼかしが及ばないようにすることができる。
【００６３】
最後に、上記の重み値からなるフィルタを利用して、重み付け平均回路２９にて、図９に示した様な演算が行なわれる。図１０が、その重み付け平均回路２９の回路例である。この回路例に示される通り、周りのピクセルのそれぞれのカラーデータＣＰ０〜８にそれぞれの重み値Ｂ08〜Ｂ80が積算され、全体を加算した後、平均化される。
【００６４】
尚、前述した通り、図８に示したぼかしの影響度のデータをレンダリング処理部３４内のぼかし値生成回路１１で生成しておき、ぼかし値バッファメモリ１６内に書き込んでおくことでも良い。処理の重さと処理速度とのトレードオフにより適宜設計される。
【００６５】
上記の実施例では、主にぼかし処理について説明した。しかし、本発明はぼかし処理に限定されず、広くエフェクト処理を行う場合にも適用できる。その場合は、図２中のぼかし値生成回路１１はエフェクト値生成回路に、ぼかし値バッファメモリ１６はエフェクト値バッファメモリに、ぼかし処理回路１８はエフェクト処理回路に置き換えられる。
【００６６】
ほかし処理以外のエフェクト処理の例としては、例えば、砂漠や熱帯草原などの高温の環境化において、遠景の画像に揺らぎを与える処理がある。或いは、火事現場における炎の奥の画像に揺らぎを与える処理がある。かかる揺らぎ処理を例にして説明すると、エフェクト値生成回路では、画面に揺らぎ処理を与えるフラグデータがオン状態の時に、そのフラグデータに応じてピクセル毎のエフェクト値が生成される。或いは、表示画面の所定の領域に対して揺らぎ処理を与えるエフェクトデータが与えられる場合は、その領域のピクセルに対してエフェクト値が生成される。そして、かかるエフェクト値は、エフェクト値バッファメモリ１６に記憶される。
【００６７】
フレームバッファメモリ１７から読み出された画像データは、エフェクト処理回路１８にて、エフェクト値バッファメモリ１６内のピクセル毎のエフェクト値に従って、所定のエフェクト処理が施される。例えば、揺らぎ処理を与えるフラグデータにより表示画面に一律に揺らぎ処理が求められる場合は、ピクセルのＺ値が所定の閾値を超える遠景か否かの判定が行われ、その遠景のピクセルの画像データに対して、揺らぎ処理が施される。揺らぎ処理は、例えばピクセルの画像データを隣接するピクセルの位置にずらして、表示画面上では遠景の画像が揺れている様に表示するための処理である。或いは、表示画面内の所定の領域のピクセルに対してエフェクト値が与えられる場合は、その領域のピクセルのＺ値が閾値を超える時に、上記の揺らぎ処理が施される。空気の温度の高さに応じたエフェクト値を生成することで、揺らぎの程度を設定することも可能になる。
【００６８】
上記の揺らぎを与えるフラグデータや、揺らぎ処理を行う領域のデータは、ＣＰＵ１からレンダリング処理部３４に与えられる。
【００６９】
上記した通り、一旦生成され記憶されたフレームバッファメモリ１７内の画像データに対して、その画像データを表示装置に出力する段階で、所定のエフェクト処理を行うエフェクト処理部を設けておけば、リアルタイムにエフェクト処理を行いながら表示装置にエフェクト処理された画像データを供給することができる。
【００７０】
【発明の効果】
以上説明した通り、本発明によれば、フレームバッファの画像データに対して、ぼかし処理を行なうことで、効果的なぼかしを与えた画像データを生成することができる。従って、従来の如く複数枚の絵の画像データを重ね合わせるという面倒な処理を行なうことなく、ぼかし処理された画像データを生成して表示することができる。
【００７１】
更に、本発明によれば、揺らぎ処理などのエフェクト処理部をフレームバッファメモリと表示装置との間に設けることにより、フレームバッファメモリへの書き込みと独立して画像データへのエフェクト処理を与えて表示装置に所定の効果を与えた画像データを供給することができる。
【図面の簡単な説明】
【図１】ぼかし処理を説明するための画像の一例を示す図である。
【図２】ぼかし処理を行なう画像処理装置のブロック図である。
【図３】ぼかし処理回路１８の内部を示すブロック図である。
【図４】画像処理のフローチャート図である。
【図５】ポリゴンの頂点データの構成を説明する図である。
【図６】ピクセルのデータの構成例を示す図である。
【図７】ぼかし値バッファメモリ１６内に記憶されるピクセル毎のデータ構成を示す図である。
【図８】ぼかし値バッファ内のデータ構造例の図である。
【図９】重み付けのフィルタを示す図である。
【図１０】重み付け平均回路の例の構造図である。
【図１１】Ｚ値比較回路２８での処理を説明するための図である。
【符号の説明】
１      ＣＰＵ
３２    ジオメトリプロセッサ
３４    レンダリング処理部（画像データ生成部）
１７    フレームバッファメモリ
１５    Ｚ値バッファメモリ
１６    ぼかし値バッファメモリ
１８    ぼかし処理装置
【図１】
0004291892.tif 000002
【図２】
0004291892.tif 000003
【図３】
0004291892.tif 000004
【図４】
0004291892.tif 000005
【図５】
0004291892.tif 000006
【図６】
0004291892.tif 000007
【図７】
0004291892.tif 000008
【図８】
0004291892.tif 000009
【図９】
0004291892.tif 000010
【図１０】
0004291892.tif 000011
【図１１】
0004291892.tif 000012