(57)【特許請求の範囲】
【請求項１】
３次元コンピュータ生成画像をシェーディング及びテクスチャリングするための方法において、
画像中の各オブジェクトを表している表面のグループを定義するデータを順に提供する段階と、
ディスプレイの各基本区域毎に、各オブジェクトの各表面に対する深度値を前記表面の画像面からの距離に従って生成する段階と、
基本区域における表面が完全に不透明か否かを判定する段階と、
基本区域のオブジェクトの不透明な表面に対する深度値を深度テスト手段に記憶する段階と、
後続オブジェクトからの表面の深度を、前記基本区域の不透明なオブジェクトの深度値と比較する段階と、
画像平面により接近している完全に不透明な表面を既に有している前記基本区域に対する後続オブジェクトの表面を廃棄する段階と、
シェーディング及びテクスチャデータを、各基本区域において見えると判定された前記表面に適用する段階と、
から成ることを特徴とする方法。
【請求項２】
画像内のオブジェクトは最初に前から後ろへとソートされ、完全に不透明なオブジェクトがその後ろにあるオブジェクトのテクスチャリングを禁止するようになっていることを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つのテクスチャが完全に不透明な部分と半透明な部分とを含んでおり、画像内のオブジェクトは最初に前から後ろへとソートされ、完全に不透明なエレメントを使ってその後ろのオブジェクトのテクスチャリングが禁止され、次に前記オブジュジェクトは後ろから前へソートされ不透明でない基本区域にはテクスチャリングが適用されるようになっていることを特徴とする請求項１に記載の方法。
【請求項４】
最初に画像を複数の長方形区域に分割する段階と、各長方形区域を順にシェーディング及びテクスチャリングする段階から成るセットを含んでいることを特徴とする請求項１乃至３の何れかに記載の方法。
【請求項５】
３次元コンピュータ生成画像をシェーディング及びテクスチャリングするための装置において、
画像中の各オブジェクトを表している表面のグループを定義するデータを順に提供するための手段と、
ディスプレイの各基本区域における各オブジェクトの各表面毎に深度値を、前記表面の画像面からの距離に従って生成するための手段と、
基本区域における表面が完全に不透明か否かを判定する手段と、
基本区域のオブジェクトの不透明な表面に対する深度値を深度テスト手段に記憶するための手段と、
後続オブジェクトからの表面の深度を、各基本区域の不透明オブジェクトの深度値と比較するための手段と、
画像平面により接近している完全に不透明な表面を既に有している基本区域に対する後続オブジェクトの表面を廃棄する手段と、
シェーディング及びテクスチャデータを、各基本区域において見えると判定された前記表面に適用するための手段と、
を備えていることを特徴とする装置。
【請求項６】
完全に不透明なオブジェクトがその後ろにあるオブジェクトのテクスチャリングを禁止するように、画像内のオブジェクトを前から後ろへとソートするための手段を含んでいることを特徴とする請求項５に記載の装置。
【請求項７】
少なくとも１つのテクスチャが完全に不透明な部分と半透明な部分とを含んでおり、最初に、完全に不透明なエレメントを使ってその後ろのオブジェクトのテクスチャリングが禁止されるように画像内のオブジェクトを前から後ろへとソートし、次に、不透明でない基本区域にはテクスチャリングが適用されるようにオブジェクトを後ろから前へソートするための手段を含んでいることを特徴とする請求項５に記載の方法。
【請求項８】
最初に画像を複数の長方形タイルに分割するための手段を含んでいることを特徴とする請求項５、６又は７の何れかに記載の方法。
【発明の詳細な説明】
【０００１】
（発明の技術的分野）
本発明は、３次元コンピュータ生成画像のシェーディング及びテクスチャリングのための方法及び装置に関する。
【０００２】
（発明の背景）
３次元画像を生成する際にシェーディング及びテクスチャリングのために使用される標準的な方法は、ｚ即ち深度バッファシステムである。これは長年にわたり使用されてきており今では業界標準になっている。
【０００３】
我々の英国特許第２２８１６８２号で、我々はｚバッファシステムに勝るメリットを多く備えた代わりの方法を提示した。それは、レイ・キャスティング手法といい、画像内の各オブジェクト（ポリゴン）が順方向向き又は逆方向向きのタグを付けられた無限表面のセットにより定義づけられるというものである。ある視点からの光線がシーンに注がれると、表面との交点が画像平面からその交点までの距離と共に求められる。このデータを分析することにより、各ポリゴンのどの面が見えるのかを各ピクセル毎に判定することができるので、ピクセルのシェーディングとテクスチャリングが可能となる。本手法は、プロセッシング要素のパイプラインを使用することにより実行されるものであって、要素それぞれは光線の表面遮断計算を行なってピクセル毎に順に当該面の深度値を求める。あるピクセルのある面の深度値が求められると、これらのプロセッシング要素を使って、その深度値は深度即ちｚバッファに当該面を識別するデータと共に記憶される。ｚバッファ情報はここで、テクスチャ用デバイスにより読み出され、表示用にテクスチャデータを適用するために用いられる。
【０００４】
システム内の面は不透明であるかもしれないし、半透明であるかもしれない。半透明効果を表示できるようにするために、ブレンド値を当該面に関連付けるようにすることもできる。例えば、雲は、色を定義づけるＲＧＢ値と半透明度を定義づけるためのアルファブレンディング値を割当てることにより半透明面としてモデル化される。半透明度は面に亘ってテクスチャマップのアルファ値を調整することにより制御される。一般的に用いられるブレンド・モードはアルファブレンディングとして知られており、連続したポリゴンがフレームバッファ内にブレンドされ、次の数式に入れられる。
【０００５】
RGB(新)＝alpha*RGB(フレームバッファ)＋（１−alpha）*RGB(テクスチャ)
この技法はよく知られている。アルファブレンディングを使用するときの制約は、正確にブレンドされた画像をレンダーするために、ポリゴンを表示するピクセルは、それぞれが最終的な画像に正確な分量寄与するように深度順に後から前にレンダーされてブレンディング・ユニットに提示されねばならない。ｚバッファシステムの場合は、この順序付けは、通常、ｚバッファを供給しているアプリケーションソフトウェアにより実行される。これはプリソート・モードと称される。レイ・キャスティング技法はプリソート・モード又は自動的なピクセル精密型ソートの何れを使用することもできる。
【０００６】
「パンチスルー」と呼ばれる半透明テクスチャの特別なケースがある。これはアルファ・コンポーネントが「オン」即ち完全透明又は「オフ」即ち完全不透明の何れかに制限される半透明テクスチャと定義づけられる。このタイプのテクスチャは、第１に森のような複雑なシーンが比較的少数のポリゴンを使ってモデル化でき、第２にポリゴンがシステムに提示される順序に関係なく従来のｚバッファがパンチスルー半透明を正確にレンダーできる、という以上２つの理由から３Ｄゲームアプリケーションでは非常に普及している。
【０００７】
半透明に関するアルファテストを備えた伝統的なｚバッファ・パイプラインを図１に示している。ここでは、レンダーされるポリゴンは第１にポリゴン走査変換機２において走査線変換され、結果として出されたｘ，ｙ，ｚ，ｕ，ｖ，ｗ値が次にテクスチャリング・ユニットそして深度テスト・ユニット（ｚバッファ）に送られる。テクスチャアドレスはテクスチャ・メモリに送られる。テクスチャメモリから検索されたテクスチャ値は、テクスチャ再サンプリング・プロセスによりエイリアシングによるアーティファクトが起こるのを低減するテクスチャ・フィルタ４に渡される。フィルタが掛けられた値は、テクスチャ・ブレンド・ユニット６に送られ、テクスチャ値にポリゴンの基本色とハイライトがブレンドされる。次に、アルファテスト・ユニット８において、結果として出てきたピクセルのアルファ・コンポーネントに関してアルファテストが実行される。このテストは基準アルファ値との比較によるものである。
【０００８】
アルファテスト・ユニットはアルファ基準値に対しての大小比較を行なう。ユーザーがアルファ基準値と、「ありえない」、「未満」、「等しい」、「以下」、「より大きい」、「等しくない」、「以上」、「必ず」のうちの一つである比較モードを与える。選択されるテストはユーザーが創作中の画像のタイプにより異なる。アルファテスト・ユニットは、入力アルファ値が比較モードに合格したか不合格だったかを出力する。
【０００９】
アルファテストの結果が合格であれば、次に、更新されたｚバッファのｚ値とＲＧＢ値に関して深度テストが行なわれる。そのテストの結果が不合格なら、ピクセルはそれ以上処理されることはない。こうして、基準アルファが１でテストが「以上」という代表的なケースでは、不透明ピクセルだけがフレームバッファに書き込まれ、これらのピクセルは、ポリゴンが処理された順には関係なく、シーン中の他のポリゴン全てに対して深度比較テストが行なわれることになる。深度テストは深度テスト・ユニット１０により行なわれるが、このユニットはステンシルユニット１４を介してｚバッファ１２からｚ値を読み取り、そのｚ値をｚバッファ記憶装置に直接書き込むことができる。深度テストの条件は図１の深度テストユニットの横に示している。
【００１０】
図２は、ディファード・テクスチャリング、つまりテクスチャリング・データが光線／表面交差テストプロセスの終りに適用されるという方法を使った我々の英国特許第２２８１６８２号のレイ・キャスティング手法を示している。この装置は、ポリゴンの平面方程式を定義するデータを提供するポリゴンセットアップユニットを含んでいる。このデータは次にプロセッシング要素のアレイ２２に送られ、プロセッシング要素毎に１つのレイ／表面交点テストを行ない、該レイ／表面交点の深度値を生成することができるようになっている。通常、プロセッシング・アレイは、例えば３２×３２ピクセルの「タイル」として知られている全画象のサブセットについて演算を行ない、且つ１度に１個のポリゴンにつき演算を行なう。演算された深度値はタイル深度記憶装置２４に記憶される。
【００１１】
タイル深度記憶装置からの深度値及び表面値は、並列ランレングス・エンコーダ２６に送られる。このエンコーダはポリゴン走査変換ユニット２８に送り込まれたピクセルについてのＸＹアドレスとポリゴンセットアップ・ユニット３０に行くタグを介して、テクスチャリング・ユニットに出力を与える。このエンコーダはテクスチャリングとシェーディングのための平面方程式を計算し、且つポリゴンの平面方程式を再計算する。
このセットアップユニットはポリゴンテクスチャデータを受け取り、データをポリゴン走査変換ユニット２８に提供する。ある表面に与えられたＲＧＢ値とアルファ値とハイライトは、次に、テクスチャ・ブレンディング・ユニット３２に送られ、ここでそれらは、フィルタ３４を介してテクスチャ・メモリからのＲＧＢ値及びアルファ値と結合され、次にタイル累積バッファへと渡された後、そこから画像用のメインフレームへと送られることになる。
【００１２】
テクスチャリングを全ての光線／表面交点が実行されてしまうまで延期させることの有利な点は、見えるピクセルに関してしかテクスチャ及びシェーディングオペレーションが行われないということである。こうして有効充てん速度（effective fill rate）は、シーン中の可視ピクセルに対する遮られるピクセルの割合だけ増加する。当然ながら、ディファード・テクスチャリング・パイプラインにおいては、深度テストはテクスチャリングが起きる前に行われるので、つまりはアルファテストの前に行われることになる。その結果、パンチスルー・テクスチャされたポリゴンは、後から前への順で重なり合わずに提示されるか、或いはピクセル精密プリソーティング・オペレーションをパイプラインのより早い時期に受けるかしない限りは、正確にレンダーすることが不可能である。このような配置を実現しようとすれば、第１にソフトウェアドライバに不要な制約を課すことになる。第２に不要なプロセシング・オーバーヘッドが必要になる。
【００１３】
我々は、各ピクセルに対するアルファテストの結果から深度記憶装置までのフィードバックループを含めることにより、そして各ピクセルに対するアルファテストの結果が知られるまで深度記憶装置の更新を延期することにより、この問題を克服できるものと考えるにいたった。これには、アルファテストから深度テストまでのフィードバックと、深度テスト・ユニットからアルファブレンディング・ユニットまでのフィードフォワードの両方が必要になる。
【００１４】
この着想を使うと以下の４つの標準的なオペレーションモード、即ち
１．標準ｚバッファ、ソート無しパンチスルー互換モード、
２．ソート無し、ディファードオペレーション付きエンハンスド・パンチスルーモード、
３．表面自動ソート及びディファードオペレーション付きエンハンスド・パンチスルーモード、
４．一般化自動ソート・アルファブレンド・モード、
が使用可能となる。
【００１５】
本発明のこれらのオペレーションのモード及び好適な実施例について、以下、添付図面を参照しながら例示として説明する。
【００１６】
図３のブロック図は本発明の実施例により図２を修正したものである。
【００１７】
図２に示すように、ポリゴンセットアップ・ブロック２０は、ピクセル毎に各面の深度を計算してそれらを記憶するプロセッサ要素アレイ２２にポリゴン表面データを送り込む前に、ポリゴン頂点データを受け取る。これは、各ピクセル毎に画像平面に最も接近した表面を求める深度テスターも含んでいる。これは各表面を定義するのに使用される標準ＡＢＣ及びタグデータをバイパスＦＩＦＯ記憶装置４０に提供することができる。このＦＩＦＯ記憶装置４０が、今度は、制御されるとそれらパラメータをプロセッサ要素アレイ２２へ送り戻すようになっている。
【００１８】
ＸＹアドレスデータ及びタグデータは、並列ランレングスエンコーダ２６により、ポリゴンセットアップ・ユニット３０とポリゴン走査変換装置２８に図２と同様のやり方で送りこまれる。ポリゴンセットアップ・ユニットはテクスチャ記憶装置からポリゴンテクスチャデータを受け取る。ブレンディングユニット３２及びフィルタ３４は図２に示すのと同じやり方で作動する。しかしながら、テクスチャブレンディング・ユニットの後に、アルファテスト・ユニット４２が設けられている。これは、アルファテスト・ユニットからアルファ値と位置データも受け取るパンチスルー制御ブロック４４に対する制御として使用される合格／不合格の結果出力を有する。アルファテスト・ユニットは条件付ブレンド・ユニット４６への出力を有するが、この条件付ブレンド・ユニット４６は、テクスチャされたデータを、タイル累積バッファ３６に送る前にそのままタイル深度記憶装置２４からのデータとブレンドする。
【００１９】
表面データに関しては、タイル深度記憶装置に接続された自動ソートユニットもある。これはデータを頂点リクエスタ５０に送信するが、頂点リクエスタ５０はここでポリゴン頂点データが確実に適切な順序でポリゴンセットアップ・ユニット２０に供給されるようにする。
【００２０】
それは、前から後ろへでも後ろから前へでも表面をソートすることができるようにするためのソート方向制御と、その使用を禁じるバイパス制御とを有している。回路の使用については４つのモード別に説明する。
【００２１】
ｚバッファは、このように広く使用されているレンダリング・アルゴリズムであり、概略的には多数のプログラムが馴染みやすいものなので、これをエミュレートするオペレーションのモードを有するのは有用である。このように、ｚバッファモードで作動しているように見えながら、レイキャスティング・レンダリング・アルゴリズムの利点も享受できる。
【００２２】
このモードでは、ポリゴンは、制御信号がバイパス入力に送られると、自動ソートロジック４８を迂回する。代わりに、ポリゴンはソートされずにタイル深度記憶装置２４と連携する深度テスト・ユニットに渡る。この時点では、深度計算が行なわれるのではなくて、レイ・キャスティング技法の基本を形成する標準ＡＢＣ及びタグパラメータはバイパスＦＩＦＯ４０に記憶され、スクリーンＸＹ位置及びタグ値は表面毎に順番にディファード・テクスチャリング・ユニットに送られる。
【００２３】
このモードのオペレーションでは、全てのピクセルが、それらが現在のピクセルの視点により近い以前にレンダーされた不透明なピクセルに覆われてしまっているか否かに関係なく、テクスチャ・ユニットに提示されるので、テクスチャリングは延期されない。テクスチャ・ユニットは「テクセル」（テクスチャエレメント）をそれらが提示される順に処理する。テクセルはフィルタに掛けられ、ポリゴンの基本色及びハイライトとブレンドされ、従来のｚバッファ（図１参照）の場合と同じやり方でアルファテストされる。各ピクセル毎に、アルファテストが合格であれば、ＦＩＦＯ４０に記憶されているＡＢＣ及びタグパラメータから対応深度が計算され、プロセッサ要素アレイ２２にフィードバックされ、次にタイル深度記憶装置２４に入れられる。この対応深度は次に関連の深度テストユニットで計算され、タイル深度記憶装置が更新される。ピクセルＲＧＢ値は、ここで、条件付きアルファブレンド・ユニット４６によりブレンドされてタイル累積バッファに入れられる。このプロセスはシーン内の全ポリゴンが処理されるまで継続する。このオペレーションの速度は、全ポリゴンがテクスチャされシェーディングされなければならないので、標準的なｚバッファの速度に等しい。可視ポリゴンのテクスチャリングとシェーディングを行なうだけでは何の節約にもならない。
【００２４】
オペレーションの第２のモードは、パンチスルー制御を使ってプロセシングを加速するが、シェーディングとテクスチャリングに先だつポリゴンと表面データのソーティングは無いというモードである。本モードは、ポリゴンがテクスチャリング・ユニットに渡される前にタイル深度記憶装置の現在のコンテンツに対して深度テストをされるということ以外は、ｚバッファオペレーションに関して説明したものと同じである。パンチスルーテクスチャはアルファテスト・ユニット４４により検知される。該ユニットは、パンチスルー表面をプロセッサ要素アレイ２２に送り戻すようにパンチスルー制御ユニット４４に信号を送る。それらは次に、タイル深度記憶装置及び深度テスト・ユニット２６に送られ、当ユニットで記憶装置内の現在のコンテンツに対して比較テストが行なわれる。それらが画像平面により近ければ現在のコンテンツと置き替えられる。連続しているポリゴン又はポリゴンの一部が特定ピクセルにおいて以前にレンダーされた不透明ピクセルによって覆われている場合、それはテクスチャリングユニットには送られない。このように、ｚバッファシステムに比較した場合の充てん速度の改善の度合いは、第１にポリゴンが提示される順序、第２に深度テストとアルファテストの間の待ち時間、という２つの要因に左右される。例えば、ポリゴンがたまたま後ろから前の順に提示され重ならないのであれば、充てん速度はｚバッファシステムと同じである。一方、仮に、遅れゼロのシステムでポリゴンが前から後ろの順に提示されるのであれば、充てん速度要件は、シーン内の理想的な覆われたピクセルの、シーン内の可視ピクセルに対する比率（即ち、深度の複雑さ）だけ減少する。システム内の待ち時間の影響は、本プロセスの効率低下を招くことになる。その理由は、有限時間ウインドウ（システム内の待ち時間の度合い）の場合、ゼロ待ち時間システムでは覆われていると特定され得たある割合のピクセルが、テクスチャリングユニットに渡されテクスチャリング帯域幅を消費することになるからである。１番目のポリゴンをテクスチャし、テクスチャリングユニットを通してアルファ及び深度テストをするのに費やされる時間が要るので、この待ち時間は本来的なものである。一旦この初期の待ち時間が克服されると、プロセッサ要素装置、並びにタイル深度記憶装置及び深度テスト・ユニット２４には、新しいポリゴンの深度が提供され、アルファテストの結果、問題のピクセルがシーン内の他のピクセルを覆っているパンチスルーピクセルであることが分かれば、以前にレンダーされたポリゴンに関して深度テストを行なう。
【００２５】
オペレーションの第３のモードは、半透明ソーティング・アルゴリズムを使用するディファード・テクスチャリング・パイプラインプロセスである。
【００２６】
先に説明したように、本発明による充てん速度改善の程度は、ポリゴンが提示される順序により異なる。パンチスルー制御をピクセル精密自動ソーティングと組み合わせて用いることにより得られる利点は、システムが、ポリゴン及びポリゴンの部分が常に最適順序で処理されることを保証できるという点である。パンチスループロセッシングの自動ソート・アルゴリズムは、主に２つの点で、アルファブレンディング・プロセッシングのアルゴリズムと異なる。第１に、パンチスルーピクセルは後ろから前ではなく、前から後ろの順にソートされる点である。これは、仮にパンチスルーがあれば、そのアルファ値は１であり、その後の表面はどれも、当該ピクセルに適用されるシェード及びテクスチャに寄与しないという理由によるものである。第２に、ソートリストをより小さな部分（chunk）に分解することによりソート用のオーバーヘッドを減少することができる点である。我々はこれを「チャンキング」と呼んでいる。
【００２７】
パンチスルー自動ソート・アルゴリズムのオペレーションについて図４を参照しながら説明する。これは、図２と図３におけるレイ・キャスティング・アルゴリズムを行なう部分を表しているがテクスチャ用のハードウェアは図示していない。
【００２８】
見て分かる通り、キャッシュメモリ５２はポリゴンセットアップ・ユニット２０とプロセッシング要素アレイ２２の間に設けられている。タイル深度記憶装置及び深度テスト・ユニット２４は、自動廃棄ロジック５８とチャンキングロジック５４に連結されている自動ソートロジック５６に対する出力を有している。チャンキングロジック５４は、キャッシュ５２に戻す出力と頂点リクエスタユニット５０に送る出力も有している。自動ソートロジック５６はデータの一時記憶に備えて、少なくとも１つの付加的タイル深度記憶装置を含んでいる。不透明な表面を捜す際には、現在記憶されている深度と比較すれば、ある不透明ピクセルは現在の深度よりも近いのかどうかが判定できるので、これらは不要である。これらは、半透明オブジェクトをソートする場合に使用される。これら付加的な深度記憶装置は、タイル深度記憶装置及び深度テストユニット２４内に設けてもよい。
【００２９】
パンチスルーテクスチャは、通常、森や雲のシーンのような複雑な構造体をモデル化するために使用されるので、パンチスルーに使用されるポリゴンの数はアルファブレンドされた半透明の場合に使用されるポリゴンの数よりもはるかに多い。必然的に、ソートのためのプロセッシング・オーバーヘッドは、システムの効率を高めるためには、最小限にされねばならない。ｎ個のオブジェクトを上向き又は下向き順にソートするための単純なアルゴリズムでもｎ２個のオペレーションを必要とする。これを図５に示しており、木のパンチスルーテクスチャが前面に見られるが、これは木の部分が不透明テクセルでその周囲が透明テクセルとなっている。自動ソーティングは、底層を識別するために半透明ポリゴンの全部を順にレンダリングすることにより行なわれる。従って、処理されるタイル毎のポリゴンの数はポリゴンの数に層数を掛けたものであり、２ｎ２となる。
【００３０】
選択された各オブジェクトがソーティングオペレーションにより廃棄される場合、オペレーションの数は、
ｎ＋ｎ−１  ＋  ｎ−２  ＋  ．．．．．．．．  ＋１
であり、およそｎ２／２に等しい。パンチスルーソーティングの特性は、視覚的なエラーを起こさずに、ソートがチャンクできるということである。チャンキングについては、オペレーションの数はＭＯＤ（ｎ／ｍ）＊ｍ２＋ＲＥＭ（ｎ／ｍ）２となり、ここにｎはチャンクのサイズである。チャンクサイズを小さくすることは、ソート用のオーバーヘッドとソートの効率の両方を下げることにつながる。このアルゴリズムを実際にどのように実施する場合でも、ソートアルゴリズムに使用できる計算用リソースとパンチスルーオペレーションとはトレードオフの関係にある。チャンキングの利点は、このトレードオフを探る自由度が増すことである。ソーティングアルゴリズムは、早期に、タイル内の全ピクセルが有効性を検査されてしまった（即ち、有効な不透明深度を割当てられてしまった）時点で終了できない限り、更に最適化することができる。このことは図６に示している。タイル（ａ）では、最も近いポリゴンはその後の全てのポリゴンを隠している。従って、処理されるポリゴンの数はｎになる。
【００３１】
パンチスルーソーティングアルゴリズムの１回のパスで、ピクセル毎に画像面に最も近いポリゴンが見つけられる。そして、タイル（ａ）のケースでは、第１のパスで、タイル内の各ピクセル毎に最も近い不透明ポリゴンが発見されていると判断できるので、従ってそれ以上のパスは不要である。
【００３２】
ポリゴンデータのチャンクは、チャンキングロジック５４により、タイル深度記憶装置、深度テストロジック、及び自動ソートロジックに与えられる。それらは次に、もはや不要になったポリゴンを廃棄ロジックに渡す。
【００３３】
自動ソートロジックは、その後、レンダーされるポリゴンをソート方向入力により制御された方向にソートして、それらをキャッシュメモリ５２に送るが、そこからポリゴンは、再度、プロセッサ要素アレイ２２に送られ、最終的にはそこを通ってテクスチャリング・ユニットまで送られることになる。このように自動ソートロジックはポリゴンをソートして前から後ろの順序に並べるので、図３の装置で使用される場合、最も接近している完全に不透明なピクセルが最初に処理され、その後ろのポリゴンはテクスチャされる必要がなくなるので、複雑なシーンのプロセシング・オーバーヘッドを著しく低減することができる。
【００３４】
図３の回路のオペレーションの第４のモードは、一般化された自動ソート・アルファブレンド・モードである。
標準オペレーションとしてバイリニア及びトリリニアテクスチャリングを行なう最新式のグラフィック・コントローラでは、パンチスルー・テクスチャの濃淡むらのある視認特性はますます受け入れられなくなってきている。典型的な芸術作品、例えば木のテクスチャは、幹の部分はパンチスルー（即ち、完全に不透明に）され、葉の先端部はアルファブレンド（即ち、部分的に半透明に）されることになる。図３の回路を使うと、ディファード・テクスチャリングの利点を保持したまま、このようなタイプのアルファブレンドされたテクスチャを正確にレンダーすることができる。
【００３５】
これを行なうため、木の表面データでは２つのパスが行なわれることになる。第１のパスでは、タイル内の各ポリゴンのパンチスルー部分は、上記自動ソートモードで説明したように処理される。アルファテスト・ユニット４２は完全に不透明なテクセルしか通らないようにセットされるので、パスが終った時点でタイル深度バッファは、タイル内の各ピクセル位置毎に、目に対して最も近い完全に不透明なテクセルの深度を保有している。第２のパスで、自動ソート・アルゴリズムはピクセルを後ろから前にソートし、各可視ポリゴンフラクション毎に、不透明でないもの（即ち、木の例で言えばアルファブレンドされた葉の縁）しかテクスチャリング・ユニットに進めないように、深度テストは「より大きい」にセットされる。第２のパスは後ろから前にソートするので、部分的に重なる半透明テクスチャは全て正確にブレンドされる。第２のパスは、典型的なシーン（即ちパンチスルーの森）ではポリゴンリスト中の総ピクセルのうち少しのパーセンテージしか深度テストに合格しないので、非常に効率的である。一般的なアルファブレンドされたテクスチャに対するこの技法の適合度は、テクスチャマップ内の不透明テクセルの半透明テクセルに対する比率により異なる。木の例では、本アルゴリズムは最適であるといえる。しかしながら、仮に、全てのテクスチャが雲であり不透明ピクセルが全くないような場合には、標準的な自動ソートの方がより好ましい方法であると言える。
【００３６】
上記の説明より、３次元画像をレンダーするためのレイ・キャスティング技法により作動する本方法及び装置は、パンチスルーテクスチャによるプロセッシング・オーバーヘッドを低減する利益を享受するために修正して、システムのオペレーションのスピードアップにつなげられることが理解されるだろう。パンチスルーテクスチャの使用は、雲のシーンや森のように重なり合ったパンチスルーテクスチャが多数あるようなシーンでは特に有益である。パンチスループロセシングを使用するということは、各ピクセル毎に視点に最も接近しているポリゴンだけがテクスチャ値を与えられるということを意味している。このオペレーションがなければ、ピクセルを通過する光線を遮断する全てのポリゴンに対してテクスチャを適用する必要が生じることになる。それにより、森のようなシーンでは、１つのピクセルではなく各ピクセル毎に、数千のテクスチャリングオペレーションが必要になることは疑いもない。このようなわけで、非常に複雑なシーンが、他の方法よりもより遙かに速い速度でテクスチャすることができるようになる。
【図面の簡単な説明】
【図１】  上記先行技術によるｚバッファシステムを示す図である。
【図２】  ディファード・テクスチャリングを用いた先行技術のレイ・キャスティング・システムを示す図である。
【図３】  本発明の好適な実施例を示す図である。
【図４】  自動ソート・ユニットを備えた本発明の別の好適な実施例を示す図である。
【図５】  ポリゴンについての自動ソート手法を示す概略図である。
【図６】  ポリゴンについての更に別の自動ソート手法を示す概略図である。
【図１】
0004499291.tif 000002
【図２】
0004499291.tif 000003
【図３】
0004499291.tif 000004
【図４】
0004499291.tif 000005
【図５】
0004499291.tif 000006
【図６】
0004499291.tif 000007