(57)【特許請求の範囲】
【請求項１】
航空機のコックピットのシーンを表示するためのアビオニクス表示システム（１００）であって、
中央処理装置（ＣＰＵ）（１０）と、
前記ＣＰＵ（１０）に動作可能に結合され、少なくとも１つの頂点シェーダ（２０２）を備えるグラフィックス処理装置（ＧＰＵ）（５４）であって、前記ＣＰＵ（１０）は、複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）を表す３次元の頂点データを前記少なくとも１つの頂点シェーダ（２０２）に提供し、かつ前記少なくとも１つの頂点シェーダ（２０２）を呼び出し、シーンの少なくとも一部を表す前記複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）をフレームバッファ（５６）にレンダリングするように構成される、ＧＰＵ（５４）と、
前記シーンを表示するために前記フレームバッファ（５６）に動作可能に結合されたディスプレイ（９０）と
を備え、
前記３次元の頂点データは前記ＣＰＵ（１０）から独立して、前記ＧＰＵ（５４）で２次元のデータセットにマッピングされ、
前記ＧＰＵ（５４）は、前記３次元の頂点データに含まれる１つの頂点に基づいて複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）を生成するように構成される、アビオニクス表示システム（１００）。
【請求項２】
前記ＧＰＵ（５４）および前記フレームバッファ（５６）は、ビデオメモリ（５８）を更に含むグラフィックスカード（５０）により提供され、前記グラフィックスカード（５０）もまた、前記ＣＰＵ（１０）と前記ＧＰＵ（５４）とをインターフェースするためのアプリケーションプログラミングインターフェース（ＡＰＩ）（５２）を提供するように動作可能である、請求項１記載のアビオニクス表示システム（１００）。
【請求項３】
前記ＣＰＵ（１０）は、頂点バッファオブジェクトとしてまたは前記ビデオメモリ（５８）内に保存される点のリストとして、前記頂点データを生成する、請求項２記載のアビオニクス表示システム（１００）。
【請求項４】
前記ＧＰＵ（５４）は、前記フレームバッファ（５６）内に保存されたピクセルデータに対してアンチエイリアシング操作を実行するように動作可能である、請求項１乃至３のいずれか１項記載のアビオニクス表示システム（１００）。
【請求項５】
前記ＧＰＵ（５４）は、ジオメトリシェーダ（２０６）を有する頂点シェーダパイプラインを組み込んでいる、請求項１乃至４のいずれか１項記載のアビオニクス表示システム（１００）。
【請求項６】
前記ＧＰＵ（５４）は、複数の並列頂点シェーダパイプラインを組み込んでいる、請求項１乃至５のいずれか１項記載のアビオニクス表示システム（１００）。
【請求項７】
アビオニクス表示システム（１００）を使用して航空機のコックピットのシーンを表示するための方法であって、
ＣＰＵ（１０）を操作し、複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）を表す頂点データを少なくとも１つの頂点シェーダ（２０２）に提供するステップ（６１０）と、
前記少なくとも１つの頂点シェーダ（２０２）を呼び出し、前記ＣＰＵ（１０）から独立して、前記ＧＰＵ（５４）で前記頂点データを３次元から２次元のデータセットにマッピングして、前記シーンの少なくとも一部を表す前記複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）をフレームバッファ（５６）にレンダリングするステップ（６２０）と、
前記フレームバッファ（５６）からディスプレイ（９０）上に前記シーンを表示するステップ（６３０）と
を含み、
レンダリングする前記ステップ（６２０）は、前記ＧＰＵ（５４）が、３次元の前記頂点データに含まれる１つの頂点に基づいて複数のプリミティブを生成するステップを含む、方法。
【請求項８】
前記ＣＰＵ（１０）とＧＰＵ（５４）とをインターフェースするためのアプリケーションプログラミングインターフェース（ＡＰＩ）（５２）を提供するステップを更に含む、請求項７記載の方法。
【請求項９】
頂点バッファオブジェクトとして前記頂点データを生成するステップと、前記頂点バッファオブジェクトをビデオメモリ（５８）内に保存するステップとを更に含む、請求項７または８に項記載の方法。
【請求項１０】
前記フレームバッファ（５６）内に保存されたピクセルデータに対してアンチエイリアシング操作を実行するステップを更に含む、請求項７乃至９のいずれか１項記載の方法。
【請求項１１】
前記シーンの少なくとも一部を表す複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）を複数の並列頂点シェーダパイプラインを使用して並列でレンダリングするステップを更に含む、請求項７乃至１０のいずれか１項記載の方法。
【請求項１２】
前記シーン内の各ピクセルが前記複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）を含むかどうかを確認し、前記シーン内の前記複数のグラフィックスプリミティブ（３００、３０５、３１０、３１５）の近似を回避するステップを更に含む、請求項７乃至１１のいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、種々の航空機で使用するためのアビオニクス表示システムに関する。
【背景技術】
【０００２】
ここ数十年に亘って、従来のアナログ計器ディスプレイが画面上の電子計器ディスプレイに置き換えられた航空機用のグラスコックピットの使用は、軽飛行機においてさえ益々一般的になってきた［１］。実際、１９８０年代の後半から、このような電子計器ディスプレイを含む公認の電子飛行計器システム（ＥＦＩＳ）は、Ｂｏｅｉｎｇ（登録商標）およびＡｉｒｂｕｓ（登録商標）のほとんどの大型旅客機上の標準的な設備となった。
【０００３】
最近の計算機能力の進展、表示スクリーンおよびナビゲーションセンサ（衛星利用測位（ＧＰＳ）システム、姿勢方位基準装置等）のコストの低減は、ＥＦＩＳをより広い市場に持ちだしたが、これらは一般的に、航空機内での使用に必要とされる特定の必須の表示構成要素、例えば姿勢方向指示器（ＡＤＩ）、水平状態指示器（ＨＳＩ）等を提供するために必要とされる複雑な高解像度のグラフィックスを提供するために、製造業者特有の知的所有権のある技術を依然として使用している。
【０００４】
従って、改善された機能、複雑性および解像度がこのようなＥＦＩＳディスプレイに追加されるにつれて、パイロットに対してディスプレイ上に提供されるシーンを生成するためだけに知的所有権のある技術のプロセッサからより多くの処理力が必要とされる。これは例えばより高いクロックレートで動作するより新しい世代のプロセッサを使用することの利点のいくつかを打ち消すだけでなく、表示出力をプログラミングする際にコーディングの複雑性およびコーディングの長さを増加させる。従って、これにより必要とされる開発時間が増加し、より新しい世代の公認または非公認のＥＦＩＳを提供する際にコード中に導入されるエラーの可能性も増加する。
【０００５】
よって本発明は、従来のＥＦＩＳディスプレイよりも構成するのが簡単で、かつ動作がより迅速な、改善されたアビオニクス表示システムを提供することを追求する。以下に続く説明から、様々な他の利点も明らかになるであろう。
【発明の概要】
【０００６】
本発明の第１の態様によれば、航空機のコックピットのシーンを表示するためのアビオニクス表示システムが提供される。例えばシーンは、数千のグラフィックスプリミティブから構成されるＥＦＩＳ用の複雑な計器表示を含んでよい。アビオニクス表示システムは、中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）およびフレームバッファに動作可能に結合されたディスプレイを備える。
【０００７】
ＧＰＵはＣＰＵに動作可能に結合され、少なくとも１つの頂点シェーダを備える。動作の際、ＣＰＵは、少なくとも１つのグラフィックスプリミティブを表す頂点データを頂点シェーダに提供し、この頂点シェーダを呼び出し、シーンの少なくとも一部を表す少なくとも１つのグラフィックスプリミティブをフレームバッファにレンダリングする。
【０００８】
本発明の第２の態様によれば、航空機のコックピットのシーンを表示するための方法も提供される。方法は、ＣＰＵを操作し、少なくとも１つのグラフィックスプリミティブを表す頂点データを少なくとも１つの頂点シェーダに提供するステップと、この少なくとも１つの頂点シェーダを呼び出し、シーンの少なくとも一部を表す少なくとも１つのグラフィックスプリミティブをフレームバッファにレンダリングするステップと、フレームバッファからディスプレイ上にシーンを表示するステップとを含む。
【０００９】
従来のＣＰＵレンダリングコードを頂点シェーダに置き換えることにより、グラフィックスプリミティブをレンダリングするためにＣＰＵとＧＰＵとの間で転送する必要があるデータ量が低減される。また、コーディングも簡略化され、レンダリング処理も大幅に迅速になる。
【００１０】
加えて、ＣＰＵが必要とする処理力はより少なく、よってＣＰＵを簡略化できる。例えばこれにより、従来の特定用途向けプロセッサを、ＲＩＳＣベースプロセッサまたは例えば携帯電話用途で通常使用されることがある他のプロセッサタイプ［２］等の低電力の標準的な既製品プロセッサに置き換えることができる。このようなプロセッサは冷却要件も少ないので、大型のヒートシンクおよび大きすぎる動力冷却設備を必要とせず、これにより航空機が移送する必要がある全体の電子回路パッケージの重量が低減される。
【００１１】
以下で述べる本発明の様々な実施形態を考えると、様々な追加の利点が当業者には明らかになるであろう。
【００１２】
ここで本発明の様々な態様および実施形態を添付の図面と関連して説明する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるアビオニクス表示システムを示す図である。
【図２】本発明の一実施形態による図１のアビオニクス表示システムのＧＰＵが使用するレンダリングパイプラインを示す図である。
【図３】従来のＣＰＵレンダリングコードを使用して画定されたグラフィックスプリミティブを示す図である。
【図４】従来のＣＰＵレンダリングコードを使用して作成された、異なる精度でレンダリングされたグラフィックスプリミティブを示す図である。
【図５】本発明の様々な実施形態により作成できる、エイリアシングのある、およびアンチエイリアシング済みのグラフィックスを示す図である。
【図６】本発明の様々な実施形態により作成できる、グラフィックスプリミティブを示す図である。
【図７】本発明の様々な実施形態と共に使用できる、複雑なグラフィックスプリミティブを示す図である。
【図８】本発明の様々な実施形態により作成できる、複雑なグラフィックスプリミティブの展開図である。
【図９】本発明の様々な実施形態と共に使用できる、別のグラフィックスプリミティブを示す図である。
【図１０】本発明の一実施形態による、レンダリングパイプラインのフラグメントシェーダによる図９のグラフィックスプリミティブの処理を示す図である。
【図１１】本発明の一実施形態による、図９のグラフィックスプリミティブにフラグメントシェーダによりアンチエイリアシングをどのように適用するかを示す図である。
【図１２】ディスプレイ上のシーンに書き込まれた図９のレンダリングされたグラフィックスプリミティブを示す図である。
【図１３】本発明の様々な実施形態により実装できる方法を示す図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の一実施形態によるアビオニクス表示システム１００を示す。アビオニクス表示システム１００は、航空機のコックピットのシーンを表示するための改善されたグラフィックス処理技術を使用する。加えてこのシステムにより、既に標準によって公認され、より安価で、より簡潔で、および／またはより軽量であり得る標準的な構成要素の使用が可能となり、これにより信頼性が改善され、かつシステム全体の様々な航空機関（ＦＡＡ、ＣＡＡ等）による公認の可能性がより高くなり得る。
【００１５】
アビオニクス表示システム１００は、中央処理装置（ＣＰＵ）１０を備える。ＣＰＵ１０はアビオニクスバス１２を通してアビオニクス２０に接続される。飛行計器に関連するデータはアビオニクスバス１２を通してＣＰＵ１０に伝送され、次にＣＰＵ１０により処理され、続いてディスプレイ９０上に飛行データを表示するために使用される。特定の実施形態では、ＣＰＵ１０は、例えばシステムの信頼性とフォールトトレランスとを確実にするために、比較されたおよび／またはエラーチェックされた実質的に同一の情報を処理する複数の同様のＣＰＵを含む、冗長システムの一部であってよい。よって、プロセッサの重量軽減およびプロセッサに関連する冷却機器は、冗長システムを提供するために多数のこのようなプロセッサを使用する場合、より重要である。
【００１６】
ＣＰＵ１０はシステムメモリ１６を備える。メモリ１６としては揮発性の（例えばＲＡＭ）および／または不揮発性の（例えばフラッシュ）メモリを挙げることができる。様々な実施形態では、ＣＰＵ１０はＩｎｔｅｌ（登録商標）Ｂａｙｔｒａｉｌ  ＳｏＣ、バージョンＥ３８２７プロセッサ［２］である。このプロセッサは電力消費が８ワットであり、かつ軽量である。低電力消費は熱の生成が少ないことを意味するので、ＣＰＵ１０の信頼性が上がる。加えて、Ｅ３８２７プロセッサ［２］は軽量で、安価で、調達しやすく、かつ他の適用分野において十分に試験されている。
【００１７】
ＣＰＵ１０は加えて、グラフィックスバス１８を介してグラフィックスカード５０に結合される。グラフィックスバス１８としては例えば、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）インターフェース、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）インターフェース、またはアクセラレーテッドグラフィックスポート（ＡＧＰ）を挙げることができる。一実施形態では、グラフィックスカード５０はＧｅＦｏｒｃｅ  ＧＴＸ  ７５０  Ｔｉ［３］であり、グラフィックスバス１８はＰＣＩ  Ｅｘｐｒｅｓｓ  ３．０を使用して動作する。
【００１８】
グラフィックスカード５０は、ＣＰＵ１０をグラフィックス処理装置（ＧＰＵ）５４にインターフェースするためのアプリケーションプログラミングインターフェースＡＰＩ５２を提供する。ＧＰＵ５４は、少なくとも１つのプロセッサコアならびに高速ビデオメモリ５８を含む。例えば、６４０個の独立したＣＵＤＡコア［３］を、ＧＰＵ５４において単一命令多重データ（ＳＩＭＤ）並列処理を容易にするために設けてよい。このようなプロセッサコアにより、複雑な数学的なデータ処理に適した迅速かつ強力なハードウェアベースの浮動小数点回路構成が提供される。
【００１９】
このような各プロセッサコアを、ＡＰＩ５２を介してプログラミングし、頂点シェーダ等のレンダリングパイプラインの様々なステージを提供できる。頂点シェーダは、グラフィックスプリミティブの境界を画定する頂点のセットを操作し、頂点の３Ｄ仮想空間位置を２Ｄ座標に数学的に変形させるプログラムであり、この２Ｄ座標において頂点はフレームバッファ５６内に、続いてディスプレイ９０上に現れることになる。位置と同様に、頂点の色およびテクスチャの座標を操作するように頂点シェーダをプログラミングすることもできる。頂点および／またはその様々な属性は、少なくとも１つのグラフィックスプリミティブを表す頂点データにより規定される。
【００２０】
頂点シェーダは、例えばＯｐｅｎＧＬ仕様に従ってプログラミングできる。頂点シェーダをコーディングする際に、知られている様々なＯｐｅｎＧＬ規定ライブラリを使用してよい。様々な実施形態では、Ｃ言語のようなＯｐｅｎＧＬシェーディング言語（ＧＬＳＬ）を使用し、プログラマブルＧＰＵレンダリングパイプラインの頂点シェーダをプログラミングするために使用されるコンパイル済みの文字列セットとして頂点データを生成し、カスタマイズされた画像効果を提供する。頂点シェーダの呼出しは、頂点データにより画定されたグラフィックスプリミティブのレンダリングを実行し、得られた出力はフレームバッファ５６に書き込まれる。
【００２１】
ディスプレイ９０は、フレームバッファ５６に動作可能に結合され、例えばＡＤＩ、ＨＳＩ等を共に示す複数のレンダリングされたグラフィックスプリミティブを含むフルスクリーンのシーンとしてフレームバッファ５６の内容を表示できる。
【００２２】
よってプログラマブルＧＰＵレンダリングパイプラインのカスタマイズ可能な性質を本発明により拡張することにより、ＣＰＵ１０からの作業量をＧＰＵ５４にオフロードできる。加えて、（例えば様々なグラフィックスプリミティブを画定するのに必要な追加の頂点データを決定する）様々な機能がＧＰＵ５４に委任されるので、より迅速な全体の処理が可能となり、これによりＣＰＵ１０が命令およびデータをＧＰＵ５４に送信する時間および次にＧＰＵ５４の終了を待機する時間を消費しないことが保証される。
【００２３】
また、最終的なシーンをレンダリングするのに必要なグラフィックス処理関数を実行するために必要な命令およびデータポイントの数が低減されているので、コーディングは開発者にとって簡略化されている。
【００２４】
例として、発明者は試験において、最適化されていない実施形態に関してさえ、シーン処理が少なくとも２つの要因により高速化されたことを確認した。これは、従来のようにシーンをレンダリングする場合に事前に必要とされた２００〜５００行と比較して、本発明を実装するのに必要なコードの行数は６〜１２行であることに関わらなかった。
【００２５】
図２は、上述のアビオニクス表示システム１００のＧＰＵ５４が使用してよいレンダリングパイプライン２００を示す。レンダリングパイプライン２００は、表示用のグラフィックスプリミティブ等のオブジェクトをレンダリングするためにＧＰＵ５４が実施する操作のシーケンスを規定する。このレンダリングパイプラインは、ＧＰＵ５４の１つのプロセッサコアにより実装してよい一例である。頂点データが互いに独立している場合、ＳＩＭＤ操作を実行できるように、多くのこのようなパイプラインが、それぞれの並列プロセッサコアについて提供されてよい。グラフィックスプリミティブは、例えば三角形、直線、点、頂、円等を含むことができる基本的な描画形状である。
【００２６】
ＣＰＵ１０は、頂点データを含む頂点配列を最初に準備してよい。この頂点データは、例えばＨＳＩの外形等の固定の表示構成要素について、最終的なシーン内の固定の表示構成要素を描画するために必要な、必須のグラフィックスプリミティブを画定する事前構成された頂点配列に保存された静的データを含んでよい。
【００２７】
頂点シェーダ２０２は次に、それぞれの頂点を画定するデータを頂点データ配列からロードする。従来のアビオニクス表示システムは、システム内にシーンを生成するためにＧＰＵレンダリングパイプラインにこのような頂点シェーダを提供しない。それぞれの頂点を画定する属性データは、各頂点ｎについて仮想空間内に少なくとも３次元の位置（ｘvn，ｙvn，ｚvn）を含み、レンダリングパイプライン２００に送信される順序付けされた頂点リストを提供する。頂点リストをグラフィックスプリミティブとしてどのように解釈するかの解釈は、レンダリングパイプライン２００の後の段階で取り扱う。
【００２８】
様々な実施形態では、システムメモリ１６内に保存された頂点配列を使用し、ＡＰＩ呼出しを使用してＧＰＵ５４に頂点属性データを受け渡す。しかしながら、ビデオメモリ５８内に保存された頂点バッファオブジェクトを使用することも可能であり、これは頂点をレンダリングするのに必要なＣＰＵ１０からのＡＰＩ呼出しがより少なくなるという利点を有している。例えばＣＰＵ１０は、システムメモリ１６内で局所的に頂点属性を規定し、次にｇｌＢｕｆｆｅｒＤａｔａ（）関数もしくはｇｌＢｕｆｆｅｒＳｕｂＤａｔａ（）関数を使用して、またはｇｌＭａｐＢｕｆｆｅｒ（）関数もしくはｇｌＭａｐＢｕｆｆｅｒＲａｎｇｅ（）関数を使用してバッファをマッピングすることにより、頂点属性を転送する前にバッファオブジェクトを生成してよい。
【００２９】
頂点シェーダ２０２は、ユーザ定義プログラムに基づいて各入力頂点を出力頂点に変換する。これは通常、例えば仮想空間内でオブジェクトを回転させるための、空間的な３Ｄから２Ｄへの変形を含む。しかしながら、本願では、サポートされるレンダリング機能に関するアドオン効果のために頂点シェーダ２０２を主に使用するので、位置変形は一般的に必要でない。頂点データに関する位置変形の使用を必要としないことにより、処理は更に高速化もされる。頂点シェーダ２０２を使用する頂点処理のこの態様は、以下により詳細に説明される。
【００３０】
頂点シェーダ２０２の出力は次にプリミティブアセンブリに使用される。ユーザがレンダリングしたプリミティブの種類に応じて、次に単純なプリミティブ（すなわち、直線、点または三角形）の順序付けされたシーケンスに分解される。ＯｐｅｎＧＬを使用する様々な実施形態では、この機能は、デフォルト版またはユーザ定義により提供してよいジオメトリシェーダにより提供される。
【００３１】
任意で、次にモザイク化ステージ２０４を使用して、単純なプリミティブのシーケンスをモザイク化してよい。モザイク化ステージ２０４は、モザイク制御シェーダを単純なプリミティブのシーケンスに適用し、続いて固定関数のモザイク化ステージを使用してモザイク化する。モザイク評価シェーダを使用して固定関数のモザイク化ステージの出力を更に処理し、モザイク化ステージ２０４から最終的な出力を提供する。
【００３２】
更なる任意のジオメトリシェーダ２０６を次に使用して、頂点シェーダ２０２の出力または存在する場合は任意のモザイク化ステージ２０４を処理してよい。ジオメトリシェーダ２０６は、例えば頂点の入力リストにより規定されるグラフィックスプリミティブを処理できるユーザ定義プログラム済みステージを提供する。ジオメトリシェーダ２０６からの出力はゼロ以上の単純なプリミティブである。このようなジオメトリシェーダ２０６は例えば、ＯｐｅｎＧＬ３．２またはより新しい仕様の制約内で動作してよい。
【００３３】
ジオメトリシェーダ２０６は、入力リストからプリミティブを削除するように、または単一の入力に複数のプリミティブを生成することによりこれらをモザイク化するように動作可能である。頂点を操作してもよく、例えば直線から点へ、点から三角形へ等、１つの種類から別の種類にプリミティブを変換してよい。ジオメトリシェーダ２０６等のシェーダは、入力データを操作して適切な出力データを提供するプログラムにより提供される。
【００３４】
特定の実施形態では、ジオメトリシェーダ２０６によりまたはプリミティブアセンブリの結果として生成される単純なプリミティブを、変形フィードバックモードで事前定義されたバッファオブジェクトのセットに書き込むことができる。こうして生成されたデータを後に使用するために保持でき、これによりシーンのレンダリングに必要とされる全体の処理を高速化する。このような変形フィードバックモードを、レンダリングパイプライン２００の最終的な出力として追加で効果的に使用してよい。
【００３５】
あるいは、ジオメトリシェーダ２０６の出力を、クリッピングステージ２０８への入力として任意で使用してよい。クリッピングステージは、視野ボリュームの外側と内側との境界に位置するプリミティブを複数のプリミティブに分割する。境界の外側に位置するプリミティブは、出力データセットから選別される。
【００３６】
次に単純なプリミティブをラスタ化ステージ２１０によりラスタ化する。ラスタ化は、プリミティブの入力シーケンスをフラグメントとして知られるそれぞれの２次元画像に変換する。これらのフラグメントの各点は、色および深さなどの情報を含む。
【００３７】
プリミティブのラスタ化は、２つのステップからなる。第１のステップは、ウィンドウ／ディスプレイの座標において整数格子のどの正方形がプリミティブに占有されるかを決定する。第２のステップは、色および深さの値をこのような各正方形に割り当てる。
【００３８】
ラスタ化ステージ２１０により生成されたフラグメントを、ピクセルシェーダと呼ばれることもあるフラグメントシェーダ２１２への入力として提供する。フラグメントシェーダ２１２は、各フラグメントを３つの色および深さの値のセットに処理し、任意でステンシル値データも追加する。深さの値（ｚ値）は、３Ｄ空間におけるフラグメントの深さ位置を規定し、色の値は、ディスプレイ９０上にフラグメントを表示するために必要な従来のＲＧＢ色データを提供する。
【００３９】
次に処理後ステージ２１４は、フラグメントシェーダ２１２の出力データに基づいて、ディスプレイ９０上に表示するためにフレームバッファ５６に書き込むべきデータを決定する。処理後ステージ２１４は最初に、必要に応じて様々な選別試験を適用する。そのように構成する場合、ステンシル試験をフラグメントに適用でき、この試験に失敗したフラグメントが選別される。深さ試験も適用してよく、この試験に失敗した全てのフラグメントは同様に選別されてフレームバッファ５６には追加されない。
【００４０】
次に、フレームバッファ５６に書き込まれているフラグメントと既にフレームバッファ５６内のフラグメントが書き込まれるのと同じ位置に存在する全ての色の値との間に、フレームバッファ混合を適用する。
【００４１】
ステージ２１６において、次にディスプレイ９０上に表示するためにフラグメントデータをフレームバッファ５６に書き込む。任意で、ユーザは、深さ、色、ステンシル等の様々なマスキング操作を適用し、最終的にレンダリングされるシーン内の様々な効果を生成することもできる。
【００４２】
図３は、従来のＣＰＵレンダリングコードを使用して画定されたグラフィックスプリミティブ３００を示す。グラフィックスプリミティブ３００は、更に周辺に位置決めされた３０個の頂点３０４によって放射状に取り囲まれた中心頂点３０２により画定された円である。グラフィックスプリミティブ３００を画定する頂点配列は、順番に位置決めされた頂点３０２、３０４に対応する頂点データを含み、頂点３０２が中心となる円に近似する連続する三角形３０６のメッシュを画定する。
【００４３】
様々な他のグラフィックスプリミティブを、三角形のメッシュを使用して画定することもできる。例えばこのような他のグラフィックスプリミティブは、楕円、頂、弧、矩形、丸みのある角を有する矩形、単一の直線、複数の直線、テキスト等を含み得る。
【００４４】
ＣＰＵは全ての頂点、三角形および色のリストを生成する。次にレンダリングするためにこのリストを送信する。ＥＦＩＳディスプレイを改善するために、グラフィックスの外形をとるためにアンチエイリアシング済みの直線が必要とされる。これらの直線は、必要とされる頂点の数を増加させる。加えて、例えば円周を画定するために必要とされる三角形の数を減らすために、円のグラフィックスを近似させる必要がある。従って事前定義された頂点を使用し、三角計算を実行する必要を回避する。
【００４５】
よって従来のシステムは、呼び出される度に頂点を計算する必要がある複雑なプリミティブを描画する関数を提供するグラフィックスポート層を必要とする。グラデーション塗りつぶしを実行する場合、各頂点はその色が規定されるかまたはテクスチャが使用されることを必要とする。どちらの場合においても、これは別の頂点情報を計算および送信することを必要とする。このような複雑性は、従来の技術を使用して複雑なプリミティブの比較的単純なものをコーディングするためにさえ、１００行以上のコードを必要とすることを意味する。
【００４６】
図４は３つの異なる精度でレンダリングされた、円を描画するグラフィックスプリミティブ３０５、３１０、３１５を示し、これらは図３に示した従来のレンダリングコードを使用して作成できる。これらのグラフィックスプリミティブ３０５、３１０、３１５は、頂点配列への入力として異なる数の頂点を使用してレンダリングした後の円を描画する。
【００４７】
それぞれの各三角形のメッシュにおいて、多数の直線を使用して近似された円周を有する円としてグラフィックスプリミティブ３０５、３１０、３１５は効果的にレンダリングされている。よってレンダリングの精度を上昇させるためには、頂点の数、および従って三角形プリミティブの数により画定される直線の数を増加させる必要がある。
【００４８】
しかしながら、プリミティブごとに使用する直線が多すぎると、これはレンダリング速度に影響することになる。対照的に、使用する直線が少なすぎると、ユーザはグラフィックスプリミティブをＮ角形として知覚できるようになる（５０ｐ効果と呼ばれ、これは図４においてグラフィックスプリミティブが、グラフィックスプリミティブ３０５において３０個の円周の頂点を使用するところから、グラフィックスプリミティブ３１０では２０個、グラフィックスプリミティブ３１５では１０個に移動するにつれ、確認することができる）。従って先行技術を使用する場合、近似とレンダリング速度との間でトレードオフが存在する。
【００４９】
図５は、本発明の様々な実施形態により生成できる、エイリアシングのあるグラフィックス３３０およびアンチエイリアシング済みのグラフィックス３４０を示す。グラフィックス３３０、３４０の両方は、レンダリングパイプライン２００に頂点配列で提供される同一の入力頂点から作成される。
【００５０】
フラグメントシェーダによりアンチエイリアシングをレンダリングパイプラインに適用する。これはピクセルパーピクセルベースで以下のように計算される：ｉ）ピクセルが完全にグラフィックスプリミティブの内側にある場合は各ピクセルにフルカラーが適用され、ｉｉ）ピクセルが完全にグラフィックスプリミティブの外側にある場合は切り捨てられ、ｉｉｉ）ピクセルが部分的にグラフィックスプリミティブ内に含まれる場合はピクセルがグラフィックスプリミティブ内に位置するパーセンテージに応じて、アンチエイリアシング効果が適用される。
【００５１】
グラフィックス３３０では、頂点配列により画定されたグラフィックスプリミティブがレンダリング後にディスプレイ９０上に表示された時に、エイリアシングのあるアーチファクト（ぎざぎざの縁）が確認される。アンチエイリアシング済みのレンダリングを適用することにより、グラフィックスプリミティブにより覆われたピクセルの領域のフラクションに基づいてピクセルの色を割り当てるレンダリング技術を使用することによってぎざぎざの縁を排除できる。このような技術は、グラフィックス３４０内で確認されるより穏やかな縁を提供する。
【００５２】
通常、従来のアンチエイリアシング技術は、（例えば図３のＣＰＵレンダリングコードを繰り返して使用することにより）通常グラフィックスプリミティブが複数回描画されることを必要とし、レンダリング速度に大規模な影響を及ぼし得る。よって、従来のＣＰＵ駆動レンダリングを使用する場合にこれは問題となり得るが、レンダリングパイプライン２００のフラグメントシェーダを使用できる本発明に関しては問題とはならない。
【００５３】
図６は、本発明の様々な実施形態により作成できる、グラフィックスプリミティブを示す。円形のグラフィックスプリミティブ３５０を、頂点配列で三角形のメッシュを画定する頂点のセットにより、または円周を画定する頂点のシーケンスとして画定できる。
【００５４】
どちらの場合においても、グラフィックスプリミティブ３５０は、レンダリングパイプライン２００により塗りつぶされた円としてレンダリングされて示されている。対照的に、レンダリングパイプライン２００は、グラフィックスプリミティブ３５０ごとに同一の入力頂点配列データのみを使用した外形でグラフィックスプリミティブ３６０をレンダリングするようにプログラミングされている。
【００５５】
図７は、本発明の様々な実施形態と共に使用できる、複雑なグラフィックスプリミティブ３７０、３８０を示す。複雑なグラフィックスプリミティブ３７０、３８０は、グラフィックスプリミティブ３５０および３６０ごとに同一の基本的な頂点配列データを使用する。
【００５６】
しかしながら、多数の基本的なプリミティブが様々な追加の属性パラメータを使用した単一のグラフィックスプリミティブとして制御されているので、グラフィックスプリミティブ３７０、３８０は複雑なグラフィックスプリミティブである。このような属性パラメータは、例えば外形幅、外形点画パターン、外形色、塗りつぶし色、グラデーション塗りつぶし、ハロー色、ハロー幅等を画定してよい。
【００５７】
図示した例においては、複雑なグラフィックスプリミティブ３７０は、外形幅、外形点画パターン、外形色、塗りつぶし色、ハロー色およびハロー幅の属性パラメータを使用している。複雑なグラフィックスプリミティブ３８０は、外形幅、外形点画パターン、外形色、ハロー色およびハロー幅の属性パラメータを使用している。
【００５８】
図８は、本発明の様々な実施形態により作成できる、複雑なグラフィックスプリミティブ３９０の展開図を示す。複雑なグラフィックスプリミティブ３９０は、塗りつぶされ、外形がとられ、ハローが付けられ、アンチエイリアシングで提供される複雑な円である。複雑なグラフィックスプリミティブ３９０は、レンダリングパイプライン２００を使用して頂点配列データをレンダリングすることにより作成され、塗りつぶし３９２、外形３９４、ハロー３９６および３本のアンチエイリアシング済みの直線３９８、４００、４０２を含む。このようなレンダリングされた複雑なグラフィックスプリミティブ３９０は、例えばアビオニクスＥＦＩＳディスプレイにおいてシーンの一部として描画されるＨＳＩの一部として使用してよい。
【００５９】
三角形生成ロジックがＣＰＵ１０から頂点シェーダ２０２に移行された本発明の技術を使用することにより、同一のグラフィックスプリミティブの外形を画定するためにＣＰＵ１０は少数の点を送信するだけでよい。アンチエイリアシングも、頂点シェーダ２０２においてピクセル単位でＧＰＵ５４により計算される。円周もピクセル単位で画定され、これにより遥かに滑らかになる。正確な埋込型のサインおよびコサイン関数が、ＧＰＵ５４内にルックアップテーブルにより提供されるので、これらは極めて高速である。よって頂点データのキャッシュは不要であり、グラデーション塗りつぶしがＧＰＵ５４により効率的に実行される。また、コーディングが簡略化され、同一の複雑なグラフィックスプリミティブをコーディングするのにより少ない行数でよい（この事例では１００行よりも少ない）。
【００６０】
図９は、例えばレンダリングパイプライン２００を使用することによりＥＦＩＳディスプレイにシーンの一部を提供するために本発明の様々な実施形態と共に使用できる、別のグラフィックスプリミティブ４１０を示す。グラフィックスプリミティブ４１０は、頂点シェーダ２０２をプログラミングするために使用した楕円プログラムにより提供される。そのようにプログラミングされた頂点シェーダ２０２を、円、頂および弧をレンダリングするために使用することもできる。
【００６１】
ＣＰＵ１０は４つの頂点４１２のセットを生成することにより、２つの三角形４１４を画定する。これらの三角形は、レンダリングパイプライン２００に受け渡される頂点配列の連続的な頂点として提供される。
【００６２】
次にＣＰＵ１０は、以下のデータ、すなわち円の中心、楕円長軸（Ａ）、楕円短軸（Ｂ）、頂幅、開始角、終了角、外形色、外形幅、ハロー色、ハロー幅および塗りつぶし色で頂点シェーダ２０２を呼び出す。
【００６３】
頂点シェーダ２０２を、頂点４１２に基づいて外側の矩形を画定するように操作してよい。従来のように（例えば図３を参照）複数の個別の三角形を塗りつぶす／レンダリングするのではなく、頂点シェーダ２０２を操作し、外側の矩形の境界内に画定されるグラフィックスプリミティブ４１０の内側および外側を共に色付けすることができる。例えば、グラフィックスプリミティブがシーン内に位置決めされることになる場合、楕円の外側であるが外側の矩形内の領域を切り捨ててよい（すなわち、透過させてレンダリングするように変更しなくてよい）。これにより、必要とされる命令の数および頂点配列のサイズを共に最小化しながら、頂点シェーダ２０２の機能を全面的に使用して外側の矩形内の２Ｄ画像レンダリングを提供できる。
【００６４】
図１０は、レンダリングパイプライン２００のフラグメントシェーダ２１２による図９のグラフィックスプリミティブの処理を示す。フラグメントシェーダ２１２は、格子４２０内の各ピクセルｐx,yについて、ピクセルが楕円内のどこに入るかを決定する。格子４２０と楕円との相対位置がピクセルｐx,yの色を決定し、これが楕円内に入る場合はその位置に応じて設定されるか、または楕円の外側に入る場合は透明にされる４２５。格子４２０は、塗りつぶし４２２、外形４２４およびハロー４２６に重ねて示される。
【００６５】
従って、低減された数の点（例えば矩形を画定するための最小数）をＣＰＵ１０により送信し、キャンバスを効果的に画定する。次にフラグメントシェーダ２１２は、ＣＰＵ１０が全ての頂点を送信する必要なしに、必要とされた形状をキャンバスに描画する。
【００６６】
図１１は、図９のグラフィックスプリミティブにフラグメントシェーダ２１２によりアンチエイリアシングをどのように適用するかを示す。フラグメントシェーダ２１２は、各塗りつぶし４２２、外形４２４、ハロー４２６および背景４２５の間にそれぞれ見られる色の境界４２８、４３０および４３２の間でアンチエイリアシングを実行する。この事例では、２つの対応する色のそれぞれの間に単純な直線傾斜を使用してこれを実装した。
【００６７】
図１２は、ディスプレイ９０上のシーン内に表すようにフレームバッファ５６に書き込まれた、最終的にレンダリングされたグラフィックスプリミティブ５００を示す。図１２は更に、レンダリングパイプライン２００において属性パラメータとして使用された長軸（Ａ）、短軸（Ｂ）、開始角および終了角を示すように注釈が付けられている。
【００６８】
図１３は、本発明の様々な実施形態により実装できる方法６００を示す。方法６００は、アビオニクス表示システムを使用して航空機のコックピットのシーンを表示するためのものであり、ＣＰＵを操作し、少なくとも１つのグラフィックスプリミティブを表す頂点データを少なくとも１つの頂点シェーダに提供するステップ６１０と、この少なくとも１つの頂点シェーダを呼び出し、シーンの少なくとも一部を表す少なくとも１つのグラフィックスプリミティブをフレームバッファにレンダリングするステップ６２０と、フレームバッファからディスプレイ上にシーンを表示するステップ６３０とを含む。頂点データを頂点バッファオブジェクトとして提供し、ビデオメモリ内に保存してよい。様々な実施形態では、３次元から２次元のデータセットに頂点データをマッピングしてよい。
【００６９】
様々な実施形態では、方法６００を使用して、シーン内のピクセルが何らかの特定のグラフィックスプリミティブの内側に入るか外側に入るかを決定できる。よって頂点ベースではなくピクセルベースの画定を様々なグラフィックスプリミティブに使用してよい。これは、従来のレンダリングを使用する場合に存在する近似を実質的に排除することによってより円滑なグラフィックスプリミティブを作成でき、グラフィックスプリミティブの境界上に位置するピクセルを適切に色付けし、最終的にレンダリングされたシーン内の飾りのない縁部効果を低減できるという利点を有する。
【００７０】
ＣＰＵとＧＰＵとをインターフェースするためにアプリケーションプログラミングインターフェース（ＡＰＩ）を提供してよい。ＡＰＩは例えば、ＯｐｅｎＧＬ仕様に従って動作してよい。
【００７１】
方法６００は、保存されたピクセルデータに対してアンチエイリアシング操作を実行するステップ、および／またはシーンの少なくとも一部を表す複数のグラフィックスプリミティブを複数の並列頂点シェーダパイプラインを使用して並列でレンダリングするステップを更に含んでよい。
【００７２】
方法６００は、ＣＰＵ作業量をＧＰＵ内の頂点シェーダを呼び出すことに削減することができる。より迅速な三角関数、ベクトル数値演算およびマトリクス計算を、ＧＰＵ内の加速されたハードウェアが提供する。ＣＰＵ頂点精度レンダリングではなくピクセル精度を提供しながら、アンチエイリアシングもＣＰＵの同等技術と比較して極めて少ないオーバヘッドで実行される。加えて、本発明は、完全なグラフィックスプリミティブおよび複雑なグラフィックスプリミティブでさえも、単一パスでレンダリングすることを可能とする。グラフィックスプリミティブの周りの全体の画像領域の２次元（２Ｄ）レンダリングも実行してよい。例えばこの技術を使用して、丸みのある角を有する矩形をより簡単に作成できる。
【００７３】
本発明の実施形態の様々な利点は、システムオンチップ（ＳｏＣ）として知られる低コストで低電力な携帯電話部品を使用することにより必要とされる計算機能力を低減することにより、アビオニクス表示システムのコスト、重量および電力消費を低減できることも含む。
【００７４】
本発明の様々な実施形態を明細書内で説明してきた。このような実施形態を例えば１つまたは複数のソフトウェア、ハードウェアおよび／またはファームウェアベースの構成要素を使用することにより、所望のように実装してよいことは、当業者には十分理解されるであろう。
【００７５】
例えば、最終的なシーンを構成するために使用される全てのピクセル、頂点またはテクスチャの位置、色相、彩度、輝度およびコントラストを、様々なシェーダに定義されるアルゴリズムを使用して動作中に変更してよく、シェーダを呼び出した際にＣＰＵにより導入される外部変数により修正してよいことを、当業者は理解するであろう。このようなシェーダを、特定のハードウェア／ファームウェア（例えば頂点／ピクセル／ジオメトリ）で、または任意の種類のシェーダを実行可能な汎用処理装置（例えばＧｅＦｏｒｃｅ  ＧＴＸ  ７５０  Ｔｉ［３］のＣＵＤＡコア）を使用することにより実行してよい。
【符号の説明】
【００７６】
１０  ＣＰＵ
１２  アビオニクスバス
１６  メモリ
１８  グラフィックスバス
２０  アビオニクス
５０  グラフィックスカード
５２  ＡＰＩ
５４  ＧＰＵ
５６  フレームバッファ
５８  ビデオメモリ
９０  ディスプレイ
１００  アビオニクス表示システム
２００  レンダリングパイプライン
２０２  頂点シェーダ
２０６  ジオメトリシェーダ
２１２  フラグメントシェーダ
３００、３０５、３１０、３１５  グラフィックスプリミティブ
３０２  中心頂点
３０４  頂点
３０６  三角形
３３０、３４０  グラフィックス
３５０、３６０、３７０、３８０、３９０  グラフィックスプリミティブ
３９２  塗りつぶし
３９４  外形
３９６  ハロー
３９８、４００、４０２  直線
４１０  グラフィックスプリミティブ
４１２  頂点
４２０  格子
４２２  塗りつぶし
４２４  外形
４２５  背景
４２６  ハロー
４２８、４３０、４３２  境界
５００  グラフィックスプリミティブ
【図１】
0006266678.tif 000002
【図２】
0006266678.tif 000003
【図３】
0006266678.tif 000004
【図４】
0006266678.tif 000005
【図５】
0006266678.tif 000006
【図６】
0006266678.tif 000007
【図７】
0006266678.tif 000008
【図８】
0006266678.tif 000009
【図９】
0006266678.tif 000010
【図１０】
0006266678.tif 000011
【図１１】
0006266678.tif 000012
【図１２】
0006266678.tif 000013
【図１３】
0006266678.tif 000014