(57)【要約】  アンチエイリアシングされたラインおよび文字を生成する方法が開示される。この方法は、分布（３０２）に基づいてテクスチャマップ（４０２）を生成するステップとテクスチャマップを多角形領域（５０２）に適用するステップとを含む。この実施形態の一態様では、分布に基づいてテクスチャマップ（４０２）を生成するステップはさらに、一連の同心半円（４０６）を含むテクスチャマップを生成するステップを含む。テクスチャマップでは、この同心半円は、同心半円の半径のサイズが増大すると減少する輝度を表す。さらに、一実施形態では、テクスチャマップは、ガウス分布（３０２）を使用して生成される。この実施形態の他の態様では、文字（８０１）を定義するテクスチャマップ内のそれぞれのテクセルについて、テクセルと文字（８０１）を形成するそれぞれのラインセグメントとの間の最小距離が計算される。最小距離は、分布（３０２）を使用して輝度値（Ｉ１）を決定するために使用される。その後、テクセルは、文字（８０１）に対するテクスチャマップ（１００２）を形成するために輝度値（Ｉ１）に関連付けられる。状況に応じて、第２の分布に関して求められた最小距離を使用してそれぞれのテクセルに対するハロー値（α１）を決定することにより、それぞれのテクセル値に対するハロー値（α１）が決定されうる。この方法は、表示される文字（８０１）毎に繰り返すことができる。
2007505421.tif 000002
【特許請求の範囲】
【請求項１】
対称分布（３０２）に基づいてテクスチャマップ（４０２）を生成するステップと、
アンチエイリアシングされたラインおよび文字を形成するために前記テクスチャマップ（４０２）を多角形領域（５０２、６０２）に適用するステップと、
を含むアンチエイリアシングされたラインおよび文字を生成する方法。
【請求項２】
対称分布（３０２）に基づいてテクスチャマップ（４０２）を生成する前記ステップは、さらに、一連の同心半円（４０４）を含むテクスチャマップ（４０２）を生成するステップを含み、前記同心半円は減少する輝度を表す（４０４）、請求項１に記載の方法。
【請求項３】
分布（３０２）に基づいてテクスチャマップ（４０２）を生成する前記ステップは、さらに、ガウス分布（３０２）に基づいてテクスチャマップ（４０２）を生成するステップを含む、請求項１に記載の方法。
【請求項４】
前記テクスチャマップ（４０２）を多角形領域（５０２）に適用する前記ステップは、さらに、テクスチャマップ（４０２）の第１行を使用して前記ラインの一部を形成するステップを含む、請求項１に記載の方法。
【請求項５】
分布（３０２）に基づいてテクスチャマップ（４０２）を生成する前記ステップは、さらに、テクスチャマップ（４０２）内のピクセル毎に、
テクセルと文字（８０１）を形成するそれぞれのラインセグメント（８０２）との間の最小距離を決定するステップと、
前記最小距離を使用して、対称分布（３０２）に基づき輝度値を決定するステップと、
前記テクセルと前記輝度値（Ｉ１）とを関連付けて、テクスチャマップ（４０２）を形成するステップとを含む、請求項１に記載の方法。
【請求項６】
表示されるライン毎または文字毎に、対称分布（３０２）を使用して生成される少なくとも１つのテクスチャマップ（４０２）を格納するためのテクスチャメモリ（１１１）と、
前記テクスチャメモリ（１１１）に結合され、前記テクスチャマップ（４０２）を多角形領域（５０２、６０２）に適用して、アンチエイリアスされたラインおよび文字を形成するように動作可能なグラフィックプロセッサユニット（１０９）と、
を備えるアンチエイリアシングされたラインおよび文字を形成するディスプレイシステム（１００）。
【請求項７】
前記テクスチャマップ（４０２）は、ガウス分布（３０２）に基づく、請求項６に記載のシステム。
【請求項８】
テクスチャマップ（４０２）の第１行は、前記ラインの一部を形成するために使用される、請求項６に記載のシステム。
【請求項９】
前記プロセッサ（１０９）は、
前記キャラクタマップ（８００）と文字（８０１）を形成するそれぞれのラインセグメント（８０２、８０４）との間の最小距離を決定し、
前記最小距離を使用して、対称分布（３０２）に基づき輝度値（Ｉ１）を決定し、
前記テクセルを前記輝度値（Ｉ１）と関連付けて前記テクスチャマップ（１０００）を形成するように動作可能である、請求項６に記載のシステム。
【請求項１０】
前記プロセッサ（１０９）は、さらに、前記最小距離を第２の分布とともに使用してそれぞれのテクセルに対するハロー値（α１）を決定することによりそれぞれのテクセル値に対するハロー値（α１）を決定するように動作可能である、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００３年５月２０日に出願した仮特許出願第６０／４７２，３３５号の利益を主張する。
【０００２】
本発明は、コンピュータ生成グラフィックスの分野に関するものであり、より具体的には、ラインおよび文字のアンチエイリアシングのためのテクスチャベースの方法およびシステムに関するものである。
【背景技術】
【０００３】
多くの利用する分野において、複雑な機械のオペレータは信頼できる視覚的フィードバックデバイスを持つことが重要である。通常、これらのフィードバックデバイスは、ディスプレイモニタであり、陰極線管（ＣＲＴ）ディスプレイ、ＬＣＤディスプレイ、プラズマディスプレイなどを使用して実装されうる。以前には、これらのディスプレイ用のイメージは、通常、専用イメージ生成ソフトウェアを実行する専用グラフィック処理ユニットにより生成されていた。
【０００４】
近年、コストを低減し、交換部品を確実に入手できるように努力する中で、プロプラエタリグラフィック処理ユニットおよびディスプレイシステムは、ディスプレイ上にイメージを生成するオフザシェルフ（ＣＯＴＳ）のグラフィック処理ユニット（ＧＰＵ）で置き換えられた。ＣＯＴＳ  ＧＰＵの欠点は、ＣＯＴＳ  ＧＰＵが生成するラインは、以前のプロプラエタリシステムと比較して満足できるほど好ましくないという点である。これは、ＣＯＴＳ  ＧＰＵは、通常、百分率範囲計算を使用して表示画面上にラインを生成するからである。つまり、ラインのセンタは、１００％の輝度で描画されるということである。ラインのセンタのいずれかの側で、ラインは、それぞれの範囲外のピクセルの百分率範囲に基づいて低い輝度で描画され、その輝度は、輝度のあるパーセント、例えば５０％の輝度で減少する。これは、ラインの全長にわたって続く。その結果が、比較的粗いアンチエイリアシングのラインである。必要なのは、ラインおよび文字のアンチエイリアシングのための改善された方法およびシステムである。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明の一実施形態では、グラフィックディスプレイ上に非エイリアスラインを表示する方法が開示される。この方法は、対称分布に基づきテクスチャマップを生成するステップ、テクスチャマップの一部を使用してラインの部分を形成するステップ、およびテクスチャマップの全体を使用してラインの終点を形成するステップを含む。
【０００６】
他の実施形態では、この方法は、さらに、一連の同心半円を含むテクスチャマップを生成するステップを含む。テクスチャマップでは、この同心半円は、同心半円の半径のサイズが増大すると減少する輝度を表す。さらに、一実施形態では、この半円により表される輝度は、ガウス分布に従って減少する。
【０００７】
他の実施形態では、アンチエイリアシングされたラインおよび文字を生成する方法が開示される。この方法は、分布に基づいてテクスチャマップを生成するステップとテクスチャマップを多角形領域に適用するステップとを含む。
【０００８】
この実施形態の一態様では、分布に基づいてテクスチャマップを生成するステップは、一連の同心半円を含むテクスチャマップを生成するステップをさらに含む。テクスチャマップでは、この同心半円は、同心半円の半径のサイズが増大すると減少する輝度を表す。さらに、一実施形態では、ベースとなるテクスチャマップは、ガウス分布を使用して生成される。
【０００９】
この実施形態の他の態様では、テクスチャマップのそれぞれのテクセルについて、テクセルと文字を形成するそれぞれのラインセグメントとの間の最小距離が計算される。最小距離は、対称分布から判断されるようなその距離に対する輝度を使用して輝度値を求めるために使用される。その後、テクスチャマップを形成するために輝度値に関連するテクセルが使用される。状況に応じて、第２の分布に関して求められた最小距離を使用してそれぞれのテクセルに対するハロー値を決定することにより、それぞれのテクセル値に対するハロー値が決定されうる。この方法は、表示される文字毎に繰り返すことができる。
【００１０】
本発明は、以下では、図面とともに説明され、類似の番号は類似の要素を示す。
【発明を実施するための最良の形態】
【００１１】
以下の詳細な説明は、本質的に例にすぎず、発明またはアプリケーションおよび発明の使用を限定することを意図されていない。さらに、前述の技術分野、背景技術、図面の簡単な説明、または以下の詳細な説明で提示されている明示または暗示されている理論のいずれによっても束縛される意図もない。本発明のさまざまな方法は、どのようなプログラミング言語を用いてもコーディングされることが可能であり、本発明の教示は、どのようなコンピュータ言語および／またはプログラムインターフェイスにも適用可能である。好ましい一実施形態では、よく知られているＯＰＥＮＧＬグラフィック用アプリケーションプログラムインターフェイスが使用される。
【００１２】
本発明の一実施形態では、エイリアシングアーティファクトを持たないディスプレイ上にラインを描画する方法が提供される。本発明の方法では、一連の同心半円を含むテクスチャマップは、ライン幅毎に生成される。半円を含む弧のそれぞれが表す輝度は、弧の半径が増大するにつれガウスまたは正規分布などの対称分布に従って減少する。その後、テクスチャマップはラインにマッピングされる。この方法で、ラインの輝度は、対称分布に従って、ラインのセンタから外に向かって減少する。
【００１３】
図１〜３を参照すると、本発明の一実施形態では、直線は、ディスプレイシステム１００のディスプレイ１０２上に表示される。ディスプレイシステム１００は、グラフィックおよび／またはテキスト情報をユーザまたはオペレータに表示する必要がある環境で使用されうる。一実施形態では、ディスプレイシステム１００は、航空機内で使用され、ディスプレイ１０２は、航空機の高度のグラフィック表現などのフライト情報を表示する。例えば、まっすぐな水平線は、水平な航空機を表すことができ、一方で傾斜した線は、横傾斜の航空機を表すことができる。
【００１４】
ディスプレイシステム１００は、さらに、メインメモリ１０８およびグラフィック処理ユニット１０９に結合するノースブリッジインターフェイス１０６などのメモリアービトレータに結合された中央処理ユニット１０４を備える。グラフィック処理ユニット１０９は、フレームバッファ１１０を介してディスプレイ１０２に結合する。
【００１５】
中央処理ユニット（ＣＰＵ）１０４は、一実施形態では、航空機実施形態における高度センサなどのさまざまなサブシステムからデータを受信し、さまざまなタスクのうちとりわけ、グラフィック処理ユニットに送るデータを準備する。好適なＣＰＵ  １０４は、当業ではよく知られており、カリフォルニア州サンノゼのインテル社などのメーカーから市販されている。
【００１６】
メインメモリ１０８は、ＣＰＵ  １０４およびグラフィック処理ユニット１０９で必要とされ、実行されるデータおよびコンピュータプログラムを格納する。メインメモリ１０８は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、フラッシュメモリなど、どのような標準的な手段によっても実装されうる。さまざまなメモリコンポーネントが混合され、整合が取られ、最終設計の選択は、当業者であれば容易に行えることは当業ではよく知られている。メモリは、アイダホ州ボイシのマイクロン社などのメーカーから市販されている。
【００１７】
グラフィック処理ユニット１０９は、ＣＰＵ  １０４から表示されるデータを受け取り、ディスプレイ１０２を駆動するために使用されるコマンドを生成する。グラフィック処理ユニット１０９は、メインメモリ１０８に格納されているソフトウェアルーチンを実行して、ディスプレイ１０２を駆動するコマンドを生成する。ＣＰＵ  １０４およびメインメモリ１０８は、ノースブリッジインターフェイス１０６などのメモリアービトレータを介してＣＰＵ  １０９に結合する。ノースブリッジインターフェイス１０６は、ＣＰＵ  １０４、メインメモリ１０８、およびＧＰＵ  １０９の間のインターフェイスを形成する（アドバンスグラフィックポートまたは類似のグラフィックポートを介して）。
【００１８】
さらに、本発明では、グラフィック処理ユニット１０９は、テクスチャメモリ１１１からテクスチャマップの形でデータを受信し、テクスチャマッピングを実行して、以下で詳述するように、ラインおよび文字を形成する。ＧＰＵ  １０９は、カリフォルニア州サンタクララのＮＶＩＤＩＡ社を含む多くの企業から市販され、製造されている。ノースブリッジインターフェイス１０６は、当業では知られており、カリフォルニア州サンノゼのインテル社などのメーカーから入手可能である。テクスチャメモリ１１１は、ＲＡＭ、フラッシュメモリなどテクスチャマッピングを格納することができるメモリであればどのようなタイプのものでもよい。
【００１９】
すでに説明されているように、民生品のＧＰＵを使用すると、ディスプレイシステムにはラインおよび文字のエイリアシングが生じる。エイリアシングは、低解像度ディスプレイではより顕著になる傾向があるが（例えば、２．５４ｃｍ（１インチ）当たり１２０ドット以下）、本発明の教示は、任意の解像度のディスプレイに適用可能である。市販のＧＰＵは、通常、ラインを、センタ領域のいずれかの側の域外ピクセルでは減少する輝度を持つ領域を含む１つの完全輝度センタ領域（すべてのピクセルが完全にラインによりおおわれている）として描画する。これらの域外ピクセルの輝度は、それぞれの域外ピクセルのラインの百分率範囲を反映する。例えば、幅１．５のピクセル水平線がピクセル行をセンタに描画される場合、そのラインの長さに対するそのピクセル行の内側にあるすべてのピクセルは、十分におおわれ、十分な輝度で描画される。このセンタ行の真上および真下のピクセルは、ラインによって１／４おおわれ、センタの２５％で強化される。このように輝度の変化が粗いため、ブロックエッジまたはエイリアシングが生じる。ラインのエイリアシングを避けるため、本発明では、テクスチャマッピングが使用され、ラインエッジが複数の域外ピクセルにまたがって明から暗まで徐々に遷移するようにラインを描画する。
【００２０】
本発明の教示によりアンチエイリアシングされたラインを出力する例示的方法は、図２ａ〜２ｂに示されている。図２ａ〜２ｂは、本発明の教示によりアンチエイリアシングされたラインを生成する方法の一実施形態を例示する流れ図である。このプロセスは、２つの段階を伴う。第１の段階では、図２ａに示されているように、システムで必要なライン幅毎にテクスチャメモリを初期化する。次に、第２段階で、図２ｂに示されているように利用可能なライン幅のレパートリーに基づき個々のラインを描画する。
【００２１】
図２ａを参照すると、ステップ２０２で、ディスプレイに表示可能なラインの本数が選択される。例えば、一実施形態では、０．４１ｍｍ（１６ｍｉｌｓ）、０．４８ｍｍ（１９ｍｉｌｓ）、０．７１ｍｍ（２８ｍｉｌｓ）、および１．０７ｍｍ（４２ｍｉｌｓ）のライン幅が使用可能である。これらの幅は、例示する目的でのみ使用され、任意のライン幅または一連のライン幅が選択されうる。通常、太さは、表示される情報を設計する際に選択される。
【００２２】
その後、ステップ２０４で、ライン幅毎に、テクスチャマップのテクスチャ幅が、ライン幅から計算される。テクスチャ幅は、ライン幅よりも上の次の２のべき乗に等しい。例えば、ライン幅が０．０５ｃｍ（０．０２インチ）の場合、テクスチャ幅は少なくとも０．０５ｃｍ（０．０２インチ）である。テクスチャ幅はテクスチャマップの縦軸（ｓ軸）である。テクスチャ長は、テクスチャ幅の２倍であり、横軸（ｔ軸）である。したがって、横軸（ｔ軸）は、縦軸（ｓ軸）の２倍大きい。テクスチャマップ毎に、テクスチャメモリ内の領域に、テクスチャ幅×２×テクスチャ幅のサイズが割り当てられる（ステップ２０６）。
【００２３】
次に、ステップ２０８で、テクスチャマップがライン幅毎に作成される。例示的な一実施形態では、それぞれのテクスチャマップは、一連の同心半円を含み、それぞれの半円は減少する輝度を表し、輝度は半円の半径が増大するとともに減少する。輝度の減少は、対称分布曲線に従う。この分布曲線は、通常、ライン幅の１／２に相関する距離のところで半輝度点に達するように描画される。一実施形態では、輝度はガウス分布に従って減少するが、他の対称分布曲線が使用されることも可能である。図３ａには、ガウス曲線３０２が示されている。ガウス曲線は、以下の公式により生成される。
【００２４】
【数１】
2007505421.tif 000003
ｅは、超越数２．７１８２８．．．であり、πは、超越数３．１４１５９．．．であり、μは、位置パラメータであり、σは、スケールパラメータである（統計学では、μは平均と呼ばれ、σは標準偏差と呼ばれる）。
【００２５】
ガウス曲線３０２では、図３ａからわかるように、最大輝度を表す最大値Ａは、分布のセンタにあることに注意されたい。輝度は、センタ値Ａのいずれかの側で減衰する。本発明では、ガウス曲線３０２は、ラインの所望の外観をモデル化するために使用されることができる。ラインのセンタは、ラインの最も輝度の高い部分となり、センタ部のいずれかの側のラインの輝度は、ガウス分布に従って減少する。ガウス曲線の滑らかな対称的な減少により、ラインの外観が滑らかに漸減し、エイリアシングの効果を排除できる。
【００２６】
一実施形態では、ガウス曲線３０２は、図３ａに示されているように、０．４１ｍｍ（１６ｍｉｌ）ラインに使用される。０．４１ｍｍ（１６ｍｉｌ）ラインでは、５０％の点の間にテクスチャマップ空間内に０．４１ｍｍ（１６ｍｉｌ）の分離相当分がある、つまり、それは、ｆ（ｘ）値が、ガウス曲線３０２上の点Ｂおよび点Ｃにより例示されているように最大値の半分である点である。図３ｂは、０．４８ｍｍ（１９ｍｉｌ）ラインに対するガウス曲線３０４を例示する。ガウス曲線３０４は、５０％点の間の０．４８ｍｍ（１９ｍｉｌ）の分離相当分を持つ。これは、図３ｂのガウス曲線３０４に例示されており、ガウス曲線３０４上の点Ｄと点Ｅとの間に０．４８ｍｍ（１９ｍｉｌ）の分離相当分があり、点Ｄおよび点Ｅは５０％点である。
【００２７】
図４に、ガウス分布を使用する０．４１ｍｍ（１６ｍｉｌ）ラインに対し生成されたテクスチャマップ４０２を例示する。一実施形態では、テクスチャマップ４０２は、それぞれの半円が特定の輝度を表す一連の同心半円を含む。半円の半径が大きいほど、半円が表す輝度は低くなる。前述のように、一実施形態では、輝度は、ガウス分布に基づいて減衰する。例えば、例として示すテクスチャマップ４０２は、図３ａに示されているガウス分布に基づく。図４に示されているように、第１の曲線４０４は、特定の輝度を表す。例えば、ＦＦｈｅｘが最高輝度を表し、０ｈｅｘが最低輝度を表す一実施形態では、第１の曲線４０４は、８０ｈｅｘの輝度を持つことができる。大きな半径を持つ第２の曲線４０６は、４０ｈｅｘの輝度を表すことができる。これら２つの曲線の間の点は、２つの値の間で一様に遷移する。したがって、半円の半径が増大すると、半円が表す輝度値は減少する。一実施形態では、使用されることができるそれぞれの異なるライン幅について異なるテクスチャマップがある。ステップ２１０で、異なるテクスチャマップがテクスチャメモリに格納される。
【００２８】
一実施形態では、半円は、ライン幅の半径を持つ半円内に描画される。図４に示されているように、横軸はｔ軸であり、縦軸はｓ軸である。テクスチャマップのプロファイルは、ｓ＝１、ｔ＝０．５をセンタとする。
【００２９】
次に図２ｂを参照すると、いったんテクスチャマップ４０２が生成されると、テクスチャマップ４０２は、アンチエイリアシングされたラインを生成するために使用されることができる。第１に、計算されるライン幅およびラインの終点は、ステップ２３２で与えられる。次に、テクスチャマッピングが有効にされ、ラインサイズに対する適切なラインテクスチャが選択される（ステップ２３４）。また、このステップで、与えられたテクスチャに対するテクスチャ幅が受け取られる。一実施形態では、ラインは、丸められた２つの終点を使用して、丸められた一方の終点を使用して、または丸められた終点である終点を使用しないで、描画されることができる。ラインへの丸められた終点は、ラインをより均一に見せかけ、アンチエイリアシングされたエッジを持たせる傾向があるが、描画するのには幾分より複雑でもある。ステップ２３６で、ラインに対し２つの丸められた終点を使用するのか、単一／丸められていない終点を使用するのかの選択が行われる。
【００３０】
丸められていない終点が使用される場合、テクスチャマップの最下行のみがマッピングされラインを形成する。テクスチャマップの最下行は図４のボックス４０８として示され、ｓ軸内で、またｔ軸全体にまたがって１テクセルだけ延びている（テクセルは、１ピクセルに相当するテクスチャ空間である）。図５ａでは、適用されるテクスチャマップを持つ、例としてのライン５０２が示されている。ラインは、終点（Ｘ１，Ｙ１）から（Ｘ２，Ｙ２）まで描画される。ラインは、（Ｘ１，Ｙ１）と（Ｘ２，Ｙ２）の間のラインのセンタを縦方向に等分する矩形を形成することにより描画される。その矩形の隅の座標は、図５ａで、Ｘ、Ｙ、Ｓ、Ｔの形で指定され、ＸおよびＹは表示空間内のラインの隅のデカルト座標であり、ＳおよびＴはライン５０２に適用されるようなテクスチャマップのデカルト座標である。Ｔ座標は、ラインに垂直に０から１まで変化し、Ｓは、ラインに平行に１．０の定数に設定されることに注意されたい。このため、テクスチャマップの最後の行（Ｓ＝１）はラインの全長にわたって引き延ばされる。ＯＰＥＮＧＬの用語では、これは、テクスチャエッジクランピングと呼ばれる。ラインのセンタは、完全輝度であり、センタからライン幅の半分のところにあるピクセルは半輝度である。矩形領域内のそれぞれのピクセルのＳおよびＴ座標は、Ｘ、ＹとＳ、Ｔの両方における矩形内の同じ相対オフセットとなるように計算される（ステップ２３８）。しかし、Ｓ座標は矩形の両端で同じであるため、すべてのピクセルは同じＳ値を持つことになる（Ｓ値は変わらない）。その一方で、Ｔ座標はライン５０２の幅にそって０から１に遷移する。
【００３１】
ライン５０２のセンタでは、Ｔ＝０．５およびＳ＝１であるテクスチャマップのセンタがマッピングされることに注意されたい。テクスチャマップ４０２は、Ｔ＝０．５およびＳ＝１で全輝度である。Ｔ＝０およびＴ＝１では、テクスチャマップ４０２の輝度は０であり、したがって、ライン５０２上の相当する位置は、０輝度またはその付近である。ライン５０２のセンタからライン幅オフセットの半分のところにあるピクセルは、Ｔ＝０．２５またはＴ＝０．７５であるテクスチャマップ４０２の部分を持つ。Ｔ＝０．２５またはＴ＝０．７５のところのテクスチャマップの輝度は５０％輝度を表す。つまり、テクスチャマップ４０２のセンタは、ライン５０２のセンタ５０１にマッピングされ、テクスチャマップ４０２のエンドは、輝度が０輝度に近づくか、または０輝度の場合に、ライン５０２の幅のエンドにマッピングされる（ステップ２４０）。テクスチャマップを実行するために使用される正確なプロセスは当業ではよく知られている。例えば、「Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ（コンピュータグラフィックスへの入門），ｂｙ  Ｊ．Ｄ．Ｆｏｌｅｙ，Ａ．ｖａｎ  Ｄａｍ，Ｓ．Ｋ．Ｆｅｉｎｅｒ，Ｊ．Ｆ．Ｈｕｇｈｅｓ，ａｎｄ  Ｒ．Ｌ．Ｐｈｉｌｉｐｓ，Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，１９９４」でテクスチャマッピングの概要が説明されている。この文献は、参照により本明細書に組み込まれる。ラインを生成するためにオーバーサンプリングを使用するのが好ましい。オーバーサンプリングでは、複数のテクセルを使用して、それぞれのピクセルにマッピングする。一実施形態では、４×４のテクセルのアレイが、１６回のオーバーサンプリングで、表示空間内のそれぞれのピクセルにマッピングされる。オーバーサンプリングの他のレベルは使用できるか、またはオーバーサンプリングは使用されることができない。
【００３２】
単一の丸められたエッジを持つラインも、単一テクスチャ化矩形で描画されることができる。この実施形態では、この矩形は、再び、センタラインにより等分されるが、図５ｂに示されているように、一方のエッジ上で延長され、丸められたエッジを囲む。その後、テクスチャ化矩形は、丸められた端のＳ＝０から丸められていない端のＳ＝Ｎまで描画される。Ｎは、（Ｘ１，Ｙ１）を通るラインの垂直でＳ＝１となるように計算される。これにより、エンドキャップ（丸められたエンド）は、Ｓ＝０からＳ＝１の場合の矩形についてテクスチャマップ全体をマッピングすることにより第１の終点の左にある小さな延長矩形内に丸められる。その後、テクスチャマップ４０２の最後の行（Ｓ＝１）が、（Ｘ１，Ｙ１）から（Ｘ２，Ｙ２）までのラインの長さにまたがって繰り返される。テクスチャモードは、完全テクスチャを繰り返すのではなく、エッジテクセル（Ｓ＝１およびＴ＝０から１の場合）を「クランプ」する（または繰り返す）ように設定されなければならないことに注意されたい。テクスチャエッジクランピングでは、Ｓ＝１とＳ＝Ｎとの間のすべてのテクセルは、Ｓ＝１テクセルにマッピングされる。Ｔ座標は、丸められていない場合について説明されているのと同じように機能する。他のエンド（Ｘ２，Ｙ２）は、単に２つの座標を切り換えることにより丸められることができることに注意されたい（Ｘ２，Ｙ２からＸ１，Ｙ１まで描画）。
【００３３】
ラインが２つの丸められたエッジを持つ場合、ライン６０２は、図６に示されているように２つの四辺形で構成することができる。ライン６０２を描画する最も単純な方法は、ラインを等分し、２つのサイズの等しい矩形（２つの四辺形など）を描画することである。しかし、例示的方法は、ライン６０２がライン６０２の長さにそった任意の１点で分割される場合に機能する。例えば、完全なラインは、上述のように単一エンドキャップで描画され、その後、第２の矩形は、第２のエンドキャップをレンダリングだけするように描画できる。ラインを等分し、２つの等しい四辺形を使用する利点は、ＳおよびＴ座標が両方の矩形について同じであり、これにより、単一の三角形メッシュで両方の矩形をレンダリングできることにある。描画されるラインの中点から始めると、テクスチャマップ４０２の第１行を含むテクスチャマップ４０２の部分は、図６のＮｍｉｄというラベルが付いている中点から、１のラベルが付いているラインの点にマッピングされる。ステップ２１２では、点Ｎ＝１からＮ＝０まで、テクスチャマップ全体がラインのエンドの描画に使用される。テクスチャマップは減少する輝度を表す一連の同心半円であるため、ラインのエンドは、減少する輝度を持つ半円として現れる。ラインの半分が描画されると、残り半分も、ステップ２１４で、ラインの中点から他エンドまで描画される。
【００３４】
例えば、図６に示されているラインでは、ライン６０２のセンタ６０３からライン６０２の半輝度点６０５までの距離はライン幅の半分である。ライン６０２の半点輝度点６０５は、ラインの輝度が最大輝度の半分である点である。これは、さらに減少する輝度を持つ半輝度点６０５を過ぎて続くライン６０２の全幅ではない。したがって、テクスチャマップ４０２が適用されると、テクスチャマップ４０２の真ん中にある点からテクスチャマップ４０２の半輝度点を表す点までが、ラインのセンタからラインの半輝度点６０５までマッピングされる。図６の例では、１０２４×７６８の解像度に設定されている１５インチ画面上の、例として示す０．４１ｍｍ（１６ｍｉｌ）のラインについてはセンタ６０３から半輝度点６０５までのライン６０２の幅は約１．３５ピクセルである。これは、図４のテクスチャマップのセンタから図４の５０％の輝度同心半円までは、ライン６０２のセンタ６０３からライン６０２の半輝度点６０５まで（ライン６０２のセンタ６０３の両側で）にマッピングされるということを意味する。つまり、テクスチャマップのセンタから５０％同心半円までの距離は、ラインスペースで決められたように１．３５ピクセルだけ延びる。テクスチャマップは、同心半円を含むので、テクスチャ全体がラインにマッピングされる場合のラインの中点では、センタ６０３から半輝度点６０５までのその距離はラインのエンドの丸められた部分の先端の５０％の輝度まで延びる半円の半径である。
【００３５】
図５ａ、５ｂ、および６に示されているように頂点を決定する際に必要になる計算を説明するために、以下の方程式が使用できるが、計算されるラインの種類については少し変更がある。以下の方程式は、２つの丸められたエッジを持つラインの場合のものである。以下の計算では、Ｘ１＝１．２、Ｙ１＝０．８、Ｘ２＝１．６、Ｙ２＝０．５、ＴｅｘｔｕｒｅＷｉｄｔｈ＝０．０２である。
【００３６】
【数２】
2007505421.tif 000004
ただし、テクスチャ幅は図６の図領域内のＳ＝１から０までの距離である。これらの座標は、エンドキャップおよびテクスチャ化されたラインを描画するために適宜オフセットされている約Ｘ１，Ｙ１からＸ２，Ｙ２までのラインをセンタとする矩形を形成する。丸められていないラインの頂点および１つの丸いエッジラインの頂点を計算するために類似の方程式が使用されることができる。
【００３７】
ラインへの丸められた終点を描画する上記の方法は、例にすぎず、本発明で開示されているようにテクスチャマッピングを使用してラインを描画するどのような方法をも使用可能である。
【００３８】
上述のように、テクスチャマッピングは、必要なときにオーバーサンプリング手法を使用していくつかのよく知られているテクスチャマッピング手段のいずれかで実行されうる。上記の方法は、使用可能なラインを形成するが、ライン幅が大きくなるにつれ、対称分布に従って輝度を下げる前にラインの輝度を高めておくことが望ましい場合が多い。図７に示されているように、平坦領域７０４を持つ修正された分布曲線７０２が例示されている。修正された分布曲線７０２は、ラインを生成する際に使用するテクスチャマップを生成するために使用されることができる。一例では、分布曲線７０２は、０．４８ｍｍ（１９ｍｉｌ）ラインのものであり、平坦領域７０４は幅０．０８ｍｍ（３ｍｉｌ）である。この修正された分布曲線７０２は、０．０８ｍｍ（３ｍｉｌ）の全輝度センタを持つラインを生成し、その後、輝度は、修正された分布曲線７０２の残りの部分に従って減衰する。この例により、０．５６ｍｍ（２２ｍｉｌｓ）のライン幅が得られるが、輝度と鮮鋭度は、０．５６ｍｍ（２２ｍｉｌ）プロファイルで描画されたラインよりも高い。
【００３９】
一実施形態では、全輝度は全白色ラインである。全白色ラインが白色表示上に描画されると、ラインは見えなくなるであろう（もちろん、同じ色のラインが同じ色の表示画面上に描画されるときにはいつでもそうなる）。ラインを表示するには、ハローが最初に描画され、その後実際のラインが描画される。ハローは、ラインに対する対比色で描画される大きなライン幅で描画されるラインに類似の形状の領域である（例えば、白色ラインに対し黒色ハロー）。本発明では、ハローは、本発明の方法を介して描画されることもできる。それぞれのライン幅は、関連付けられたハロ幅を持つことができ、それぞれのハローは、関連付けられたテクスチャマップを持つ。ハローが描画された後、黒色の切り欠き内の白色ラインとして表示されるラインが生成されるようにできる。その後、このプロセスでは、黒色ラインを書き込んで、明るい背景内に穴を切り、その後、白色ラインを（細いライン幅で）その穴に書き込む。
【００４０】
本発明の教示に従ってアンチエイリアシングされたラインを描画する方法は、もちろん、連結ラインを描画するためにも使用されることができる。そのため、本発明の方法は、どのレベルの複雑さであっても任意の「スティック」型のフィギュアを描画するために使用できる。さらに、ラインは、英数字およびシンボルを形成するために連結されることもできる。連結ラインを使用して英数字を形成する場合の欠点は、形成された文字が、エンドキャップが次のライン領域とオーバーラップする「マッチ棒」のような外観を持つため、交差点で余分な明るさを生じることがある点である。
【００４１】
アンチエイリアシングされた文字を形成する他の方法は図８〜１０に例示されている。この方法は、表示されるそれぞれの文字に対応するテクスチャマップを計算する。文字に対するテクスチャマップの形成を開始するために、図８に示されているように、文字は、一連のラインセグメントのみとしてキャラクタマップ（８００）上に描画される。図８では、文字Ｘ  ８０１は、第１のラインセグメント８０２および第２のラインセグメント８０４により表される。図８のそれぞれのテクセル（テクスチャ領域内のピクセルに相当）について、そのテクセルから文字内のそれぞれのラインセグメントまでの距離が計算されることができる。テクセルとラインセグメントとの間の最小距離は、そのテクセルに対する輝度値を求めるためにガウス分布などの分布とともに使用される。テクセルからラインペアまでの距離が等しい場合、ラインはテクセルと関連付けられることが可能である。輝度は、前のように見つけられるであろう。輝度はテクセル毎に記録される。
【００４２】
例えば、図８の点Ａ（点（ｔ１，ｓ１）に対応する）は、ラインセグメント８０２からの距離ｘ１およびラインセグメント８０４からの距離ｘ２である。この例では、距離ｘ１は、距離ｘ２よりも小さい。したがって、距離ｘ１は、そのテクセルに割り当てられる輝度値を決定するために使用される。テクセルに割り当てられる輝度値は、図９のガウス分布などの基準分布を使用することにより見つけられる。
【００４３】
図９ａは、輝度対ラインからの距離についての例示的なガウス輝度分布曲線９０２を示している。再び図８を参照すると、文字を構成するラインセグメント上に置かれるすべての点は、全輝度である。図８の与えられた例では、テクセルとラインとの間の距離はｘ１であった。距離ｘ１は、図９ａの輝度分布曲線９０２のｘ軸上に配置される。読んで行くと、その位置について輝度がＩ１であることがわかる。テクスチャマップのテクセルには、この値を割り当てられる。
【００４４】
例としてのキャラクタテクスチャマップ（１０００）が図１０に示されている。文字１００２は、図１〜７で説明されているラインと同様に、点線のアウトライン１００４として示されている、センタラインのいずれかの側に減少する輝度を示す全輝度センタラインを持つ。図８の点（ｔ１，ｓ１）は、図１０上で点Ａ’とラベル付けされている。本発明では、テクスチャマップが、表示されるそれぞれの英数字またはシンボルについて生成される。テクスチャマップは、その後、テクスチャメモリ１１１に格納される。テクスチャマップは、当業で知られているように、文字またはシンボルを出力するため任意の多角形領域にマッピングされることができる。
【００４５】
図１〜７のラインの描画とともに説明されているように、いくつかの背景に対してラインの可視性を高めるために、対比色の「ハロー」が描画され、その後、ラインがハロー内に描画される。例えば、すでに説明されているように、白色ラインを白色背景に表示するために、黒色ハローが描画され、白色ラインはその黒色ハロー内に描画されることになる。本発明では、文字とともにハロを表示するために、所定のテクセルに対するハロー値は、そのハロに対する輝度値が計算されるのと同時に計算されることができる。図９ｂでは、ハロ輝度に対するハロー分布曲線９０４が示されている。図９ｂの分布曲線は図９ａの輝度分布曲線９０２よりも遠くまで広がる。つまり、輝度が非常に小さいか、または存在しないラインからの距離では、ハロー値が存在するということである。このため、文字よりも広いハローが可能であり、つまり、ハローは文字の周りを囲む。この実施形態では、所定テクセルは、輝度値とハロー値の両方を格納する。例えば、図９ａでは、点ｘ１は、Ｉ１の関連する輝度値（輝度）を持つ。図９ｂから、点Ｘ１は、α１の関連するハロー値（アルファ）を持つ。「ＯｐｅｎＧＬＴＭ（登録商標）」の用語では、ハローは、テクスチャコンポーネントのアルファ値を表し、輝度値はルミナンスを表す。
【００４６】
文字は、所望の文字をレンダリングするように適切に位置決めされサイズ設定された単一のテクスチャ化矩形により描画される。その後、所望の文字を含むテクスチャ領域は、テクスチャマップのＴ、Ｓ座標を使用して選択される。これは、所望の位置決めおよびスケーリングとともに完全な文字をマッピングする。この方法で文字を描画する主な利点は、３つある。第１は、交差点が過飽和されないため画像品質が改善される（マッチ棒効果がない）。第２に、完全な文字に対しライン毎に４から６個の頂点ではなく４つの頂点しか必要ないため、頂点の処理および伝送は、かなり縮小される点である。第３に、作業の大半は、オフラインで、またはグラフィックシステムの電源が最初に投入された後１回実行されることができ、そのため、文字描画に必要な実行時計算が大幅に低減されることである。
【００４７】
通常、１つの文字集合が必要なライン幅およびハロー幅毎に描画される。ラインおよびハロ幅が合計サイズでスケーリングされることができる限り、小さな文字から大きな文字が作成されるようにできることに注意されたい。さらに、ほとんどのアプリケーションは、テクスチャを「スーパーサンプリング」し、ラインエッジのプロファイルをより正確にマッピングする。例えば、文字は、フレームバッファ内で通常サイズにマッピングされる場合と同じくらいの大きさのテクスチャメモリの４倍に表されることができる。補間法とともにスーパーサンプリングを使用してイメージを大幅に小さくする（サイズを縮小する）ことは、高い忠実度の複製を出力する技術として当業でよく知られている。このとき、オーバーサイズのマップを保存するための余分なメモリとアンチエイリアシングの効果のレベルとの間にトレードオフの関係がある。テクスチャ内にハローフィールドを含めることは、状況に応じて可能であるが、それは、本発明は、テクセル毎にアルファ（通常１バイト）のみだけでなく、自動ハローイングに使用されるアルファ／輝度（テクセル毎に通常２バイト）と連携するからである。これは、ハロイングされた文字は、２回描画されなければならない、つまり、１回目はハロー色と幅広ライン幅で、２回目は狭いライン幅で描画されなければならないということである。これで、文字定義の数および頂点書き込み回数は２倍になるが、同じ文字を幅広のラインで描画するためにハローライン幅が使用可能であり、それぞれの文字は、テクスチャメモリ内のサイズの半分しかないためメモリを節約できる。
【００４８】
前記詳細な説明では、少なくとも１つの例示的実施形態が提示されたが、膨大な数の変更形態が存在することは理解されるであろう。また、１つまたは複数の例示的実施形態は、例にすぎず、本発明の範囲、適用性、または構成をいかなる形でも限定することは意図されていないことも理解されるであろう。むしろ、前記の詳細な説明は、当業者にとって、１つまたは複数の例示的実施形態を実施するための簡便なロードマップとなるであろう。請求項およびその法的等価物で規定されているように、本発明の範囲から逸脱することなく要素の機能および配置にさまざまな変更が加えられることは理解されるであろう。
【図面の簡単な説明】
【００４９】
【図１】本発明で使用する例示的グラフィックシステムのブロック図である。
【図２ａ】本発明の教示に従ってテクスチャを出力し、その後そのテクスチャを使用してラインを描画する例示的方法の流れ図である。
【図２ｂ】本発明の教示に従ってテクスチャを出力し、その後そのテクスチャを使用してラインを描画する例示的方法の流れ図である。
【図３ａ】例示的ガウス分布の図である。
【図３ｂ】例示的ガウス分布の図である。
【図４】アンチエイリアシングされたラインを生成する例示的テクスチャマップである。
【図５ａ】本発明の教示に従って形成される例示的ラインの図である。
【図５ｂ】本発明の教示に従って形成される例示的ラインの図である。
【図６】本発明の教示に従って形成される他の例示的ラインの図である。
【図７】本発明で使用する分布の他の実施形態を示す図である。
【図８】ラインを生成する際に使用するキャラクタマップである。
【図９ａ】本発明の教示に従う輝度および輝度の分布を示す図である。
【図９ｂ】本発明の教示に従う輝度および輝度の分布を示す図である。
【図１０】例示的キャラクタテクスチャマップである。
【図１】
2007505421.tif 000005
【図２ａ】
2007505421.tif 000006
【図２ｂ】
2007505421.tif 000007
【図３ａ】
2007505421.tif 000008
【図３ｂ】
2007505421.tif 000009
【図４】
2007505421.tif 000010
【図５ａ】
2007505421.tif 000011
【図５ｂ】
2007505421.tif 000012
【図６】
2007505421.tif 000013
【図７】
2007505421.tif 000014
【図８】
2007505421.tif 000015
【図９ａ】
2007505421.tif 000016
【図９ｂ】
2007505421.tif 000017
【図１０】
2007505421.tif 000018
【国際調査報告】
2007505421.tif 000019
2007505421.tif 000020
2007505421.tif 000021