JP2004054635A - 画像処理装置およびその方法 - Google Patents
画像処理装置およびその方法 Download PDFInfo
- Publication number
- JP2004054635A JP2004054635A JP2002211707A JP2002211707A JP2004054635A JP 2004054635 A JP2004054635 A JP 2004054635A JP 2002211707 A JP2002211707 A JP 2002211707A JP 2002211707 A JP2002211707 A JP 2002211707A JP 2004054635 A JP2004054635 A JP 2004054635A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- filter
- processing
- image processing
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
【課題】少ない計算量で良好な描画結果を得ることができる画像処理装置およびその方法を提供する。
【解決手段】頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部21と、頂点情報をラスタライズしてフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部22と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部23と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部の出力情報を保持するメモリ部24と、メモリ部24に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部24に保持されている情報に対してフィルタ処理を行う画像処理部25とを設ける。
【選択図】 図1
【解決手段】頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部21と、頂点情報をラスタライズしてフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部22と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部23と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部の出力情報を保持するメモリ部24と、メモリ部24に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部24に保持されている情報に対してフィルタ処理を行う画像処理部25とを設ける。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、3次元コンピュータグラフィックスを実現するための画像処理装置およびその方法に関するものである。
【0002】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス(CG)」技術が盛んに研究・開発され、さらに実用化されている。
【0003】
たとえば、3次元グラフィックスは、3次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで3次元的な2次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのCAD/CAM、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【0004】
3次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【0005】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する3次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【0006】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル(pixel)を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるRGB形式などで表される色(描画色)データ、奥行き方向の距離を表すz値などがある。
また、最近の高精細な3次元グラフィックス処理では、遠近感を醸し出すためのf(fog:霧)や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャt(texture)なども、画像パラメータの1つとして含まれている。
【0007】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくDDA(Digital Differential Analyzer)と呼ばれる線形補間手法を用いて実行される。
DDAプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向(X方向)の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【0008】
図1は、従来のリアルタイム3次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図、図2は、図1の画像処理装置の画像処理動作を示すフローチャートである。
【0009】
この画像処理装置10は、図1に示すように、頂点単位処理部11、ラスタライズ部12、フラグメント単位処理部13、およびメモリ部14を有している。
【0010】
以下、図1の画像処理装置10における描画処理について、各構成要素の機能と併せて図2のフローチャートに関連付けて説明する。
【0011】
頂点単位処理部11は、頂点情報VIを入力し、これに頂点単位の処理を行い、この結果を信号S11としてラスタライズ部12に出力する(ステップST1)。
ラスタライズ部12は、処理後の頂点情報S11を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号S12としてフラグメント単位処理部13に出力する(ステップST2)。
フラグメント単位処理部13は、フラグメント情報S12を入力し、これにフラグメント単位の処理を行い、この結果を信号S13としてメモリ部14に出力する(ステップST3)。
メモリ部14は、処理後のフラグメント情報S13を入力し、これに必要なテストや演算を加えた結果を保持する(ステップST4)。
最終的にシーンに含まれる全プリミティブの描画が完了したならば終了する。一方、描画が完了していないならばステップSTlから繰り返す(ステップST5)。
【0012】
典型的な3次元コンピュータグラフィックスにおいては、ステップST1の頂点単位処理には座標変換や色計算などの処理が含まれる。また、ステップST3のフラグメント単位処理にはテクスチャマッピングなどの処理が含まれる。また、ステップST4の描画処理にはアルファブレンドやデプステストなどの処理が含まれる。
【0013】
上記の処理はいずれもパイプライン的な構成を用いることにより高スループットを実現することが可能であり、リアルタイムコンピュータグラフィックスに適している。以下ではこれらを描画パイプラインと呼ぶ場合もある。
【0014】
一方、近年の3次元コンピュータグラフィックスにおいては、描画パイプライン以外の画像処理を用いることにより画質を改善する方法が提案されている。
【0015】
図3は、従来のリアルタイム3次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図、図4は、図3の画像処理装置の画像処理動作を示すフローチャートである。
【0016】
この画像処理装置10Aは、図1の構成要素である頂点単位処理部11、ラスタライズ部12、フラグメント単位処理部13、およびメモリ部14に加えて、画像処理部15を有している。
また、図4のフローチャートにおいては、図2のステップST1〜ST5の処理に加えて、画像処理部15における画像処理のためのステップST6が追加されている。
【0017】
基本的には、画像処理装置10Aにおいては、シーン全体の描画が完了した後、画面全体に対して何らかの計算を行う。
なお、上記で画面全体と述べた部分は、描画手法によっては画面の一部である場合もあり得る。たとえば画面全体を複数の部分領域に分割して、それぞれを別々に描画するような場合には、画像処理はその部分領域毎に行われる。以下、このような場合も含めた画像処理について述べる。
【0018】
毛皮の描画処理においては、ウィンドウ座標系での毛の方向をもとに画面全体にフィルタ処理を行うことにより画質を改善する方法がある。
また、画面全体について保持した深さ値をもとにデプスオブフィールド(Depth Of Field)を実現する方法もある。
これらは画像処理的なアプローチを用いることにより、描画パイプラインを流れる情報を多大に増加させることなく、画質を改善する手法である。
【0019】
毛皮の描画に際しては、図5に示すように複数のシェルを半透明物体として重ね描きすることによって高速に質感を表現する手法が提案されている。
しかしながら、シェル描画であることによる不連続性がエッジ近傍では増大し、図6に示すように毛が不連続に見えてしまうという問題があった。
これに対して、毛の方向を加味したフィルタを施すことにより、図7(A),(B)に示すように、毛の不連続性を解消することができる。
【0020】
Depth Of Fieldの実現に際しては、深さ値がある値からずれているピクセルほどより大きいカーネルを用いてフィルタ処理を行う。これによりぼけている効果を良好に表現できる。
【0021】
同様な方法として、画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法もある。
これはフレームバッファに描画された結果に対し、たとえば図8に示すようなフィルタを用いる。ここでは1つのピクセルの色情報を、近傍の複数ピクセルに重み付け加算することによりアンチエイリアスを実現する。
【0022】
これらの方法はいずれも従来の描画パイプラインを用いた描画処理に、画面全体に施す画像処理を併用することにより画質を向上させるものである。
毛皮の描画あるいはDepth Of Fieldの場合は、フィルタ処理のカーネルを選択するためのパラメータを、描画パイプラインを用いて計算していた。一方、上記簡易アンチエイリアスの実現の場合、フィルタカーネルは固定である場合が多い。
【0023】
【発明が解決しようとする課題】
以上述べたような、描画パイプラインを用いた描画処理に加え、画面全体に画像処理を行う場合、以下のような問題点がある。
【0024】
毛皮の描画に用いるフィルタ処理の場合、フィルタが必要となるのは多くの場合、オブジェクトのエッジ近傍である。エッジ近傍では大きいカーネルサイズのフィルタ処理が必要であるが、エッジ近傍でなければ不連続性は目立たないため、フィルタ処理は小さいカーネルサイズで十分である。
【0025】
一般にフィルタ処理は、カーネルサイズが大きいほど演算量も大きくなってしまう。エッジ以外での大きいカーネルサイズでのフィルタ処理は、画質には影響の少ないコストの高い演算を行っていることになる。これは性能の低下を導く。また、上記アンチエイリアスに画像処理を用いる場合、画質的な問題を生ずる。フィルタ処理を行う場合、エッジ近傍を良好にぼかすことは可能であるが、フィルタ処理を行う場合、画面全体を均質にぼかすため、エッジ以外の画像はぼかしすぎてしまうという問題がある。
【0026】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる画像処理装置およびその方法を提供することにある。
【0027】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点に係る画像処理装置は、頂点単位の演算を行う頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部の内容に対して画像処理を行う画像処理部と、を有し、上記画像処理部は、所定のフィルタ処理パラメータに応じて異なるフィルタ処理を行う。
【0028】
本発明では、上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
【0029】
本発明では、上記頂点単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【0030】
本発明では、上記フラグメント単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【0031】
本発明では、上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいて算出される。
【0032】
本発明では、上記画像処理部は、アンチエイリアスの効果を生ずるフィルタ処理を行う。
【0033】
本発明では、上記画像処理部は、毛皮のシェル描画におけるフィルタ処理を行う。
【0034】
本発明の第2の観点に係る画像処理装置は、頂点単位の演算を行い、かつ、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とし、上記フィルタ処理パラメータをラスタライズするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【0035】
本発明の第3の観点に係る画像処理装置は、頂点情報をラスタライズしてフラグメント単位とし、頂点毎に与えられた法線ベクトルおよび視線ベクトルをラスタライズするラスタライズ部と、上記ラスタライズされた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算し、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいてフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【0036】
本発明の第4の観点に係る画像処理方法は、オブジェクトの頂点単位情報をラスタライズしてフラグメント単位とする第1のステップと、上記フラグメント単位となった情報に基づいた演算処理を行う第2のステップと、エッジ近傍の度合いを示すフィルタ処理パラメータに応じて上記演算処理情報に対して異なるフィルタ処理を行う第3のステップとを有する。
【0037】
本発明によれば、たとえば頂点単位処理部に対して頂点情報および頂点毎に与えられた法線ベクトルN、視線ベクトルEが入力される。
頂点単位処理部においては、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータが計算され、ラスタライズ部に出力される。
また、頂点単位処理部においては、入力した頂点情報に基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われ、頂点単位処理部から処理結果がラスタライズ部に出力される。
【0038】
ラスタライズ部においては、処理後の頂点情報に対してたとえば補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部から処理結果がフラグメント単位処理部に出力される。
また、ラスタライズ部に供給されたフィルタ処理パラメータはラスタライズされてメモリ部に保持される。
フラグメント単位処理部においては、ラスタライズ部によるフラグメント情報に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部からフラグメント情報がメモリ部に出力され、保持される。
そして、画像処理部において、メモリ部に保持された、たとえばエッジ近傍の割合を示すフィルタ処理パラメータおよびフラグメント情報が読み出される。画像処理部においては、エッジ近傍の割合を示すフィルタ処理パラメータに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。
このように、本発明によれば、エッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択することにより、全体として少ない計算量で良好な描画結果を得ることができる。
【0039】
【発明の実施の形態】
第1実施形態
図9は、本発明に係る画像処理装置の第1の実施形態を示すブロック図である。
【0040】
本画像処理装置20は、図9に示すように、頂点単位処理部21、ラスタライズ部22、フラグメント単位処理部23、メモリ部24、および画像処理部25を有している。
【0041】
頂点単位処理部21は、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてフィルタ処理パラメータpを計算する。頂点単位処理部21が算出するフィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
また、フィルタ処理パラメータの算出には、法線ベクトルNと視線ベクトルEの内積の逆数を用いる。
また、頂点単位処理部21は、頂点情報VIを入力し、これに頂点単位の処理を行い、この結果(演算処理した情報)を信号S21としてラスタライズ部22に出力する。
【0042】
図10は、頂点単位処理部21の具体的な処理を説明するための図である。
【0043】
頂点単位処理部21は、図10に示すように、図示しない上位装置からの頂点毎の法線ベクトルN、視線ベクトルEを入力し(ステップST21)、入力した法線ベクトルN、視線ベクトルEに基づいてフィルタ処理パラメータpを数1のように計算する(ステップST22)。この式は法線と視線が垂直に近いほど大きい値をとる。
【0044】
【数1】
p=1−|N・E|
【0045】
なお、数1は計算方法の一例であり、法線ベクトルNと視線ベクトルEの値から、エッジ周辺とそれ以外を区別できる計算方法であればどのようなものでも良い。
たとえば、以下に示す数2はやはり法線と視線が垂直に近いほど大きい値をとる。
【0046】
【数2】
p=|sin(N・E)|
【0047】
頂点単位処理部21は、算出したフィルタ処理パラメータpを後段、すなわちラスタライズ部22に出力する(ステップST23)。
また、頂点単位処理部21は、フィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などの処理を行う(ステップST24)。
【0048】
ラスタライズ部22は、処理後の頂点情報S21を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号S22としてフラグメント単位処理部23に出力する。
また、ラスタライズ部22は、頂点単位処理部21により算出されたフィルタ処理パラメータpをラスタライズし、フラグメント単位処理部23を通してメモリ部24にピクセル毎に保持させる。
【0049】
フラグメント単位処理部23は、ラスタライズ部22によるフラグメント情報S22を入力し、入力情報に対してテクスチャマッピング等のフラグメント単位の処理を行い、この結果であるフラグメント情報dinを信号S23としてメモリ部24に出力し、保持させる。
【0050】
メモリ部24は、処理後のフラグメント情報dinを入力し、これに必要なテストや演算を加えた結果を保持する。
メモリ部24は、頂点単位処理部21で演算され、ラスタライズ部22でラスタライズされたフィルタ処理パラメータpをピクセル毎に保持し、また、画像処理部25による画像処理後のフラグメント情報dout を保持する。
【0051】
画像処理部25は、メモリ部24に保持されたエッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択し、選択したフィルタカーネルを用いてフィルタ処理を行い、処理後のフラグメント情報をメモリ部24に出力し、保持させる。
【0052】
図11は、画像処理部25の具体的な処理を説明するための図である。
【0053】
画像処理部25は、図11に示すように、メモリ部24に保持されているフィルタ処理パラメータpを入力し(ステップST31)、フラグメント情報dinを入力する(ステップST32)。
そして、画像処理部25は、フィルタ処理を行う(ステップST33)。
画像処理部25は、フィルタ処理後のフラグメント情報dout をメモリ部24に出力する(ステップST34)。
画像処理部25は、ステップST31〜ST34の処理を画面全体について繰り返す(ステップST35)。
【0054】
画像処理部25が行うフィルタ処理としては、入力dinおよび出力dout が単一/複数のそれぞれの組み合わせが存在する。本実施形態においては、フィルタ処理のカーネルをフィルタ処理パラメータpにより変更させる場合は、これらのいずれの場合も含む。
【0055】
以下では単一ピクセルの入力を、複数ピクセルに出力する場合について述べる。数3は単一ピクセルの入力dinを、複数ピクセルへの出力dout [i]とした場合を示している。
【0056】
【数3】
dout [i]=a[i]*din
【0057】
ここで、[i]と配列形式で複数ピクセルを表現している。a[i]は入力が出力にどれだけ関与するかを表す係数であり、フィルタカーネルと考えることができる。
一般に、フィルタカーネルa[i]はフィルタ処理パラメータpに依存しない。
【0058】
図12は、毛皮の描画に関するフィルタカーネルa[i]の例を示す図である。
【0059】
典型的には、フィルタカーネルa[i]は画像処理部25がテーブルに所持しており、毛の方向をインデックスとしてテーブルを参照することにより与えられる。
ところで、図12の例は5×5のフィルタカーネルであり、エッジ近傍でなければこれだけのサイズのフィルタカーネルの演算を行う必要はない場合がある。その場合、フィルタ処理パラメータpをもとに図13に示すように、3×3の小さいフィルタカーネルa[i]sを引くことにより演算量を抑えることが可能となる。
【0060】
また、図14は、アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
図14の例のように、中央の係数値が大きく、周辺が小さいようなフィルタカーネルを用いることで、全体にぼかすことが可能である。
しかしながら、エッジ近傍以外ではこのようなフィルタカーネルを用いるとぼけすぎるという欠点がある。
そこで、フィルタカーネルを固定値ではなく、図15に示すように、フィルタ処理パラメータpによって変化する変数値al、a2とすることが有効である。al、a2はたとえば、数4のように計算することができる。
【0061】
【数4】
a1=1/2+1/2*(1−p)
a2=1/16*p
【0062】
数4によればp=1(すなわちエッジ近傍)の場合、al、a2はそれぞれ1/2、1/16となる。一方、p=0の場合、a1=1、a2=0となる。
すなわち、エッジ近傍はぼがすが、それ以外はぼけにくくなり、より良好な画像を得ることが可能となる。
【0063】
次に、図9の画像処理装置の動作を説明する。
【0064】
頂点単位処理部21に対して頂点情報VIおよび頂点毎に与えられた法線ベクトルN、視線ベクトルEが入力される。
頂点単位処理部21においては、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータpが計算され、ラスタライズ部22に出力される。
また、頂点単位処理部21においては、入力した頂点情報VIに基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われる。頂点単位処理部21から処理結果が信号S21としてラスタライズ部22に出力される。
【0065】
ラスタライズ部22においては、処理後の頂点情報S21に対して補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部22から処理結果が信号S22としてフラグメント単位処理部23に出力される。
また、ラスタライズ部22に供給されたフィルタ処理パラメータpはフラグメント単位処理部23を通してメモリ部24に保持される。
【0066】
フラグメント単位処理部23においては、ラスタライズ部22によるフラグメント情報S22に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部23からフラグメント情報dinが信号S23としてメモリ部24に出力され、保持される。
【0067】
そして、画像処理部25において、メモリ部24に保持されたエッジ近傍の割合を示すフィルタ処理パラメータpおよびフラグメント情報dinが読み出される。画像処理部25においては、エッジ近傍の割合を示すフィルタ処理パラメータpに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。そして、処理後のフラグメント情報がメモリ部24に出力され、保持される。
【0068】
以上説明したように、本第1の実施形態によれば、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部21と、頂点情報をラスタライズしフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部22と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部23と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部23の出力情報を保持するメモリ部24と、メモリ部24に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部24に保持されている情報に対してフィルタ処理を行う画像処理部25とを設けたので、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【0069】
第2実施形態
図16は、本発明に係る画像処理装置の第2の実施形態を示すブロック図である。
【0070】
本第2の実施形態が上述した第1の実施形態と異なる点は、フィルタ処理パラメータの算出を頂点単位処理部21Aで行う代わりに、フラグメント単位処理部23Aで行うようにしたことにある。
【0071】
この場合、法線ベクトルNおよび視線ベクトルEはラスタライズ部22Aによりラスタライズされてフラグメント単位処理部23Aに与えられる。
【0072】
その他の構成および機能は、上述した図9の装置と同様である。
【0073】
本第2の実施形態のようにフィルタ処理パラメータpの算出をフラグメント単位で行う場合、より高品質のフィルタ処理を期待できる。
【0074】
【発明の効果】
以上説明したように、本発明によれば、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【図面の簡単な説明】
【図1】従来のリアルタイム3次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図である。
【図2】図1の画像処理装置の画像処理動作を示すフローチャートである。
【図3】従来のリアルタイム3次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図である。
【図4】図3の画像処理装置の画像処理動作を示すフローチャートである。
【図5】毛皮のシェル描画について説明するための図である。
【図6】シェル描画であることによる不連続性がエッジ近傍では増大し、毛が不連続に見えてしまうという問題点を説明するための図である。
【図7】毛の方向を加味したフィルタを施すことにより毛の不連続性を解消することができることを説明するための図である。
【図8】画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法を説明するための図である。
【図9】本発明に係る画像処理装置の第1の実施形態を示すブロック図である。
【図10】本第1の実施形態に係る頂点単位処理部の具体的な処理を説明するためのフローチャートである。
【図11】本第1の実施形態に係る画像処理部の具体的な処理を説明するためのフローチャートである。
【図12】毛皮の描画に関するフィルタカーネルa[i]の例を示す図である。
【図13】フィルタ処理パラメータpをもとに小さいフィルタカーネルを用いて演算量を抑える例を説明するための図である。
【図14】アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
【図15】フィルタカーネルを固定値ではなくフィルタ処理パラメータpによって変化する変数値とする例を説明するための図である。
【図16】本発明に係る画像処理装置の第2の実施形態を示すブロック図である。
【符号の説明】
20,20A…画像処理装置、21,21A…頂点単位処理部、22,22A…ラスタライズ部、23,23A…フラグメント単位処理部、24…メモリ部、25…画像処理部。
【発明の属する技術分野】
本発明は、3次元コンピュータグラフィックスを実現するための画像処理装置およびその方法に関するものである。
【0002】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス(CG)」技術が盛んに研究・開発され、さらに実用化されている。
【0003】
たとえば、3次元グラフィックスは、3次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで3次元的な2次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのCAD/CAM、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【0004】
3次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【0005】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する3次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【0006】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル(pixel)を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるRGB形式などで表される色(描画色)データ、奥行き方向の距離を表すz値などがある。
また、最近の高精細な3次元グラフィックス処理では、遠近感を醸し出すためのf(fog:霧)や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャt(texture)なども、画像パラメータの1つとして含まれている。
【0007】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくDDA(Digital Differential Analyzer)と呼ばれる線形補間手法を用いて実行される。
DDAプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向(X方向)の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【0008】
図1は、従来のリアルタイム3次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図、図2は、図1の画像処理装置の画像処理動作を示すフローチャートである。
【0009】
この画像処理装置10は、図1に示すように、頂点単位処理部11、ラスタライズ部12、フラグメント単位処理部13、およびメモリ部14を有している。
【0010】
以下、図1の画像処理装置10における描画処理について、各構成要素の機能と併せて図2のフローチャートに関連付けて説明する。
【0011】
頂点単位処理部11は、頂点情報VIを入力し、これに頂点単位の処理を行い、この結果を信号S11としてラスタライズ部12に出力する(ステップST1)。
ラスタライズ部12は、処理後の頂点情報S11を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号S12としてフラグメント単位処理部13に出力する(ステップST2)。
フラグメント単位処理部13は、フラグメント情報S12を入力し、これにフラグメント単位の処理を行い、この結果を信号S13としてメモリ部14に出力する(ステップST3)。
メモリ部14は、処理後のフラグメント情報S13を入力し、これに必要なテストや演算を加えた結果を保持する(ステップST4)。
最終的にシーンに含まれる全プリミティブの描画が完了したならば終了する。一方、描画が完了していないならばステップSTlから繰り返す(ステップST5)。
【0012】
典型的な3次元コンピュータグラフィックスにおいては、ステップST1の頂点単位処理には座標変換や色計算などの処理が含まれる。また、ステップST3のフラグメント単位処理にはテクスチャマッピングなどの処理が含まれる。また、ステップST4の描画処理にはアルファブレンドやデプステストなどの処理が含まれる。
【0013】
上記の処理はいずれもパイプライン的な構成を用いることにより高スループットを実現することが可能であり、リアルタイムコンピュータグラフィックスに適している。以下ではこれらを描画パイプラインと呼ぶ場合もある。
【0014】
一方、近年の3次元コンピュータグラフィックスにおいては、描画パイプライン以外の画像処理を用いることにより画質を改善する方法が提案されている。
【0015】
図3は、従来のリアルタイム3次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図、図4は、図3の画像処理装置の画像処理動作を示すフローチャートである。
【0016】
この画像処理装置10Aは、図1の構成要素である頂点単位処理部11、ラスタライズ部12、フラグメント単位処理部13、およびメモリ部14に加えて、画像処理部15を有している。
また、図4のフローチャートにおいては、図2のステップST1〜ST5の処理に加えて、画像処理部15における画像処理のためのステップST6が追加されている。
【0017】
基本的には、画像処理装置10Aにおいては、シーン全体の描画が完了した後、画面全体に対して何らかの計算を行う。
なお、上記で画面全体と述べた部分は、描画手法によっては画面の一部である場合もあり得る。たとえば画面全体を複数の部分領域に分割して、それぞれを別々に描画するような場合には、画像処理はその部分領域毎に行われる。以下、このような場合も含めた画像処理について述べる。
【0018】
毛皮の描画処理においては、ウィンドウ座標系での毛の方向をもとに画面全体にフィルタ処理を行うことにより画質を改善する方法がある。
また、画面全体について保持した深さ値をもとにデプスオブフィールド(Depth Of Field)を実現する方法もある。
これらは画像処理的なアプローチを用いることにより、描画パイプラインを流れる情報を多大に増加させることなく、画質を改善する手法である。
【0019】
毛皮の描画に際しては、図5に示すように複数のシェルを半透明物体として重ね描きすることによって高速に質感を表現する手法が提案されている。
しかしながら、シェル描画であることによる不連続性がエッジ近傍では増大し、図6に示すように毛が不連続に見えてしまうという問題があった。
これに対して、毛の方向を加味したフィルタを施すことにより、図7(A),(B)に示すように、毛の不連続性を解消することができる。
【0020】
Depth Of Fieldの実現に際しては、深さ値がある値からずれているピクセルほどより大きいカーネルを用いてフィルタ処理を行う。これによりぼけている効果を良好に表現できる。
【0021】
同様な方法として、画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法もある。
これはフレームバッファに描画された結果に対し、たとえば図8に示すようなフィルタを用いる。ここでは1つのピクセルの色情報を、近傍の複数ピクセルに重み付け加算することによりアンチエイリアスを実現する。
【0022】
これらの方法はいずれも従来の描画パイプラインを用いた描画処理に、画面全体に施す画像処理を併用することにより画質を向上させるものである。
毛皮の描画あるいはDepth Of Fieldの場合は、フィルタ処理のカーネルを選択するためのパラメータを、描画パイプラインを用いて計算していた。一方、上記簡易アンチエイリアスの実現の場合、フィルタカーネルは固定である場合が多い。
【0023】
【発明が解決しようとする課題】
以上述べたような、描画パイプラインを用いた描画処理に加え、画面全体に画像処理を行う場合、以下のような問題点がある。
【0024】
毛皮の描画に用いるフィルタ処理の場合、フィルタが必要となるのは多くの場合、オブジェクトのエッジ近傍である。エッジ近傍では大きいカーネルサイズのフィルタ処理が必要であるが、エッジ近傍でなければ不連続性は目立たないため、フィルタ処理は小さいカーネルサイズで十分である。
【0025】
一般にフィルタ処理は、カーネルサイズが大きいほど演算量も大きくなってしまう。エッジ以外での大きいカーネルサイズでのフィルタ処理は、画質には影響の少ないコストの高い演算を行っていることになる。これは性能の低下を導く。また、上記アンチエイリアスに画像処理を用いる場合、画質的な問題を生ずる。フィルタ処理を行う場合、エッジ近傍を良好にぼかすことは可能であるが、フィルタ処理を行う場合、画面全体を均質にぼかすため、エッジ以外の画像はぼかしすぎてしまうという問題がある。
【0026】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる画像処理装置およびその方法を提供することにある。
【0027】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点に係る画像処理装置は、頂点単位の演算を行う頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部の内容に対して画像処理を行う画像処理部と、を有し、上記画像処理部は、所定のフィルタ処理パラメータに応じて異なるフィルタ処理を行う。
【0028】
本発明では、上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
【0029】
本発明では、上記頂点単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【0030】
本発明では、上記フラグメント単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する。
【0031】
本発明では、上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいて算出される。
【0032】
本発明では、上記画像処理部は、アンチエイリアスの効果を生ずるフィルタ処理を行う。
【0033】
本発明では、上記画像処理部は、毛皮のシェル描画におけるフィルタ処理を行う。
【0034】
本発明の第2の観点に係る画像処理装置は、頂点単位の演算を行い、かつ、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部と、上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とし、上記フィルタ処理パラメータをラスタライズするラスタライズ部と、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【0035】
本発明の第3の観点に係る画像処理装置は、頂点情報をラスタライズしてフラグメント単位とし、頂点毎に与えられた法線ベクトルおよび視線ベクトルをラスタライズするラスタライズ部と、上記ラスタライズされた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算し、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、上記フィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいてフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部とを有する。
【0036】
本発明の第4の観点に係る画像処理方法は、オブジェクトの頂点単位情報をラスタライズしてフラグメント単位とする第1のステップと、上記フラグメント単位となった情報に基づいた演算処理を行う第2のステップと、エッジ近傍の度合いを示すフィルタ処理パラメータに応じて上記演算処理情報に対して異なるフィルタ処理を行う第3のステップとを有する。
【0037】
本発明によれば、たとえば頂点単位処理部に対して頂点情報および頂点毎に与えられた法線ベクトルN、視線ベクトルEが入力される。
頂点単位処理部においては、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータが計算され、ラスタライズ部に出力される。
また、頂点単位処理部においては、入力した頂点情報に基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われ、頂点単位処理部から処理結果がラスタライズ部に出力される。
【0038】
ラスタライズ部においては、処理後の頂点情報に対してたとえば補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部から処理結果がフラグメント単位処理部に出力される。
また、ラスタライズ部に供給されたフィルタ処理パラメータはラスタライズされてメモリ部に保持される。
フラグメント単位処理部においては、ラスタライズ部によるフラグメント情報に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部からフラグメント情報がメモリ部に出力され、保持される。
そして、画像処理部において、メモリ部に保持された、たとえばエッジ近傍の割合を示すフィルタ処理パラメータおよびフラグメント情報が読み出される。画像処理部においては、エッジ近傍の割合を示すフィルタ処理パラメータに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。
このように、本発明によれば、エッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択することにより、全体として少ない計算量で良好な描画結果を得ることができる。
【0039】
【発明の実施の形態】
第1実施形態
図9は、本発明に係る画像処理装置の第1の実施形態を示すブロック図である。
【0040】
本画像処理装置20は、図9に示すように、頂点単位処理部21、ラスタライズ部22、フラグメント単位処理部23、メモリ部24、および画像処理部25を有している。
【0041】
頂点単位処理部21は、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてフィルタ処理パラメータpを計算する。頂点単位処理部21が算出するフィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである。
また、フィルタ処理パラメータの算出には、法線ベクトルNと視線ベクトルEの内積の逆数を用いる。
また、頂点単位処理部21は、頂点情報VIを入力し、これに頂点単位の処理を行い、この結果(演算処理した情報)を信号S21としてラスタライズ部22に出力する。
【0042】
図10は、頂点単位処理部21の具体的な処理を説明するための図である。
【0043】
頂点単位処理部21は、図10に示すように、図示しない上位装置からの頂点毎の法線ベクトルN、視線ベクトルEを入力し(ステップST21)、入力した法線ベクトルN、視線ベクトルEに基づいてフィルタ処理パラメータpを数1のように計算する(ステップST22)。この式は法線と視線が垂直に近いほど大きい値をとる。
【0044】
【数1】
p=1−|N・E|
【0045】
なお、数1は計算方法の一例であり、法線ベクトルNと視線ベクトルEの値から、エッジ周辺とそれ以外を区別できる計算方法であればどのようなものでも良い。
たとえば、以下に示す数2はやはり法線と視線が垂直に近いほど大きい値をとる。
【0046】
【数2】
p=|sin(N・E)|
【0047】
頂点単位処理部21は、算出したフィルタ処理パラメータpを後段、すなわちラスタライズ部22に出力する(ステップST23)。
また、頂点単位処理部21は、フィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などの処理を行う(ステップST24)。
【0048】
ラスタライズ部22は、処理後の頂点情報S21を入力し、これを補間することによりフラグメント単位の情報へと変換し、この結果を信号S22としてフラグメント単位処理部23に出力する。
また、ラスタライズ部22は、頂点単位処理部21により算出されたフィルタ処理パラメータpをラスタライズし、フラグメント単位処理部23を通してメモリ部24にピクセル毎に保持させる。
【0049】
フラグメント単位処理部23は、ラスタライズ部22によるフラグメント情報S22を入力し、入力情報に対してテクスチャマッピング等のフラグメント単位の処理を行い、この結果であるフラグメント情報dinを信号S23としてメモリ部24に出力し、保持させる。
【0050】
メモリ部24は、処理後のフラグメント情報dinを入力し、これに必要なテストや演算を加えた結果を保持する。
メモリ部24は、頂点単位処理部21で演算され、ラスタライズ部22でラスタライズされたフィルタ処理パラメータpをピクセル毎に保持し、また、画像処理部25による画像処理後のフラグメント情報dout を保持する。
【0051】
画像処理部25は、メモリ部24に保持されたエッジ近傍の割合を示すフィルタ処理パラメータをもとに、フィルタカーネルを選択し、選択したフィルタカーネルを用いてフィルタ処理を行い、処理後のフラグメント情報をメモリ部24に出力し、保持させる。
【0052】
図11は、画像処理部25の具体的な処理を説明するための図である。
【0053】
画像処理部25は、図11に示すように、メモリ部24に保持されているフィルタ処理パラメータpを入力し(ステップST31)、フラグメント情報dinを入力する(ステップST32)。
そして、画像処理部25は、フィルタ処理を行う(ステップST33)。
画像処理部25は、フィルタ処理後のフラグメント情報dout をメモリ部24に出力する(ステップST34)。
画像処理部25は、ステップST31〜ST34の処理を画面全体について繰り返す(ステップST35)。
【0054】
画像処理部25が行うフィルタ処理としては、入力dinおよび出力dout が単一/複数のそれぞれの組み合わせが存在する。本実施形態においては、フィルタ処理のカーネルをフィルタ処理パラメータpにより変更させる場合は、これらのいずれの場合も含む。
【0055】
以下では単一ピクセルの入力を、複数ピクセルに出力する場合について述べる。数3は単一ピクセルの入力dinを、複数ピクセルへの出力dout [i]とした場合を示している。
【0056】
【数3】
dout [i]=a[i]*din
【0057】
ここで、[i]と配列形式で複数ピクセルを表現している。a[i]は入力が出力にどれだけ関与するかを表す係数であり、フィルタカーネルと考えることができる。
一般に、フィルタカーネルa[i]はフィルタ処理パラメータpに依存しない。
【0058】
図12は、毛皮の描画に関するフィルタカーネルa[i]の例を示す図である。
【0059】
典型的には、フィルタカーネルa[i]は画像処理部25がテーブルに所持しており、毛の方向をインデックスとしてテーブルを参照することにより与えられる。
ところで、図12の例は5×5のフィルタカーネルであり、エッジ近傍でなければこれだけのサイズのフィルタカーネルの演算を行う必要はない場合がある。その場合、フィルタ処理パラメータpをもとに図13に示すように、3×3の小さいフィルタカーネルa[i]sを引くことにより演算量を抑えることが可能となる。
【0060】
また、図14は、アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
図14の例のように、中央の係数値が大きく、周辺が小さいようなフィルタカーネルを用いることで、全体にぼかすことが可能である。
しかしながら、エッジ近傍以外ではこのようなフィルタカーネルを用いるとぼけすぎるという欠点がある。
そこで、フィルタカーネルを固定値ではなく、図15に示すように、フィルタ処理パラメータpによって変化する変数値al、a2とすることが有効である。al、a2はたとえば、数4のように計算することができる。
【0061】
【数4】
a1=1/2+1/2*(1−p)
a2=1/16*p
【0062】
数4によればp=1(すなわちエッジ近傍)の場合、al、a2はそれぞれ1/2、1/16となる。一方、p=0の場合、a1=1、a2=0となる。
すなわち、エッジ近傍はぼがすが、それ以外はぼけにくくなり、より良好な画像を得ることが可能となる。
【0063】
次に、図9の画像処理装置の動作を説明する。
【0064】
頂点単位処理部21に対して頂点情報VIおよび頂点毎に与えられた法線ベクトルN、視線ベクトルEが入力される。
頂点単位処理部21においては、頂点毎に与えられた法線ベクトルN、視線ベクトルEに基づいてエッジ近傍の度合いを示すフィルタ処理パラメータpが計算され、ラスタライズ部22に出力される。
また、頂点単位処理部21においては、入力した頂点情報VIに基づいて頂点単位の処理、すなわちフィルタ処理パラメータの計算以外の、通常処理すべき内容、たとえば頂点の座標変換などが行われる。頂点単位処理部21から処理結果が信号S21としてラスタライズ部22に出力される。
【0065】
ラスタライズ部22においては、処理後の頂点情報S21に対して補間処理が行われて、フラグメント単位の情報への変換が行われる。そして、ラスタライズ部22から処理結果が信号S22としてフラグメント単位処理部23に出力される。
また、ラスタライズ部22に供給されたフィルタ処理パラメータpはフラグメント単位処理部23を通してメモリ部24に保持される。
【0066】
フラグメント単位処理部23においては、ラスタライズ部22によるフラグメント情報S22に対してテクスチャマッピング等のフラグメント単位の処理が行われる。そして、フラグメント単位処理部23からフラグメント情報dinが信号S23としてメモリ部24に出力され、保持される。
【0067】
そして、画像処理部25において、メモリ部24に保持されたエッジ近傍の割合を示すフィルタ処理パラメータpおよびフラグメント情報dinが読み出される。画像処理部25においては、エッジ近傍の割合を示すフィルタ処理パラメータpに基づいてフィルタカーネルが選択され、選択したフィルタカーネルを用いてフィルタ処理が行われる。そして、処理後のフラグメント情報がメモリ部24に出力され、保持される。
【0068】
以上説明したように、本第1の実施形態によれば、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部21と、頂点情報をラスタライズしフラグメント単位とし、フィルタ処理パラメータをラスタライズするラスタライズ部22と、フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部23と、ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、フラグメント単位処理部23の出力情報を保持するメモリ部24と、メモリ部24に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいてメモリ部24に保持されている情報に対してフィルタ処理を行う画像処理部25とを設けたので、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【0069】
第2実施形態
図16は、本発明に係る画像処理装置の第2の実施形態を示すブロック図である。
【0070】
本第2の実施形態が上述した第1の実施形態と異なる点は、フィルタ処理パラメータの算出を頂点単位処理部21Aで行う代わりに、フラグメント単位処理部23Aで行うようにしたことにある。
【0071】
この場合、法線ベクトルNおよび視線ベクトルEはラスタライズ部22Aによりラスタライズされてフラグメント単位処理部23Aに与えられる。
【0072】
その他の構成および機能は、上述した図9の装置と同様である。
【0073】
本第2の実施形態のようにフィルタ処理パラメータpの算出をフラグメント単位で行う場合、より高品質のフィルタ処理を期待できる。
【0074】
【発明の効果】
以上説明したように、本発明によれば、オブジェクトのエッジ部分とそれ以外の領域に対して画像処理の内容を変更することができ、少ない計算量で良好な描画結果を得ることができる。
【図面の簡単な説明】
【図1】従来のリアルタイム3次元コンピュータグラフィックスの分野における画像処理装置の構成例を示すブロック図である。
【図2】図1の画像処理装置の画像処理動作を示すフローチャートである。
【図3】従来のリアルタイム3次元コンピュータグラフィックスの分野における描画パイプライン以外の画像処理を用いることにより画質を改善する方法を採用した画像処理装置の構成例を示すブロック図である。
【図4】図3の画像処理装置の画像処理動作を示すフローチャートである。
【図5】毛皮のシェル描画について説明するための図である。
【図6】シェル描画であることによる不連続性がエッジ近傍では増大し、毛が不連続に見えてしまうという問題点を説明するための図である。
【図7】毛の方向を加味したフィルタを施すことにより毛の不連続性を解消することができることを説明するための図である。
【図8】画面全体に固定的なフィルタをかけることにより、簡易アンチエイリアスを実現する方法を説明するための図である。
【図9】本発明に係る画像処理装置の第1の実施形態を示すブロック図である。
【図10】本第1の実施形態に係る頂点単位処理部の具体的な処理を説明するためのフローチャートである。
【図11】本第1の実施形態に係る画像処理部の具体的な処理を説明するためのフローチャートである。
【図12】毛皮の描画に関するフィルタカーネルa[i]の例を示す図である。
【図13】フィルタ処理パラメータpをもとに小さいフィルタカーネルを用いて演算量を抑える例を説明するための図である。
【図14】アンチエイリアスを行う場合のフィルタカーネルの例を示す図である。
【図15】フィルタカーネルを固定値ではなくフィルタ処理パラメータpによって変化する変数値とする例を説明するための図である。
【図16】本発明に係る画像処理装置の第2の実施形態を示すブロック図である。
【符号の説明】
20,20A…画像処理装置、21,21A…頂点単位処理部、22,22A…ラスタライズ部、23,23A…フラグメント単位処理部、24…メモリ部、25…画像処理部。
Claims (20)
- 頂点単位の演算を行う頂点単位処理部と、
上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とするラスタライズ部と、
上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部の内容に対して画像処理を行う画像処理部と、
を有し、
上記画像処理部は、所定のフィルタ処理パラメータに応じて異なるフィルタ処理を行う
画像処理装置。 - 上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項1記載の画像処理装置。 - 上記頂点単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する
請求項1記載の画像処理装置。 - 上記フラグメント単位処理部は、フィルタ処理パラメータを算出して上記画像処理部に供給する
請求項1記載の画像処理装置。 - 上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいて算出される
請求項1記載の画像処理装置。 - 上記頂点単位処理部は、上記フィルタ処理パラメータを、法線ベクトルおよび視線ベクトルに基づいて算出する
請求項3記載の画像処理装置。 - 上記フラグメント単位処理部は、上記フィルタ処理パラメータを、法線ベクトルおよび視線ベクトルに基づいて算出する
請求項4記載の画像処理装置。 - 上記画像処理部は、アンチエイリアスの効果を生ずるフィルタ処理を行う
請求項1記載の画像処理装置。 - 上記画像処理部は、毛皮のシェル描画におけるフィルタ処理を行う
請求項1記載の画像処理装置。 - 頂点単位の演算を行い、かつ、頂点毎に与えられた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する頂点単位処理部と、
上記頂点単位処理部の演算した情報をラスタライズしてフラグメント単位とし、上記フィルタ処理パラメータをラスタライズするラスタライズ部と、
上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記ラスタライズされたフィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいて適したフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部と
を有する画像処理装置。 - 上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項10記載の画像処理装置。 - 上記頂点単位処理部は、法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する
請求項10記載の画像処理装置。 - 頂点情報をラスタライズしてフラグメント単位とし、頂点毎に与えられた法線ベクトルおよび視線ベクトルをラスタライズするラスタライズ部と、
上記ラスタライズされた法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算し、上記フラグメント単位となった情報に基づいた演算処理を行うフラグメント単位処理部と、
上記フィルタ処理パラメータをピクセル毎に保持し、上記フラグメント単位処理部の演算処理した情報を保持するメモリ部と、
上記メモリ部にピクセル毎に保持されたフィルタ処理パラメータの値に基づいてフィルタカーネルを求め、求めたフィルタカーネルに基づいて上記メモリ部に保持されている情報に対してフィルタ処理を行う画像処理部と
を有する画像処理装置。 - 上記フィルタ処理パラメータは、エッジ近傍の度合いを示すパラメータである
請求項13記載の画像処理装置。 - 上記ラスタライズ部は、法線ベクトルおよび視線ベクトルに基づいてフィルタ処理パラメータを計算する
請求項13記載の画像処理装置。 - オブジェクトの頂点単位情報をラスタライズしてフラグメント単位とする第1のステップと、
上記フラグメント単位となった情報に基づいた演算処理を行う第2のステップと、
エッジ近傍の度合いを示すフィルタ処理パラメータに応じて上記演算処理情報に対して異なるフィルタ処理を行う第3のステップと
を有する画像処理方法。 - 上記フィルタ処理パラメータは、法線ベクトルおよび視線ベクトルに基づいている
請求項16記載の画像処理方法。 - 上記フィルタ処理パラメータの算出は、頂点単位処理時に行う
請求項16記載の画像処理方法。 - 上記フィルタ処理パラメータの算出は、フラグメント単位処理時に行う
請求項16記載の画像処理方法。 - 上記フィルタ処理は、アンチエイリアスの効果を生ずるフィルタ処理を含む
請求項16記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002211707A JP2004054635A (ja) | 2002-07-19 | 2002-07-19 | 画像処理装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002211707A JP2004054635A (ja) | 2002-07-19 | 2002-07-19 | 画像処理装置およびその方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054635A true JP2004054635A (ja) | 2004-02-19 |
Family
ID=31934852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002211707A Pending JP2004054635A (ja) | 2002-07-19 | 2002-07-19 | 画像処理装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054635A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007226576A (ja) * | 2006-02-23 | 2007-09-06 | Namco Bandai Games Inc | プログラム、情報記憶媒体及び画像生成システム |
JP2011516981A (ja) * | 2008-04-04 | 2011-05-26 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | アンチエイリアシングのためのフィルタ処理方法及び装置 |
KR101239965B1 (ko) | 2006-11-08 | 2013-03-06 | 연세대학교 산학협력단 | 렌더링 장치 및 방법 |
-
2002
- 2002-07-19 JP JP2002211707A patent/JP2004054635A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007226576A (ja) * | 2006-02-23 | 2007-09-06 | Namco Bandai Games Inc | プログラム、情報記憶媒体及び画像生成システム |
JP4734138B2 (ja) * | 2006-02-23 | 2011-07-27 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及び画像生成システム |
KR101239965B1 (ko) | 2006-11-08 | 2013-03-06 | 연세대학교 산학협력단 | 렌더링 장치 및 방법 |
JP2011516981A (ja) * | 2008-04-04 | 2011-05-26 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | アンチエイリアシングのためのフィルタ処理方法及び装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6975329B2 (en) | Depth-of-field effects using texture lookup | |
JP5232358B2 (ja) | アウトラインフォントのレンダリング | |
US8035641B1 (en) | Fast depth of field simulation | |
JP4541786B2 (ja) | ぼかしを発生させる方法およびぼかし発生装置 | |
JP2001052194A (ja) | 曲面の再構成 | |
US9153068B2 (en) | Clipless time and lens bounds for improved sample test efficiency in image rendering | |
KR20050030595A (ko) | 화상 처리 장치 및 그 방법 | |
US20170011543A1 (en) | Sparse Rasterization | |
Bertalmio et al. | Real-time, accurate depth of field using anisotropic diffusion and programmable graphics cards | |
US7038678B2 (en) | Dependent texture shadow antialiasing | |
JP5512218B2 (ja) | グラフィックス処理システム | |
JP2002537615A (ja) | スーパサンプリング・サンプル・バッファを有し、アーチファクトを縮小するため選択的フィルタリング調節を使用して出力ピクセルを生成するグラフィックス・システム。 | |
US6184893B1 (en) | Method and system for filtering texture map data for improved image quality in a graphics computer system | |
KR20180060198A (ko) | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 | |
US20190172249A1 (en) | Systems and Methods for Real-Time Large-Scale Point Cloud Surface Reconstruction | |
US7466322B1 (en) | Clipping graphics primitives to the w=0 plane | |
US6940515B1 (en) | User programmable primitive engine | |
US6900810B1 (en) | User programmable geometry engine | |
JP2010055410A (ja) | 画像処理装置、画像処理方法、および画像処理プログラム | |
JP2006517705A (ja) | コンピュータグラフィックスシステム及びコンピュータグラフィクイメージのレンダリング方法 | |
US20230298212A1 (en) | Locking mechanism for image classification | |
US11989807B2 (en) | Rendering scalable raster content | |
WO2010134292A1 (ja) | 描画装置及び描画方法 | |
JP2004054635A (ja) | 画像処理装置およびその方法 | |
US7385604B1 (en) | Fragment scattering |