(57)【要約】【課題】少ない計算量で良好な描画結果を得ることができる画像処理装置およびその方法を提供する。【解決手段】頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部２１と、頂点情報をラスタライズしてフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部２２と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部２３と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部の出力情報を保持するメモリ部２４と、メモリ部２４に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部２４に保持されている情報に対してフィルタ処理を行う画像処理部２５とを設ける。【選択図】　　　図１
2004054635.tif 000002
【特許請求の範囲】
【請求項１】
頂点単位の演算を行う頂点単位処理部と、
上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とするラスタライズ部と、
上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部の内容に対して画像処理を行う画像処理部と、
を有し、
上記画像処理部は、所定のフィルタ処理パラメータに応じて異なるフィルタ処理を行う
画像処理装置。
【請求項２】
上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項１記載の画像処理装置。
【請求項３】
上記頂点単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する
請求項１記載の画像処理装置。
【請求項４】
上記フラグメント単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する
請求項１記載の画像処理装置。
【請求項５】
上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいて算出される
請求項１記載の画像処理装置。
【請求項６】
上記頂点単位処理部は、上記フィルタ処理パラメータを、法線ベクトルおよび視線ベクトルに基づいて算出する
請求項３記載の画像処理装置。
【請求項７】
上記フラグメント単位処理部は、上記フィルタ処理パラメータを、法線ベクトルおよび視線ベクトルに基づいて算出する
請求項４記載の画像処理装置。
【請求項８】
上記画像処理部は、アンチエイリアスの効果を生ずるフィルタ処理を行う
請求項１記載の画像処理装置。
【請求項９】
上記画像処理部は、毛皮のシェル描画におけるフィルタ処理を行う
請求項１記載の画像処理装置。
【請求項１０】
頂点単位の演算を行い、かつ、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部と、
上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とし、上記フィルタ処理パラメータをラスタライズするラスタライズ部と、
上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部と
を有する画像処理装置。
【請求項１１】
上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項１０記載の画像処理装置。
【請求項１２】
上記頂点単位処理部は、法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する
請求項１０記載の画像処理装置。
【請求項１３】
頂点情報をラスタライズしてフラグメント単位とし、頂点毎に与えられた法線ベクトルおよび視線ベクトルをラスタライズするラスタライズ部と、
上記ラスタライズされた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算し、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記フィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいてフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部と
を有する画像処理装置。
【請求項１４】
上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項１３記載の画像処理装置。
【請求項１５】
上記ラスタライズ部は、法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する
請求項１３記載の画像処理装置。
【請求項１６】
オブジェクトの頂点単位情報をラスタライズしてフラグメント単位とする第１のステップと、
上記フラグメント単位となった情報に基づいた演算処理を行う第２のステップと、
エッジ近傍の度合いを示すフィルタ処理パラメータに応じて上記演算処理情報に対して異なるフィルタ処理を行う第３のステップと
を有する画像処理方法。
【請求項１７】
上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいている
請求項１６記載の画像処理方法。
【請求項１８】
上記フィルタ処理パラメータの算出は、頂点単位処理時に行う
請求項１６記載の画像処理方法。
【請求項１９】
上記フィルタ処理パラメータの算出は、フラグメント単位処理時に行う
請求項１６記載の画像処理方法。
【請求項２０】
上記フィルタ処理は、アンチエイリアスの効果を生ずるフィルタ処理を含む
請求項１６記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックスを実現するための画像処理装置およびその方法に関するものである。
【０００２】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャｔ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ　Ｄｉｆｆｅｒｅｎｔｉａｌ　Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
図１は、従来のリアルタイム３次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図、図２は、図１の画像処理装置の画像処理動作を示すフローチャートである。
【０００９】
この画像処理装置１０は、図１に示すように、頂点単位処理部１１、ラスタライズ部１２、フラグメント単位処理部１３、およびメモリ部１４を有している。
【００１０】
以下、図１の画像処理装置１０における描画処理について、各構成要素の機能と併せて図２のフローチャートに関連付けて説明する。
【００１１】
頂点単位処理部１１は、頂点情報ＶＩを入力し、これに頂点単位の処理を行い、この結果を信号Ｓ１１としてラスタライズ部１２に出力する（ステップＳＴ１）。
ラスタライズ部１２は、処理後の頂点情報Ｓ１１を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号Ｓ１２としてフラグメント単位処理部１３に出力する（ステップＳＴ２）。
フラグメント単位処理部１３は、フラグメント情報Ｓ１２を入力し、これにフラグメント単位の処理を行い、この結果を信号Ｓ１３としてメモリ部１４に出力する（ステップＳＴ３）。
メモリ部１４は、処理後のフラグメント情報Ｓ１３を入力し、これに必要なテストや演算を加えた結果を保持する（ステップＳＴ４）。
最終的にシーンに含まれる全プリミティブの描画が完了したならば終了する。一方、描画が完了していないならばステップＳＴｌから繰り返す（ステップＳＴ５）。
【００１２】
典型的な３次元コンピュータグラフィックスにおいては、ステップＳＴ１の頂点単位処理には座標変換や色計算などの処理が含まれる。また、ステップＳＴ３のフラグメント単位処理にはテクスチャマッピングなどの処理が含まれる。また、ステップＳＴ４の描画処理にはアルファブレンドやデプステストなどの処理が含まれる。
【００１３】
上記の処理はいずれもパイプライン的な構成を用いることにより高スループットを実現することが可能であり、リアルタイムコンピュータグラフィックスに適している。以下ではこれらを描画パイプラインと呼ぶ場合もある。
【００１４】
一方、近年の３次元コンピュータグラフィックスにおいては、描画パイプライン以外の画像処理を用いることにより画質を改善する方法が提案されている。
【００１５】
図３は、従来のリアルタイム３次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図、図４は、図３の画像処理装置の画像処理動作を示すフローチャートである。
【００１６】
この画像処理装置１０Ａは、図１の構成要素である頂点単位処理部１１、ラスタライズ部１２、フラグメント単位処理部１３、およびメモリ部１４に加えて、画像処理部１５を有している。
また、図４のフローチャートにおいては、図２のステップＳＴ１〜ＳＴ５の処理に加えて、画像処理部１５における画像処理のためのステップＳＴ６が追加されている。
【００１７】
基本的には、画像処理装置１０Ａにおいては、シーン全体の描画が完了した後、画面全体に対して何らかの計算を行う。
なお、上記で画面全体と述べた部分は、描画手法によっては画面の一部である場合もあり得る。たとえば画面全体を複数の部分領域に分割して、それぞれを別々に描画するような場合には、画像処理はその部分領域毎に行われる。以下、このような場合も含めた画像処理について述べる。
【００１８】
毛皮の描画処理においては、ウィンドウ座標系での毛の方向をもとに画面全体にフィルタ処理を行うことにより画質を改善する方法がある。
また、画面全体について保持した深さ値をもとにデプスオブフィールド（Ｄｅｐｔｈ　Ｏｆ　Ｆｉｅｌｄ）を実現する方法もある。
これらは画像処理的なアプローチを用いることにより、描画パイプラインを流れる情報を多大に増加させることなく、画質を改善する手法である。
【００１９】
毛皮の描画に際しては、図５に示すように複数のシェルを半透明物体として重ね描きすることによって高速に質感を表現する手法が提案されている。
しかしながら、シェル描画であることによる不連続性がエッジ近傍では増大し、図６に示すように毛が不連続に見えてしまうという問題があった。
これに対して、毛の方向を加味したフィルタを施すことにより、図７（Ａ），（Ｂ）に示すように、毛の不連続性を解消することができる。
【００２０】
Ｄｅｐｔｈ　Ｏｆ　Ｆｉｅｌｄの実現に際しては、深さ値がある値からずれているピクセルほどより大きいカーネルを用いてフィルタ処理を行う。これによりぼけている効果を良好に表現できる。
【００２１】
同様な方法として、画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法もある。
これはフレームバッファに描画された結果に対し、たとえば図８に示すようなフィルタを用いる。ここでは１つのピクセルの色情報を、近傍の複数ピクセルに重み付け加算することによりアンチエイリアスを実現する。
【００２２】
これらの方法はいずれも従来の描画パイプラインを用いた描画処理に、画面全体に施す画像処理を併用することにより画質を向上させるものである。
毛皮の描画あるいはＤｅｐｔｈ　Ｏｆ　Ｆｉｅｌｄの場合は、フィルタ処理のカーネルを選択するためのパラメータを、描画パイプラインを用いて計算していた。一方、上記簡易アンチエイリアスの実現の場合、フィルタカーネルは固定である場合が多い。
【００２３】
【発明が解決しようとする課題】
以上述べたような、描画パイプラインを用いた描画処理に加え、画面全体に画像処理を行う場合、以下のような問題点がある。
【００２４】
毛皮の描画に用いるフィルタ処理の場合、フィルタが必要となるのは多くの場合、オブジェクトのエッジ近傍である。エッジ近傍では大きいカーネルサイズのフィルタ処理が必要であるが、エッジ近傍でなければ不連続性は目立たないため、フィルタ処理は小さいカーネルサイズで十分である。
【００２５】
一般にフィルタ処理は、カーネルサイズが大きいほど演算量も大きくなってしまう。エッジ以外での大きいカーネルサイズでのフィルタ処理は、画質には影響の少ないコストの高い演算を行っていることになる。これは性能の低下を導く。また、上記アンチエイリアスに画像処理を用いる場合、画質的な問題を生ずる。フィルタ処理を行う場合、エッジ近傍を良好にぼかすことは可能であるが、フィルタ処理を行う場合、画面全体を均質にぼかすため、エッジ以外の画像はぼかしすぎてしまうという問題がある。
【００２６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる画像処理装置およびその方法を提供することにある。
【００２７】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点に係る画像処理装置は、頂点単位の演算を行う頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部の内容に対して画像処理を行う画像処理部と、を有し、上記画像処理部は、所定のフィルタ処理パラメータに応じて異なるフィルタ処理を行う。
【００２８】
本発明では、上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
【００２９】
本発明では、上記頂点単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【００３０】
本発明では、上記フラグメント単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【００３１】
本発明では、上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいて算出される。
【００３２】
本発明では、上記画像処理部は、アンチエイリアスの効果を生ずるフィルタ処理を行う。
【００３３】
本発明では、上記画像処理部は、毛皮のシェル描画におけるフィルタ処理を行う。
【００３４】
本発明の第２の観点に係る画像処理装置は、頂点単位の演算を行い、かつ、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とし、上記フィルタ処理パラメータをラスタライズするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【００３５】
本発明の第３の観点に係る画像処理装置は、頂点情報をラスタライズしてフラグメント単位とし、頂点毎に与えられた法線ベクトルおよび視線ベクトルをラスタライズするラスタライズ部と、上記ラスタライズされた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算し、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいてフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【００３６】
本発明の第４の観点に係る画像処理方法は、オブジェクトの頂点単位情報をラスタライズしてフラグメント単位とする第１のステップと、上記フラグメント単位となった情報に基づいた演算処理を行う第２のステップと、エッジ近傍の度合いを示すフィルタ処理パラメータに応じて上記演算処理情報に対して異なるフィルタ処理を行う第３のステップとを有する。
【００３７】
本発明によれば、たとえば頂点単位処理部に対して頂点情報および頂点毎に与えられた法線ベクトルＮ、視線ベクトルＥが入力される。
頂点単位処理部においては、頂点毎に与えられた法線ベクトルＮ、視線ベクトルＥに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータが計算され、ラスタライズ部に出力される。
また、頂点単位処理部においては、入力した頂点情報に基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われ、頂点単位処理部から処理結果がラスタライズ部に出力される。
【００３８】
ラスタライズ部においては、処理後の頂点情報に対してたとえば補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部から処理結果がフラグメント単位処理部に出力される。
また、ラスタライズ部に供給されたフィルタ処理パラメータはラスタライズされてメモリ部に保持される。
フラグメント単位処理部においては、ラスタライズ部によるフラグメント情報に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部からフラグメント情報がメモリ部に出力され、保持される。
そして、画像処理部において、メモリ部に保持された、たとえばエッジ近傍の割合を示すフィルタ処理パラメータおよびフラグメント情報が読み出される。画像処理部においては、エッジ近傍の割合を示すフィルタ処理パラメータに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。
このように、本発明によれば、エッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択することにより、全体として少ない計算量で良好な描画結果を得ることができる。
【００３９】
【発明の実施の形態】
第１実施形態
図９は、本発明に係る画像処理装置の第１の実施形態を示すブロック図である。
【００４０】
本画像処理装置２０は、図９に示すように、頂点単位処理部２１、ラスタライズ部２２、フラグメント単位処理部２３、メモリ部２４、および画像処理部２５を有している。
【００４１】
頂点単位処理部２１は、頂点毎に与えられた法線ベクトルＮ、視線ベクトルＥに基づいてフィルタ処理パラメータｐを計算する。頂点単位処理部２１が算出するフィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
また、フィルタ処理パラメータの算出には、法線ベクトルＮと視線ベクトルＥの内積の逆数を用いる。
また、頂点単位処理部２１は、頂点情報ＶＩを入力し、これに頂点単位の処理を行い、この結果（演算処理した情報）を信号Ｓ２１としてラスタライズ部２２に出力する。
【００４２】
図１０は、頂点単位処理部２１の具体的な処理を説明するための図である。
【００４３】
頂点単位処理部２１は、図１０に示すように、図示しない上位装置からの頂点毎の法線ベクトルＮ、視線ベクトルＥを入力し（ステップＳＴ２１）、入力した法線ベクトルＮ、視線ベクトルＥに基づいてフィルタ処理パラメータｐを数１のように計算する（ステップＳＴ２２）。この式は法線と視線が垂直に近いほど大きい値をとる。
【００４４】
【数１】
ｐ＝１−｜Ｎ・Ｅ｜
【００４５】
なお、数１は計算方法の一例であり、法線ベクトルＮと視線ベクトルＥの値から、エッジ周辺とそれ以外を区別できる計算方法であればどのようなものでも良い。
たとえば、以下に示す数２はやはり法線と視線が垂直に近いほど大きい値をとる。
【００４６】
【数２】
ｐ＝｜ｓｉｎ（Ｎ・Ｅ）｜
【００４７】
頂点単位処理部２１は、算出したフィルタ処理パラメータｐを後段、すなわちラスタライズ部２２に出力する（ステップＳＴ２３）。
また、頂点単位処理部２１は、フィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などの処理を行う（ステップＳＴ２４）。
【００４８】
ラスタライズ部２２は、処理後の頂点情報Ｓ２１を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号Ｓ２２としてフラグメント単位処理部２３に出力する。
また、ラスタライズ部２２は、頂点単位処理部２１により算出されたフィルタ処理パラメータｐをラスタライズし、フラグメント単位処理部２３を通してメモリ部２４にピクセル毎に保持させる。
【００４９】
フラグメント単位処理部２３は、ラスタライズ部２２によるフラグメント情報Ｓ２２を入力し、入力情報に対してテクスチャマッピング等のフラグメント単位の処理を行い、この結果であるフラグメント情報ｄｉｎを信号Ｓ２３としてメモリ部２４に出力し、保持させる。
【００５０】
メモリ部２４は、処理後のフラグメント情報ｄｉｎを入力し、これに必要なテストや演算を加えた結果を保持する。
メモリ部２４は、頂点単位処理部２１で演算され、ラスタライズ部２２でラスタライズされたフィルタ処理パラメータｐをピクセル毎に保持し、また、画像処理部２５による画像処理後のフラグメント情報ｄｏｕｔ　を保持する。
【００５１】
画像処理部２５は、メモリ部２４に保持されたエッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択し、選択したフィルタカーネルを用いてフィルタ処理を行い、処理後のフラグメント情報をメモリ部２４に出力し、保持させる。
【００５２】
図１１は、画像処理部２５の具体的な処理を説明するための図である。
【００５３】
画像処理部２５は、図１１に示すように、メモリ部２４に保持されているフィルタ処理パラメータｐを入力し（ステップＳＴ３１）、フラグメント情報ｄｉｎを入力する（ステップＳＴ３２）。
そして、画像処理部２５は、フィルタ処理を行う（ステップＳＴ３３）。
画像処理部２５は、フィルタ処理後のフラグメント情報ｄｏｕｔ　をメモリ部２４に出力する（ステップＳＴ３４）。
画像処理部２５は、ステップＳＴ３１〜ＳＴ３４の処理を画面全体について繰り返す（ステップＳＴ３５）。
【００５４】
画像処理部２５が行うフィルタ処理としては、入力ｄｉｎおよび出力ｄｏｕｔ　が単一／複数のそれぞれの組み合わせが存在する。本実施形態においては、フィルタ処理のカーネルをフィルタ処理パラメータｐにより変更させる場合は、これらのいずれの場合も含む。
【００５５】
以下では単一ピクセルの入力を、複数ピクセルに出力する場合について述べる。数３は単一ピクセルの入力ｄｉｎを、複数ピクセルへの出力ｄｏｕｔ　［ｉ］とした場合を示している。
【００５６】
【数３】
ｄｏｕｔ　［ｉ］＝ａ［ｉ］＊ｄｉｎ
【００５７】
ここで、［ｉ］と配列形式で複数ピクセルを表現している。ａ［ｉ］は入力が出力にどれだけ関与するかを表す係数であり、フィルタカーネルと考えることができる。
一般に、フィルタカーネルａ［ｉ］はフィルタ処理パラメータｐに依存しない。
【００５８】
図１２は、毛皮の描画に関するフィルタカーネルａ［ｉ］の例を示す図である。
【００５９】
典型的には、フィルタカーネルａ［ｉ］は画像処理部２５がテーブルに所持しており、毛の方向をインデックスとしてテーブルを参照することにより与えられる。
ところで、図１２の例は５×５のフィルタカーネルであり、エッジ近傍でなければこれだけのサイズのフィルタカーネルの演算を行う必要はない場合がある。その場合、フィルタ処理パラメータｐをもとに図１３に示すように、３×３の小さいフィルタカーネルａ［ｉ］ｓを引くことにより演算量を抑えることが可能となる。
【００６０】
また、図１４は、アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
図１４の例のように、中央の係数値が大きく、周辺が小さいようなフィルタカーネルを用いることで、全体にぼかすことが可能である。
しかしながら、エッジ近傍以外ではこのようなフィルタカーネルを用いるとぼけすぎるという欠点がある。
そこで、フィルタカーネルを固定値ではなく、図１５に示すように、フィルタ処理パラメータｐによって変化する変数値ａｌ、ａ２とすることが有効である。ａｌ、ａ２はたとえば、数４のように計算することができる。
【００６１】
【数４】
ａ１＝１／２＋１／２＊（１−ｐ）
ａ２＝１／１６＊ｐ
【００６２】
数４によればｐ＝１（すなわちエッジ近傍）の場合、ａｌ、ａ２はそれぞれ１／２、１／１６となる。一方、ｐ＝０の場合、ａ１＝１、ａ２＝０となる。
すなわち、エッジ近傍はぼがすが、それ以外はぼけにくくなり、より良好な画像を得ることが可能となる。
【００６３】
次に、図９の画像処理装置の動作を説明する。
【００６４】
頂点単位処理部２１に対して頂点情報ＶＩおよび頂点毎に与えられた法線ベクトルＮ、視線ベクトルＥが入力される。
頂点単位処理部２１においては、頂点毎に与えられた法線ベクトルＮ、視線ベクトルＥに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータｐが計算され、ラスタライズ部２２に出力される。
また、頂点単位処理部２１においては、入力した頂点情報ＶＩに基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われる。頂点単位処理部２１から処理結果が信号Ｓ２１としてラスタライズ部２２に出力される。
【００６５】
ラスタライズ部２２においては、処理後の頂点情報Ｓ２１に対して補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部２２から処理結果が信号Ｓ２２としてフラグメント単位処理部２３に出力される。
また、ラスタライズ部２２に供給されたフィルタ処理パラメータｐはフラグメント単位処理部２３を通してメモリ部２４に保持される。
【００６６】
フラグメント単位処理部２３においては、ラスタライズ部２２によるフラグメント情報Ｓ２２に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部２３からフラグメント情報ｄｉｎが信号Ｓ２３としてメモリ部２４に出力され、保持される。
【００６７】
そして、画像処理部２５において、メモリ部２４に保持されたエッジ近傍の割合を示すフィルタ処理パラメータｐおよびフラグメント情報ｄｉｎが読み出される。画像処理部２５においては、エッジ近傍の割合を示すフィルタ処理パラメータｐに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。そして、処理後のフラグメント情報がメモリ部２４に出力され、保持される。
【００６８】
以上説明したように、本第１の実施形態によれば、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部２１と、頂点情報をラスタライズしフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部２２と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部２３と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部２３の出力情報を保持するメモリ部２４と、メモリ部２４に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部２４に保持されている情報に対してフィルタ処理を行う画像処理部２５とを設けたので、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【００６９】
第２実施形態
図１６は、本発明に係る画像処理装置の第２の実施形態を示すブロック図である。
【００７０】
本第２の実施形態が上述した第１の実施形態と異なる点は、フィルタ処理パラメータの算出を頂点単位処理部２１Ａで行う代わりに、フラグメント単位処理部２３Ａで行うようにしたことにある。
【００７１】
この場合、法線ベクトルＮおよび視線ベクトルＥはラスタライズ部２２Ａによりラスタライズされてフラグメント単位処理部２３Ａに与えられる。
【００７２】
その他の構成および機能は、上述した図９の装置と同様である。
【００７３】
本第２の実施形態のようにフィルタ処理パラメータｐの算出をフラグメント単位で行う場合、より高品質のフィルタ処理を期待できる。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【図面の簡単な説明】
【図１】従来のリアルタイム３次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図である。
【図２】図１の画像処理装置の画像処理動作を示すフローチャートである。
【図３】従来のリアルタイム３次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図である。
【図４】図３の画像処理装置の画像処理動作を示すフローチャートである。
【図５】毛皮のシェル描画について説明するための図である。
【図６】シェル描画であることによる不連続性がエッジ近傍では増大し、毛が不連続に見えてしまうという問題点を説明するための図である。
【図７】毛の方向を加味したフィルタを施すことにより毛の不連続性を解消することができることを説明するための図である。
【図８】画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法を説明するための図である。
【図９】本発明に係る画像処理装置の第１の実施形態を示すブロック図である。
【図１０】本第１の実施形態に係る頂点単位処理部の具体的な処理を説明するためのフローチャートである。
【図１１】本第１の実施形態に係る画像処理部の具体的な処理を説明するためのフローチャートである。
【図１２】毛皮の描画に関するフィルタカーネルａ［ｉ］の例を示す図である。
【図１３】フィルタ処理パラメータｐをもとに小さいフィルタカーネルを用いて演算量を抑える例を説明するための図である。
【図１４】アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
【図１５】フィルタカーネルを固定値ではなくフィルタ処理パラメータｐによって変化する変数値とする例を説明するための図である。
【図１６】本発明に係る画像処理装置の第２の実施形態を示すブロック図である。
【符号の説明】
２０，２０Ａ…画像処理装置、２１，２１Ａ…頂点単位処理部、２２，２２Ａ…ラスタライズ部、２３，２３Ａ…フラグメント単位処理部、２４…メモリ部、２５…画像処理部。
【図１】
2004054635.tif 000003
【図２】
2004054635.tif 000004
【図３】
2004054635.tif 000005
【図４】
2004054635.tif 000006
【図５】
2004054635.tif 000007
【図６】
2004054635.tif 000008
【図７】
2004054635.tif 000009
【図８】
2004054635.tif 000010
【図９】
2004054635.tif 000011
【図１０】
2004054635.tif 000012
【図１１】
2004054635.tif 000013
【図１２】
2004054635.tif 000014
【図１３】
2004054635.tif 000015
【図１４】
2004054635.tif 000016
【図１５】
2004054635.tif 000017
【図１６】
2004054635.tif 000018