(57)【要約】【課題】ポリゴンの描画においてジャギーをなくすアンチエイリアシングを行うために、ディスプレイの解像度より大きな解像度でポリゴンを描画したり、あるいは各ピクセルに対して複数のサンプリングを行ってポリゴンを描画すると、レンダリングバッファへのメモリアクセスが増大し、描画速度が極端に遅くなってしまうという課題があった。【解決手段】ポリゴン描画を単位描画領域ごとに行い、ポリゴン内部のサンプル点を同じサンプル値で近似し、レンダリングバッファに格納する。このときのレンダリングバッファへのメモリ格納イメージを示すアンチエイリアス状態フラグを領域情報バッファに格納する。前記レンダリングバッファのメモリアクセスは、あらかじめ参照された前記アンチエイリアス状態フラグが示すメモリ格納イメージに基づいて必要最小限に行われる。【選択図】図１
2005346605.tif 000002
【特許請求の範囲】
【請求項１】
ポリゴンを描画する際にアンチエイリアスを行うための描画方法であって、前記ポリゴンは複数のサンプル点からなる単位描画領域ごとに処理され、前記単位描画領域のすべてのサンプル点はエッジサンプル点または内部サンプル点のいずれであるかがレンダリングバッファのアドレスに基づいて判定され、前記内部サンプル点は同じサンプル値で近似され、前記エッジサンプル点と前記内部サンプル点の組み合わせに応じてメモリ格納イメージが決定され、前記単位描画領域のサンプル値は前記メモリ格納イメージに従ってレンダリングバッファに格納され、前記メモリ格納イメージはアンチエイリアス状態フラグにエンコードされ、前記アンチエイリアス状態フラグは領域情報バッファに格納され、前記レンダリングバッファのメモリアクセスは、あらかじめ参照された前記アンチエイリアス状態フラグがデコードされた結果であるメモリ格納イメージに基づいて必要最小限に行われることを特徴とする描画方法。
【請求項２】
前記内部サンプル点は、前記レンダリングバッファのアドレスが互いに隣接し、すべてポリゴン内部に含まれるサンプル点であることを特徴とする、請求項１に記載の描画方法。
【請求項３】
前記サンプル値が、前記サンプル点のカラー値であることを特徴とする、請求項１に記載の描画方法。
【請求項４】
前記サンプル値が、前記サンプル点の深度値（Ｚ値）またはステンシル値、あるいはその両方であることを特徴とする、請求項１に記載の描画方法。
【請求項５】
前記メモリ格納イメージは、等値アドレス領域およびエッジアドレス領域からなり、前記等値アドレス領域には前記内部サンプル点のサンプル値が配置され、前記エッジアドレス領域には前記エッジサンプル点のサンプル値が配置されることを特徴とする、請求項１に記載の描画方法。
【請求項６】
前記等値アドレス領域およびエッジアドレス領域は、それぞれ複数の連続アドレスからなることを特徴とする、請求項５に記載の描画方法。
【請求項７】
前記単位描画領域がすべて同じサンプル値である場合、前記メモリ格納イメージは前記等値アドレス領域にのみ格納されることを特徴とする、請求項５に記載の描画方法。
【請求項８】
前記アンチエイリアス状態フラグは、前記メモリ格納イメージが前記等値アドレス領域により多くのサンプル値が含まれる組み合わせに対して優先的に割り当てられることを特徴とする、請求項５に記載の描画方法。
【請求項９】
前記アンチエイリアス状態フラグに対し、前記メモリ格納イメージがすべて前記エッジアドレス領域となる組み合わせを必ず１つ割り当てることを特徴とする、
請求項５に記載の描画方法。
【請求項１０】
前記レンダリングバッファの最終的な描画結果が、前記領域情報バッファの前記アンチエイリアス状態フラグ値に基づいて読み出され、複数のサンプル値ごとにフィルタリングされてフレームバッファに格納されることを特徴とする、請求項１に記載の描画方法。
【請求項１１】
ポリゴンを描画する際にアンチエイリアスを行う描画装置であって、前記描画装置は前記ポリゴンを複数のサンプル点からなる単位描画領域ごとに走査するラスタライザを備え、
前記ラスタライザは、前記単位描画領域のすべてのサンプル点についてエッジサンプル点または内部サンプル点のいずれであるかをレンダリングバッファのアドレスに基づいて判定し、前記内部サンプル点を同じサンプル値で近似し、前記エッジサンプル点と前記内部サンプル点の組み合わせに応じてメモリ格納イメージを決定し、前記単位描画領域のサンプル値を前記メモリ格納イメージに従ってレンダリングバッファに格納し、前記メモリ格納イメージをアンチエイリアス状態フラグにエンコードし、前記アンチエイリアス状態フラグを領域情報バッファに格納し、前記レンダリングバッファのメモリアクセスを、あらかじめ参照した前記アンチエイリアス状態フラグのデコード結果であるメモリ格納イメージに基づいて必要最小限に行うように動作することを特徴とする描画装置。
【請求項１２】
前記単位描画領域の大きさが、前記レンダリングバッファにアクセスする際のアクセス単位の倍数であることを特徴とする、請求項１１に記載の描画装置。
【請求項１３】
前記内部サンプル点は、前記レンダリングバッファのアドレスが互いに隣接し、すべてポリゴン内部に含まれるサンプル点であることを特徴とする、請求項１１に記載の描画装置。
【請求項１４】
前記サンプル値が、前記サンプル点のカラー値であることを特徴とする、請求項１１に記載の描画装置。
【請求項１５】
前記サンプル値が、前記サンプル点の深度値（Ｚ値）またはステンシル値、あるいはその両方であることを特徴とする、請求項１１に記載の描画装置。
【請求項１６】
前記メモリ格納イメージは、等値アドレス領域およびエッジアドレス領域からなり、前記等値アドレス領域には前記内部サンプル点のサンプル値が配置され、前記エッジアドレス領域には前記エッジサンプル点のサンプル値が配置されることを特徴とする、請求項１１に記載の描画装置。
【請求項１７】
前記等値アドレス領域およびエッジアドレス領域は、それぞれ複数の連続アドレスからなることを特徴とする、請求項１６に記載の描画装置。
【請求項１８】
前記単位描画領域がすべて同じサンプル値である場合、前記メモリ格納イメージは前記等値アドレス領域にのみ格納されることを特徴とする、請求項１６に記載の描画装置。
【請求項１９】
前記アンチエイリアス状態フラグは、前記メモリ格納イメージが前記等値アドレス領域により多くのサンプル値が含まれる組み合わせに対して優先的に割り当てられることを特徴とする、請求項１６に記載の描画装置。
【請求項２０】
前記アンチエイリアス状態フラグに対し、前記メモリ格納イメージがすべて前記エッジアドレス領域となる組み合わせを必ず１つ割り当てることを特徴とする、請求項１６に記載の描画装置。
【請求項２１】
前記レンダリングバッファの最終的な描画結果が、前記領域情報バッファの前記アンチエイリアス状態フラグ値に基づいて読み出され、複数のサンプル値ごとにフィルタリングされてフレームバッファに格納されることを特徴とする、請求項１１に記載の描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス技術に関し、特にポリゴンを描画する際にポリゴンのエッジの部分で生じるジャギー（エイリアス）を目立たなくする技術、いわゆるアンチエイリアシング技術に関するものである。
【背景技術】
【０００２】
一般的なグラフィックス描画は複数のポリゴンを描画することによって実現される。２次元空間または３次元空間に存在する２次元図形または３次元物体は、複数のポリゴン（多くの場合、ポリゴンは最も単純な三角形である）により表現され、それらのポリゴンは視線に垂直な２次元平面上に投影されてフレームバッファに描画され、最終的にディスプレイ上に表示される。
【０００３】
一般的なディスプレイは多数のピクセルからなっており、各ピクセルは無視できない有限の大きさを持つ。そのため、ポリゴンをディスプレイ上に描画すると、原理上、ピクセルの大きさよりも細かく表示することはできない。したがって、ディスプレイの解像度が低い場合には、ポリゴンのエッジの部分においてジャギー（エイリアス）と呼ばれる階段状のギザギザが目立つことになる。これは、グラフィックスの品質を低下させる。そのため、ポリゴン描画では、このジャギーを低減する、いわゆるアンチエイリアシング技術が必要である。
【０００４】
一般的に、アンチエイリアシングの方法は大きく以下の２種類に分類される。
【０００５】
第１の方法は、ディスプレイ上の各ピクセルにおいて、ピクセルの面積に占める表示すべきポリゴンの面積の割合を求め、その割合に基づいてポリゴン色と背景色とを混ぜ合わせる方法である。例えば、図１０（ａ）のような図形を描画するとき、ピクセル１００１に注目して、その面積を１とすると、ポリゴン色にはピクセル１００１に占めるポリゴンの面積Ｓが乗じられ、背景色には（１−Ｓ）が乗じられ、その和がピクセル１００１の色となる。このようにすると図１０（ｂ）のように、例えばポリゴン色を１とするとき、ピクセル１００２の色は０．８となり、ピクセル１００３の色は０．２となる。
【０００６】
なお、ポリゴンが占める面積を求める必要があるピクセルは、ポリゴンのエッジ部のピクセルだけでよい。エッジ部のピクセルの面積だけを求めることでアンチエイリアシングを高速化する例としては、例えば特許文献１がある。特許文献１では、ポリゴンのエッジ部についてピクセルを複数に分割し、サブピクセルレベルで描画範囲を求めることによりポリゴンの面積を求め、その割合に比例した色値を求めている。ポリゴン内部ではピクセルを分割せずに色値を求めるので、ポリゴン内部について高速化が図られる。
【０００７】
しかしながら、この方法は、ポリゴンを複数描画する場合、ポリゴンとポリゴンの境界で背景色が混ざってしまうという欠点がある。したがって、この方法は、直線や点などの単体図形を描画する場合に比較的効果があるが、複数のポリゴンを描画する場合にはあまり使われない。
【０００８】
第２の方法は、図１０（ｃ）のように、ディスプレイの解像度よりも高解像度でポリゴンを描画する方法である。この場合、ポリゴンはいったんフレームバッファとは異なる、ディスプレイの解像度よりも高解像度のレンダリングバッファ上に描画される。図１０（ｃ）の例では縦横２倍の解像度で描画している。複数のポリゴンを描画する場合でも、すべてのポリゴンについて上記のように高解像度のレンダリングバッファに描画する。最終的に、すべてのポリゴンがレンダリングバッファに描画された後、描画結果を低解像度のフレームバッファに縮小して転送する。この際、フレームバッファ上の各々のピクセルについて、対応するレンダリングバッファ上の複数（図１０（ｃ）の例では４個）のピクセルの色データを、フィルタリング（単なる平均化でも良い）してからフレームバッファに書き込む。以上により、図１０（ｂ）とほぼ同様な結果を得ることができる。この方法の長所は、フィルタリングはすべてのポリゴンをレンダリングバッファに描画した後で良いので、第１の方法のように、ポリゴン間の境界で背景色が混ざってしまうことがない。したがって、複数のポリゴンを描画する場合のアンチエイリアシング方法としては好ましい方法であると言える。また、各ピクセル内の任意の位置で、任意のサンプル数でサンプリングを行うことができるため、サンプリング位置に応じた重み付けによるフィルタリングを行うことにより画質を向上させることも可能である。
【特許文献１】特開平６−６８２７１号公報（第９頁、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の第２の方法では、いったん高解像度のレンダリングバッファへ描画するために、フレームバッファへ直接描画するよりも描画時間が遅くなってしまうという課題がある。図１０（ｃ）の例では、４倍の解像度であるから、単純に図１０（ａ）の４倍の描画時間がかかってしまうことになる。実際には、この他に、フレームバッファへの転送時間や、フィルタリング処理時間がかかってしまうので、さらに描画が遅くなってしまう。
【００１０】
また、上記の第２の方法は、第１の方法とは異なり、エッジ部のピクセルだけではなく、ポリゴン内部のピクセルに関しても同じ高解像度でレンダリングバッファに描画する必要がある。これは以下の理由による。
【００１１】
例えば、図１１に示すように、４×４のフレームバッファ上に太線のような三角形のポリゴンを描画する場合を考える。ピクセルの中心点がポリゴン内部に含まれるピクセルのみを描画するものと約束するとき、「０」以外の数字が記されたピクセルが描画されることになる。これらの数字は、例えばピクセルごとのカラー値を表している（深度値（Ｚ値）でも良い）。これに対し、図１２では、図１１と同じポリゴンを、フレームバッファとは異なるレンダリングバッファ上に、ポリゴンのエッジ部のピクセルに対しては４倍の解像度で描画している。当然ながら、エッジ部のピクセルを描画するためには、通常の４倍のメモリアクセス時間が必要である。これに対して、ポリゴンの内部のピクセルについては、１回のメモリアクセス時間で済むはずであるが、実際にはそうならない。なぜなら、ポリゴンの内部のピクセルとエッジ部のピクセルは、連続したレンダリングバッファに格納されるため、ポリゴンの内部のピクセルについてもエッジ部のピクセルと同じ４倍の解像度を持ったメモリ領域が割り当てられなければならないからである。また、レンダリングバッファが一般的なメモリデバイスで構成される場合には、メモリデバイスに固有なバースト長（例えば、４、８、１６など）が存在する。したがって、エッジのピクセルは４サイクル（バースト長４）でアクセスするが、内部のピクセルは１サイクルでアクセスする、というようなことはできない。したがって、内部のピクセルにおいても４倍のメモリアクセス時間が生じてしまい、結果としてアンチエイリアス時の描画時間が非常に遅くなってしまうという課題があった。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明では以下の手段を講じた。すなわち、ポリゴンは複数のサンプル点からなる単位描画領域ごとに処理され、前記単位描画領域のすべてのサンプル点はエッジサンプル点かまたは内部サンプル点かがレンダリングバッファのアドレスに基づいて判定され、前記内部サンプル点は同じサンプル値で近似され、前記エッジサンプル点と前記内部サンプル点の組み合わせに応じてメモリ格納イメージが決定され、前記単位描画領域のサンプル値は前記メモリ格納イメージに従ってレンダリングバッファに格納され、前記メモリ格納イメージはアンチエイリアス状態フラグにエンコードされ、前記アンチエイリアス状態フラグは領域情報バッファに格納され、前記レンダリングバッファのメモリアクセスは、あらかじめ参照された前記アンチエイリアス状態フラグがデコードされた結果であるメモリ格納イメージに基づいて必要最小限に行われる。前記メモリ格納イメージは、等値アドレス領域およびエッジアドレス領域からなり、前記等値アドレス領域には前記内部サンプル点のサンプル値が配置され、前記エッジアドレス領域には前記エッジサンプル点のサンプル値が配置される。
【発明の効果】
【００１３】
本発明のアンチエイリアシング方法によれば、ポリゴンのエッジ部と内部の描画に対して、レンダリングバッファのエッジアドレス領域と等値アドレス領域にそれぞれ割り当てるので、エッジ部を高解像度、内部を低解像度で描画でき、エッジアドレス領域に比べて等値アドレス領域のデータアクセスが低減し、全体としてレンダリングバッファへのアクセス量が大幅に低減され、アンチエイリアシング処理が高速化されるという効果がある。また、ポリゴンのエッジ部ではレンダリングバッファが高解像度であるので、隣り合うポリゴンの境界でも背景色が混ざるといった画質劣化が生じない。したがって、アンチエイリアシング処理の高画質化と高速化を同時に実現することが可能である。また、メモリアクセスに起因する消費電力を低減できることから、特に低消費電力が求められる電池駆動の携帯型電子機器において、画像表示を長時間化できるという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１５】
（実施の形態１）
図１に本発明のアンチエイリアシング方法を示す。図１（ａ）はポリゴンの描画イメージを示し、１６×１６の仮想的なレンダリングバッファ上に、太線で示されたポリゴン１０１を描画する様子を示している。あらかじめ仮想レンダリングバッファは値０で初期化されており、次にポリゴン１０１を描画すると、ポリゴン１０１の内部に存在するサンプル点には「０」以外の数字が書き込まれる。これらの数字は、ポリゴン１０１に含まれる各サンプル点のカラー値を示している。ポリゴン１０１の各サンプル点のカラー値に注意すると、ポリゴンのエッジ付近のサンプル点のカラー値には差が見られるのに対して、ポリゴンの内部のサンプル点のカラー値には等しい部分があることが分かる。これは、ポリゴンを描画する際、図２（ａ）のようなテーブルを参照し、同じ記号（例えば「Ａ」）で示されている２×２のサンプル点（１つのピクセルとなる）がすべてポリゴン内部にある場合には平均化された同じカラー値を書き込み、そうでない場合には各サンプル点ごとに求めたカラー値を書き込むことを示している。実際には、図２（ａ）のようなテーブルを参照しなくても、ピクセルの位置座標の下位ビットで判断することができる。なお、上記の仮想レンダリングバッファは、描画イメージを視覚的に理解するための仮想的なバッファであって、実際のレンダリングバッファへのカラー値の格納は、以下のように行われる。
【００１６】
図１（ａ）において、単位描画領域１０２に対するレンダリングバッファのメモリ格納パターンを図１（ｂ）に示す。単位描画領域１０２とレンダリングバッファのアドレスＡＤＲとの対応関係を、図２を用いて説明する。まず、単位描画領域１０２に対する図２（ａ）のＡ領域の４個のサンプル点は、すべてポリゴンの外部にあるので、アドレスＡＤＲが０の位置にだけカラー値を格納する。Ｂ領域の４個のサンプル点はすべてポリゴンの内部にあるので、アドレスＡＤＲが１の位置にだけカラー値を格納する。Ｃ領域およびＤ領域は、一部のサンプル点のみがポリゴン内部にあるので、アドレスＡＤＲが８〜ＢおよびＣ〜Ｆの位置に４個のカラー値を格納する。すなわち、アドレス０〜３はＡ〜Ｄのいずれかの領域のすべてのサンプル点がポリゴン内部またはポリゴン外部にあって、カラー値がすべて等しい場合に書き込まれるメモリアドレス領域である。アドレス４〜ＦはＡ〜Ｄのいずれかの領域の一部のサンプル点だけがポリゴン内部にあって、カラー値が異なっている場合に書き込まれるメモリアドレス領域である。本発明では、図１（ｂ）のアドレス０〜３のようなメモリアドレス領域Ｄｉを「等値アドレス領域」と呼び、アドレス４〜Ｆのようなメモリアドレス領域Ｄｅを「エッジアドレス領域」と呼ぶ。図２（ｂ）は、単位描画領域のＡ〜Ｄそれぞれの領域について、レンダリングバッファの等値アドレス領域またはエッジアドレス領域のいずれに格納するかを判定するためのフローチャートを示している。このように、レンダリングバッファ上に等値アドレス領域を形成することにより、メモリアクセス量を低減できる。例えば、図１（ｂ）のアドレス２〜７に関しては、ポリゴンを描画する際にアクセスする必要がない。
【００１７】
さらに、図１（ａ）の単位描画領域１０２に対するレンダリングバッファのメモリ格納パターンが図１（ｂ）であるという情報をアンチエイリアス状態フラグとして領域情報バッファに格納する。アンチエイリアス状態フラグとレンダリングバッファへのメモリ格納パターンの対応関係を図３に示す。図３において、例えば図１（ｂ）のメモリ格納パターンに対するアンチエイリアス状態フラグの値は「１１」である。ただし、図３の対応関係は一例であって、この限りではない。しかし、図３の対応関係で共通的に注意すべきことは、領域情報バッファへのアクセス量を少なくするために、アンチエイリアス状態フラグのビット数は小さくすべきであり、等値アドレス領域をなるべく多く使用するようなメモリ格納パターンを優先的に割り当てることである。ただし、等値アドレス領域が全くなく、すべてエッジアドレス領域であるようなメモリ格納パターンを必ず１つ割り当てる必要がある。図３では、そのようなメモリ格納パターンに対して、アンチエイリアス状態フラグの値として「１５」を割り当てている。
【００１８】
図１（ｂ）の形式でレンダリングバッファに格納された描画情報は、最終的には、図４のような描画結果としてフレームバッファに復元されなければならない。そのためには、単位描画領域ごとに前記領域情報バッファからアンチエイリアス状態フラグを読み込み、レンダリングバッファに格納されたカラー値のメモリ格納パターンが図３の対応関係であることを解釈しなければならない。等値アドレス領域であるカラー値は、そのままフレームバッファに書き込まれ、エッジアドレス領域であるカラー値は、例えば図５に示すような回路でフィルタリング（平均化）され、フレームバッファに書き込まれる。図５において、５０１は加算器、５０２は平均化回路、５０３は四捨五入およびクランプ回路を示す。図５では入力端子が４本なので、平均化回路５０２は単に２だけ右シフトする回路で良い。
【００１９】
なお、実際の描画では、ポリゴンを描画する前にレンダリングバッファと領域情報バッファを初期化する必要がある。初期化時には、すべての単位描画領域におけるアンチエイリアス状態フラグ（図３）の値は０に初期化され、レンダリングバッファは等値アドレス領域のみが初期化される。したがって、初期化時のレンダリングバッファのライトアクセス量は通常の１／４となる。また、描画すべきポリゴンの数も本実施の形態のように１個ではなく、複数である場合が多い。その際、２つのポリゴンのカラー値をブレンドしたり、ポリゴンの深度値（Ｚ値）を用いて陰面処理を行うことがある。ポリゴンのカラー値をブレンドするには、最初に描画されたポリゴンのカラー値をレンダリングバッファから読み込む必要があるが、そのためにはまず、描画すべき単位描画領域に対応する領域情報バッファからアンチエイリアス情報フラグを読み込み、次に前記アンチエイリアス情報フラグからレンダリングバッファ上にどのようにデータが格納されているか（メモリ格納パターン）を判定する。その結果、レンダリングバッファの必要な部分のみをリードことでアクセス量を低減することができる。ブレンドを行った後は、新しいメモリ格納パターンおよびアンチエイリアス状態フラグを、それぞれレンダリングバッファおよび領域情報バッファに書き戻す。
【００２０】
また、ポリゴンのＺ値を用いて陰面処理を行う場合、レンダリングバッファはカラー値だけでなくＺ値も格納する必要があるが、Ｚ値についてもカラー値と同じように、レンダリングバッファに「等値アドレス領域」を設けて、アクセス量を低減することが可能である。
【００２１】
なお、以上の処理はすべて単位描画領域ごとに行われる必要がある。したがって、すべてのポリゴンは単位描画領域ごとに走査される。本実施の形態では、単位描画領域の大きさを４×４としたが、それ以外の大きさであってよい。ただし、一般的なレンダリングバッファのアクセスは、４ワード単位、８ワード単位、１６ワード単位というように、２の累乗のワード数単位で行われる場合が多いため、単位描画領域の大きさは２の累乗の倍数、すなわち４の倍数、８の倍数、１６の倍数となっている方が好ましい。また、本実施の形態では、図４のような最終的な出力画像の１ピクセルを描画するのに、レンダリングバッファを４ワード使用している。言い換えれば、ポリゴンを描画するのに１ピクセルあたり４点サンプリングしている。このサンプリング数は、４以外であっても良い。ただし、上記と同じ理由からサンプリング数は２の累乗である方が好ましい。もし、１ピクセルあたりＮ点サンプリングを行う場合、単位描画領域のワード数はＮの倍数となる。このとき、図５のフィルタリング回路は、入力端子がＮ本となり、平均化回路５０２はＮによる除算回路となる。さらに加算器５０１の前段には、ピクセル内のサンプリング位置に応じた重みを乗じる乗算器を備えても良い。
【００２２】
（実施の形態２）
図６は本発明のアンチエイリアシング方法を備えたグラフィックス描画装置を示す。前記描画装置は、ＣＰＵ（中央演算装置）６０１、グラフィックスエンジン６０２、メモリコントローラ６０３、メモリ６０４、ディスプレイコントローラ６０８およびディスプレイ６０９で構成されている。ＣＰＵ６０１とグラフィックスエンジン６０２はＣＰＵバスにより接続され、ＣＰＵ６０１は前記ＣＰＵバスを介してグラフィックスエンジン６０２を制御する。これらは共にメモリバスを介してメモリコントローラ６０３に接続され、メモリ６０４にあるデータをリードしたり、メモリ６０４へデータをライトすることができる。メモリ６０４は、フレームバッファ６０５、レンダリングバッファ６０６、領域情報バッファ６０７で構成されている。なお、これらのバッファは同一のメモリデバイスに集積されていても良いし、別々のメモリデバイスであっても良い。あるいは、その一部がグラフィックスエンジン６０２内部に存在していても良い。
【００２３】
フレームバッファ６０５は最終的な出力画像を格納するためのバッファであり、グラフィックスエンジン６０２によってフレームバッファ６０５上に出力画像が形成された後、ディスプレイコントローラ６０８によって読み取られ、ディスプレイ６０９上に画像が表示される。レンダリングバッファ６０６は、グラフィックスエンジン６０２が描画したアンチエイリアシングされた画像を格納するためのワークメモリとして使用される。なお、レンダリングバッファ６０６上には、グラフィックス描画で一般的に用いられるデータ、例えばポリゴンの描画内容が記述されたディスプレイリストや、ポリゴン表面に貼り付けられるテクスチャデータなどが含まれていてもよいが、本発明はこれらのデータの有無に影響されるものではない。
【００２４】
領域情報バッファ６０７は本発明を特徴づけるものであって、それぞれの単位描画領域に対して、レンダリングバッファ上のメモリ格納パターンがどうなっているかを意味するアンチエイリアス状態フラグを格納するためのバッファである。このバッファもグラフィックスエンジン６０２にとっては一種のワークメモリとして動作するので、レンダリングバッファ６０６に含まれていても構わないが、本実施の形態では、アンチエイリアス状態フラグを格納する領域情報バッファ６０７を強調するためにレンダリングバッファ６０６とは区別している。
【００２５】
グラフィックスエンジン６０２の内部構成を図７に示す。ホストインターフェース７０１はＣＰＵバスに接続され、ＣＰＵとの通信を行う。コントローラ７０２は、ＣＰＵからの命令に従い、グラフィックスパイプライン７０４にポリゴン描画データを投入する。前記ポリゴン描画データは、ＣＰＵからの命令列に含まれていても良いし、外部のレンダリングバッファ上にあるディスプレイリストに含まれていても良い。後者の場合、コントローラ７０２は、メモリバスインターフェース７０３を介して外部レンダリングバッファ上のディスプレイリストをリードし、ポリゴン描画データを取得する。グラフィックスパイプラインは７０４は、次の３つの主要なブロックに分かれている。頂点処理部７０５は、ポリゴンの頂点ごとに座標変換や光源計算などの処理を行うブロックである。ラスタライザ７０７は、ポリゴン内部を単位描画領域ごとに走査し、アンチエイリアシング処理を行うのに加えて、単位描画領域に含まれる各ピクセルに対してテクスチャマッピングや各種ブレンド処理などを行うブロックである。セットアップ部７０６はそれら両者の間にあって、頂点処理部７０５が出力する座標変換および光源計算済みの３つの頂点データから、ポリゴンの幾何形状やポリゴン内部のカラー値やテクスチャ座標などの傾斜情報などを求め、ラスタライザ７０７に入力できるデータ形式に変換する処理を行う。なお、図７は本発明におけるグラフィックスエンジンの構成であるが、一般的なグラフィックスエンジンもほぼ同様の構成であって、本発明を特徴づける構成はラスタライザ７０７よりも下層にある。
【００２６】
図８にラスタライザの内部構成を示す。図８において、ピクセル座標生成部８０１はポリゴン内部を単位描画領域ごとに走査し、アンチエイリアシングを行うために単位描画領域において１ピクセルあたり例えば４点のサンプリングを行い、ポリゴン内部に含まれる各サンプル点の位置座標を求める。テクスチャアドレス生成部８０２、カラー生成部８０３、フォグ生成部８０４、深度値生成部８０５は、前記サンプル点の位置座標からそれぞれテクスチャ座標値、カラー値、フォグ値、Ｚ値を求める。テクスチャカラー生成部８０６はメモリバスインターフェースを介して外部のレンダリングバッファ上にあるテクスチャカラーを読み出す。ただし、このときすでに、ディスティネーションブレンド部８１０は領域情報バッファからアンチエイリアス情報フラグを読み出しおり、前記アンチエイリアス状態フラグが示すメモリ格納パターンと単位描画領域の描画パターン（ポリゴンのエッジか内部か）によってテクスチャカラーは必要なものだけがリードされる。リードされたテクスチャカラーはカラー生成部８０３から出力されるカラーとテクスチャ環境演算部８０７においてブレンドされた後、フォグ生成部８０４から出力されるフォグ値とフォグ演算部８０８においてブレンドされ、ピクセルテスト部８０９に送られる。なお、テクスチャマッピングを行わない場合は、テクスチャ環境演算部８０７はカラー生成部８０３から入力されるカラーをそのまま出力することは言うまでもない。フォグを行わない場合もまた同様である。ピクセルテスト部では、アルファテスト、ステンシルテスト、Ｚテスト（Ｚ値による陰面処理）などが行われる。Ｚテストが行われる場合、深度値生成部８０５から出力されるＺ値と、前記レンダリングバッファからリードされたＺ値が比較される。この場合も前記メモリ格納パターンと前記描画パターンによってＺ値は必要なものだけがリードされる。
【００２７】
ディスティネーションブレンド部８１０における処理の流れを図９に示す。ディスティネーションブレンド部８１０では、フォグ演算部８０８からの出力されたカラーと、前記レンダリングバッファからリードされたカラー値がブレンドされる。この場合も前記メモリ格納パターンと前記描画パターンによってカラー値は必要なものだけがリードされる。ブレンド処理後の最終的なカラーと深度値生成部８０５が生成したＺ値は、前記レンダリングバッファにライトされる。このとき、前記メモリ格納パターンと前記描画パターンから求められた、新しいメモリ格納パターンに従ってライトされる。最後に、新しいメモリ格納パターンに対応するアンチエイリアス状態フラグが領域情報バッファに格納される。
【産業上の利用可能性】
【００２８】
本発明のアンチエイリアシング方法を用いた描画装置は、グラフィックス描画機能を搭載するさまざまな電子機器、例えば、携帯電話、ＰＤＡ、デジタルテレビ、カーナビゲーションシステム、家庭用ゲーム機、パーソナルコンピュータ等において用いることができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態１におけるアンチエイリアシング方法を示す図
【図２】本発明の実施の形態１におけるアンチエイリアシング方法を補足的に説明するための図
【図３】本発明の実施の形態１におけるアンチエイリアス状態フラグとメモリ格納イメージの対応関係を示す図
【図４】本発明の実施の形態１における最終的な出力画像を示す図
【図５】本発明の実施の形態１におけるフィルタリング回路の構成図
【図６】本発明の実施の形態２におけるグラフィックス描画装置の構成図
【図７】本発明の実施の形態２におけるグラフィックスエンジンの構成図
【図８】本発明の実施の形態２におけるラスタライザの構成図
【図９】本発明の実施の形態２におけるディスティネーションブレンド部の処理の流れを示す図
【図１０】従来のアンチエイリアシング方法の種類を示す図
【図１１】従来のアンチエイリアシング方法における最終的な出力結果を示す図
【図１２】従来のアンチエイリアシング方法を示す図
【符号の説明】
【００３０】
１０１    ポリゴン
１０２    単位描画領域
５０１    加算器
５０２    平均化回路
５０３    四捨五入およびクランプ回路
６０１    ＣＰＵ（中央演算装置）
６０２    グラフィックスエンジン
６０３    メモリコントローラ
６０４    メモリ
６０５    フレームバッファ
６０６    レンダリングバッファ
６０７    領域情報バッファ
６０８    ディスプレイコントローラ
６０９    ディスプレイ
７０１    ホストインターフェース
７０２    グラフィックスコントローラ
７０３    メモリバスインターフェース
７０４    グラフィックスパイプライン
７０５    頂点処理部
７０６    セットアップ部
７０７    ラスタライザ
８０１    ピクセル座標生成部
８０２    テクスチャアドレス生成部
８０３    カラー生成部
８０４    フォグ生成部
８０５    深度値生成部
８０６    テクスチャカラー生成部
８０７    テクスチャ環境演算部
８０８    フォグ演算部
８０９    ピクセルテスト部
８１０    ディスティネーションブレンド部
１００１〜１００３    ピクセル
【図１】
2005346605.tif 000003
【図２】
2005346605.tif 000004
【図３】
2005346605.tif 000005
【図４】
2005346605.tif 000006
【図５】
2005346605.tif 000007
【図６】
2005346605.tif 000008
【図７】
2005346605.tif 000009
【図８】
2005346605.tif 000010
【図９】
2005346605.tif 000011
【図１０】
2005346605.tif 000012
【図１１】
2005346605.tif 000013
【図１２】
2005346605.tif 000014