JP4499291B2 - Shading and texturing 3D computer generated images - Google Patents

Shading and texturing 3D computer generated images Download PDF

Info

Publication number
JP4499291B2
JP4499291B2 JP2000581597A JP2000581597A JP4499291B2 JP 4499291 B2 JP4499291 B2 JP 4499291B2 JP 2000581597 A JP2000581597 A JP 2000581597A JP 2000581597 A JP2000581597 A JP 2000581597A JP 4499291 B2 JP4499291 B2 JP 4499291B2
Authority
JP
Japan
Prior art keywords
depth
opaque
texturing
image
texture
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.)
Expired - Lifetime
Application number
JP2000581597A
Other languages
Japanese (ja)
Other versions
JP2002529870A (en
Inventor
マーク ダン
Original Assignee
イマジネイション テクノロジーズ リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by イマジネイション テクノロジーズ リミテッド filed Critical イマジネイション テクノロジーズ リミテッド
Publication of JP2002529870A publication Critical patent/JP2002529870A/en
Application granted granted Critical
Publication of JP4499291B2 publication Critical patent/JP4499291B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Document Processing Apparatus (AREA)

Abstract

A method and apparatus for shading and texturing 3-dimensional computer generated images deals with punch through textures by supplying data defining a group of surfaces representing each object in the image. For each elementary area of the display, a depth value is generated for each surface of each object in dependence on the distance of that surface from an image plane. Shading and texture data is applied to the surfaces. A determination is made as to whether or not any texture applied to a surface is fully opaque. The depth values are stored for opaque textures at the appropriate elementary areas. The depths of surfaces from subsequent objects are then compared with depth values for the opaque objects at elementary areas and, surfaces or subsequent objects for elementary areas which have a fully opaque surface closer to the image plane than the surface being considered are discarded.

Description

【0001】
(発明の技術的分野)
本発明は、3次元コンピュータ生成画像のシェーディング及びテクスチャリングのための方法及び装置に関する。
【0002】
(発明の背景)
3次元画像を生成する際にシェーディング及びテクスチャリングのために使用される標準的な方法は、z即ち深度バッファシステムである。これは長年にわたり使用されてきており今では業界標準になっている。
【0003】
我々の英国特許第2281682号で、我々はzバッファシステムに勝るメリットを多く備えた代わりの方法を提示した。それは、レイ・キャスティング手法といい、画像内の各オブジェクト(ポリゴン)が順方向向き又は逆方向向きのタグを付けられた無限表面のセットにより定義づけられるというものである。ある視点からの光線がシーンに注がれると、表面との交点が画像平面からその交点までの距離と共に求められる。このデータを分析することにより、各ポリゴンのどの面が見えるのかを各ピクセル毎に判定することができるので、ピクセルのシェーディングとテクスチャリングが可能となる。本手法は、プロセッシング要素のパイプラインを使用することにより実行されるものであって、要素それぞれは光線の表面遮断計算を行なってピクセル毎に順に当該面の深度値を求める。あるピクセルのある面の深度値が求められると、これらのプロセッシング要素を使って、その深度値は深度即ちzバッファに当該面を識別するデータと共に記憶される。zバッファ情報はここで、テクスチャ用デバイスにより読み出され、表示用にテクスチャデータを適用するために用いられる。
【0004】
システム内の面は不透明であるかもしれないし、半透明であるかもしれない。半透明効果を表示できるようにするために、ブレンド値を当該面に関連付けるようにすることもできる。例えば、雲は、色を定義づけるRGB値と半透明度を定義づけるためのアルファブレンディング値を割当てることにより半透明面としてモデル化される。半透明度は面に亘ってテクスチャマップのアルファ値を調整することにより制御される。一般的に用いられるブレンド・モードはアルファブレンディングとして知られており、連続したポリゴンがフレームバッファ内にブレンドされ、次の数式に入れられる。
【0005】
RGB(新)=alpha*RGB(フレームバッファ)+(1−alpha)*RGB(テクスチャ)
この技法はよく知られている。アルファブレンディングを使用するときの制約は、正確にブレンドされた画像をレンダーするために、ポリゴンを表示するピクセルは、それぞれが最終的な画像に正確な分量寄与するように深度順に後から前にレンダーされてブレンディング・ユニットに提示されねばならない。zバッファシステムの場合は、この順序付けは、通常、zバッファを供給しているアプリケーションソフトウェアにより実行される。これはプリソート・モードと称される。レイ・キャスティング技法はプリソート・モード又は自動的なピクセル精密型ソートの何れを使用することもできる。
【0006】
「パンチスルー」と呼ばれる半透明テクスチャの特別なケースがある。これはアルファ・コンポーネントが「オン」即ち完全透明又は「オフ」即ち完全不透明の何れかに制限される半透明テクスチャと定義づけられる。このタイプのテクスチャは、第1に森のような複雑なシーンが比較的少数のポリゴンを使ってモデル化でき、第2にポリゴンがシステムに提示される順序に関係なく従来のzバッファがパンチスルー半透明を正確にレンダーできる、という以上2つの理由から3Dゲームアプリケーションでは非常に普及している。
【0007】
半透明に関するアルファテストを備えた伝統的なzバッファ・パイプラインを図1に示している。ここでは、レンダーされるポリゴンは第1にポリゴン走査変換機2において走査線変換され、結果として出されたx,y,z,u,v,w値が次にテクスチャリング・ユニットそして深度テスト・ユニット(zバッファ)に送られる。テクスチャアドレスはテクスチャ・メモリに送られる。テクスチャメモリから検索されたテクスチャ値は、テクスチャ再サンプリング・プロセスによりエイリアシングによるアーティファクトが起こるのを低減するテクスチャ・フィルタ4に渡される。フィルタが掛けられた値は、テクスチャ・ブレンド・ユニット6に送られ、テクスチャ値にポリゴンの基本色とハイライトがブレンドされる。次に、アルファテスト・ユニット8において、結果として出てきたピクセルのアルファ・コンポーネントに関してアルファテストが実行される。このテストは基準アルファ値との比較によるものである。
【0008】
アルファテスト・ユニットはアルファ基準値に対しての大小比較を行なう。ユーザーがアルファ基準値と、「ありえない」、「未満」、「等しい」、「以下」、「より大きい」、「等しくない」、「以上」、「必ず」のうちの一つである比較モードを与える。選択されるテストはユーザーが創作中の画像のタイプにより異なる。アルファテスト・ユニットは、入力アルファ値が比較モードに合格したか不合格だったかを出力する。
【0009】
アルファテストの結果が合格であれば、次に、更新されたzバッファのz値とRGB値に関して深度テストが行なわれる。そのテストの結果が不合格なら、ピクセルはそれ以上処理されることはない。こうして、基準アルファが1でテストが「以上」という代表的なケースでは、不透明ピクセルだけがフレームバッファに書き込まれ、これらのピクセルは、ポリゴンが処理された順には関係なく、シーン中の他のポリゴン全てに対して深度比較テストが行なわれることになる。深度テストは深度テスト・ユニット10により行なわれるが、このユニットはステンシルユニット14を介してzバッファ12からz値を読み取り、そのz値をzバッファ記憶装置に直接書き込むことができる。深度テストの条件は図1の深度テストユニットの横に示している。
【0010】
図2は、ディファード・テクスチャリング、つまりテクスチャリング・データが光線/表面交差テストプロセスの終りに適用されるという方法を使った我々の英国特許第2281682号のレイ・キャスティング手法を示している。この装置は、ポリゴンの平面方程式を定義するデータを提供するポリゴンセットアップユニットを含んでいる。このデータは次にプロセッシング要素のアレイ22に送られ、プロセッシング要素毎に1つのレイ/表面交点テストを行ない、該レイ/表面交点の深度値を生成することができるようになっている。通常、プロセッシング・アレイは、例えば32×32ピクセルの「タイル」として知られている全画象のサブセットについて演算を行ない、且つ1度に1個のポリゴンにつき演算を行なう。演算された深度値はタイル深度記憶装置24に記憶される。
【0011】
タイル深度記憶装置からの深度値及び表面値は、並列ランレングス・エンコーダ26に送られる。このエンコーダはポリゴン走査変換ユニット28に送り込まれたピクセルについてのXYアドレスとポリゴンセットアップ・ユニット30に行くタグを介して、テクスチャリング・ユニットに出力を与える。このエンコーダはテクスチャリングとシェーディングのための平面方程式を計算し、且つポリゴンの平面方程式を再計算する。
このセットアップユニットはポリゴンテクスチャデータを受け取り、データをポリゴン走査変換ユニット28に提供する。ある表面に与えられたRGB値とアルファ値とハイライトは、次に、テクスチャ・ブレンディング・ユニット32に送られ、ここでそれらは、フィルタ34を介してテクスチャ・メモリからのRGB値及びアルファ値と結合され、次にタイル累積バッファへと渡された後、そこから画像用のメインフレームへと送られることになる。
【0012】
テクスチャリングを全ての光線/表面交点が実行されてしまうまで延期させることの有利な点は、見えるピクセルに関してしかテクスチャ及びシェーディングオペレーションが行われないということである。こうして有効充てん速度(effective fill rate)は、シーン中の可視ピクセルに対する遮られるピクセルの割合だけ増加する。当然ながら、ディファード・テクスチャリング・パイプラインにおいては、深度テストはテクスチャリングが起きる前に行われるので、つまりはアルファテストの前に行われることになる。その結果、パンチスルー・テクスチャされたポリゴンは、後から前への順で重なり合わずに提示されるか、或いはピクセル精密プリソーティング・オペレーションをパイプラインのより早い時期に受けるかしない限りは、正確にレンダーすることが不可能である。このような配置を実現しようとすれば、第1にソフトウェアドライバに不要な制約を課すことになる。第2に不要なプロセシング・オーバーヘッドが必要になる。
【0013】
我々は、各ピクセルに対するアルファテストの結果から深度記憶装置までのフィードバックループを含めることにより、そして各ピクセルに対するアルファテストの結果が知られるまで深度記憶装置の更新を延期することにより、この問題を克服できるものと考えるにいたった。これには、アルファテストから深度テストまでのフィードバックと、深度テスト・ユニットからアルファブレンディング・ユニットまでのフィードフォワードの両方が必要になる。
【0014】
この着想を使うと以下の4つの標準的なオペレーションモード、即ち
1.標準zバッファ、ソート無しパンチスルー互換モード、
2.ソート無し、ディファードオペレーション付きエンハンスド・パンチスルーモード、
3.表面自動ソート及びディファードオペレーション付きエンハンスド・パンチスルーモード、
4.一般化自動ソート・アルファブレンド・モード、
が使用可能となる。
【0015】
本発明のこれらのオペレーションのモード及び好適な実施例について、以下、添付図面を参照しながら例示として説明する。
【0016】
図3のブロック図は本発明の実施例により図2を修正したものである。
【0017】
図2に示すように、ポリゴンセットアップ・ブロック20は、ピクセル毎に各面の深度を計算してそれらを記憶するプロセッサ要素アレイ22にポリゴン表面データを送り込む前に、ポリゴン頂点データを受け取る。これは、各ピクセル毎に画像平面に最も接近した表面を求める深度テスターも含んでいる。これは各表面を定義するのに使用される標準ABC及びタグデータをバイパスFIFO記憶装置40に提供することができる。このFIFO記憶装置40が、今度は、制御されるとそれらパラメータをプロセッサ要素アレイ22へ送り戻すようになっている。
【0018】
XYアドレスデータ及びタグデータは、並列ランレングスエンコーダ26により、ポリゴンセットアップ・ユニット30とポリゴン走査変換装置28に図2と同様のやり方で送りこまれる。ポリゴンセットアップ・ユニットはテクスチャ記憶装置からポリゴンテクスチャデータを受け取る。ブレンディングユニット32及びフィルタ34は図2に示すのと同じやり方で作動する。しかしながら、テクスチャブレンディング・ユニットの後に、アルファテスト・ユニット42が設けられている。これは、アルファテスト・ユニットからアルファ値と位置データも受け取るパンチスルー制御ブロック44に対する制御として使用される合格/不合格の結果出力を有する。アルファテスト・ユニットは条件付ブレンド・ユニット46への出力を有するが、この条件付ブレンド・ユニット46は、テクスチャされたデータを、タイル累積バッファ36に送る前にそのままタイル深度記憶装置24からのデータとブレンドする。
【0019】
表面データに関しては、タイル深度記憶装置に接続された自動ソートユニットもある。これはデータを頂点リクエスタ50に送信するが、頂点リクエスタ50はここでポリゴン頂点データが確実に適切な順序でポリゴンセットアップ・ユニット20に供給されるようにする。
【0020】
それは、前から後ろへでも後ろから前へでも表面をソートすることができるようにするためのソート方向制御と、その使用を禁じるバイパス制御とを有している。回路の使用については4つのモード別に説明する。
【0021】
zバッファは、このように広く使用されているレンダリング・アルゴリズムであり、概略的には多数のプログラムが馴染みやすいものなので、これをエミュレートするオペレーションのモードを有するのは有用である。このように、zバッファモードで作動しているように見えながら、レイキャスティング・レンダリング・アルゴリズムの利点も享受できる。
【0022】
このモードでは、ポリゴンは、制御信号がバイパス入力に送られると、自動ソートロジック48を迂回する。代わりに、ポリゴンはソートされずにタイル深度記憶装置24と連携する深度テスト・ユニットに渡る。この時点では、深度計算が行なわれるのではなくて、レイ・キャスティング技法の基本を形成する標準ABC及びタグパラメータはバイパスFIFO40に記憶され、スクリーンXY位置及びタグ値は表面毎に順番にディファード・テクスチャリング・ユニットに送られる。
【0023】
このモードのオペレーションでは、全てのピクセルが、それらが現在のピクセルの視点により近い以前にレンダーされた不透明なピクセルに覆われてしまっているか否かに関係なく、テクスチャ・ユニットに提示されるので、テクスチャリングは延期されない。テクスチャ・ユニットは「テクセル」(テクスチャエレメント)をそれらが提示される順に処理する。テクセルはフィルタに掛けられ、ポリゴンの基本色及びハイライトとブレンドされ、従来のzバッファ(図1参照)の場合と同じやり方でアルファテストされる。各ピクセル毎に、アルファテストが合格であれば、FIFO40に記憶されているABC及びタグパラメータから対応深度が計算され、プロセッサ要素アレイ22にフィードバックされ、次にタイル深度記憶装置24に入れられる。この対応深度は次に関連の深度テストユニットで計算され、タイル深度記憶装置が更新される。ピクセルRGB値は、ここで、条件付きアルファブレンド・ユニット46によりブレンドされてタイル累積バッファに入れられる。このプロセスはシーン内の全ポリゴンが処理されるまで継続する。このオペレーションの速度は、全ポリゴンがテクスチャされシェーディングされなければならないので、標準的なzバッファの速度に等しい。可視ポリゴンのテクスチャリングとシェーディングを行なうだけでは何の節約にもならない。
【0024】
オペレーションの第2のモードは、パンチスルー制御を使ってプロセシングを加速するが、シェーディングとテクスチャリングに先だつポリゴンと表面データのソーティングは無いというモードである。本モードは、ポリゴンがテクスチャリング・ユニットに渡される前にタイル深度記憶装置の現在のコンテンツに対して深度テストをされるということ以外は、zバッファオペレーションに関して説明したものと同じである。パンチスルーテクスチャはアルファテスト・ユニット44により検知される。該ユニットは、パンチスルー表面をプロセッサ要素アレイ22に送り戻すようにパンチスルー制御ユニット44に信号を送る。それらは次に、タイル深度記憶装置及び深度テスト・ユニット26に送られ、当ユニットで記憶装置内の現在のコンテンツに対して比較テストが行なわれる。それらが画像平面により近ければ現在のコンテンツと置き替えられる。連続しているポリゴン又はポリゴンの一部が特定ピクセルにおいて以前にレンダーされた不透明ピクセルによって覆われている場合、それはテクスチャリングユニットには送られない。このように、zバッファシステムに比較した場合の充てん速度の改善の度合いは、第1にポリゴンが提示される順序、第2に深度テストとアルファテストの間の待ち時間、という2つの要因に左右される。例えば、ポリゴンがたまたま後ろから前の順に提示され重ならないのであれば、充てん速度はzバッファシステムと同じである。一方、仮に、遅れゼロのシステムでポリゴンが前から後ろの順に提示されるのであれば、充てん速度要件は、シーン内の理想的な覆われたピクセルの、シーン内の可視ピクセルに対する比率(即ち、深度の複雑さ)だけ減少する。システム内の待ち時間の影響は、本プロセスの効率低下を招くことになる。その理由は、有限時間ウインドウ(システム内の待ち時間の度合い)の場合、ゼロ待ち時間システムでは覆われていると特定され得たある割合のピクセルが、テクスチャリングユニットに渡されテクスチャリング帯域幅を消費することになるからである。1番目のポリゴンをテクスチャし、テクスチャリングユニットを通してアルファ及び深度テストをするのに費やされる時間が要るので、この待ち時間は本来的なものである。一旦この初期の待ち時間が克服されると、プロセッサ要素装置、並びにタイル深度記憶装置及び深度テスト・ユニット24には、新しいポリゴンの深度が提供され、アルファテストの結果、問題のピクセルがシーン内の他のピクセルを覆っているパンチスルーピクセルであることが分かれば、以前にレンダーされたポリゴンに関して深度テストを行なう。
【0025】
オペレーションの第3のモードは、半透明ソーティング・アルゴリズムを使用するディファード・テクスチャリング・パイプラインプロセスである。
【0026】
先に説明したように、本発明による充てん速度改善の程度は、ポリゴンが提示される順序により異なる。パンチスルー制御をピクセル精密自動ソーティングと組み合わせて用いることにより得られる利点は、システムが、ポリゴン及びポリゴンの部分が常に最適順序で処理されることを保証できるという点である。パンチスループロセッシングの自動ソート・アルゴリズムは、主に2つの点で、アルファブレンディング・プロセッシングのアルゴリズムと異なる。第1に、パンチスルーピクセルは後ろから前ではなく、前から後ろの順にソートされる点である。これは、仮にパンチスルーがあれば、そのアルファ値は1であり、その後の表面はどれも、当該ピクセルに適用されるシェード及びテクスチャに寄与しないという理由によるものである。第2に、ソートリストをより小さな部分(chunk)に分解することによりソート用のオーバーヘッドを減少することができる点である。我々はこれを「チャンキング」と呼んでいる。
【0027】
パンチスルー自動ソート・アルゴリズムのオペレーションについて図4を参照しながら説明する。これは、図2と図3におけるレイ・キャスティング・アルゴリズムを行なう部分を表しているがテクスチャ用のハードウェアは図示していない。
【0028】
見て分かる通り、キャッシュメモリ52はポリゴンセットアップ・ユニット20とプロセッシング要素アレイ22の間に設けられている。タイル深度記憶装置及び深度テスト・ユニット24は、自動廃棄ロジック58とチャンキングロジック54に連結されている自動ソートロジック56に対する出力を有している。チャンキングロジック54は、キャッシュ52に戻す出力と頂点リクエスタユニット50に送る出力も有している。自動ソートロジック56はデータの一時記憶に備えて、少なくとも1つの付加的タイル深度記憶装置を含んでいる。不透明な表面を捜す際には、現在記憶されている深度と比較すれば、ある不透明ピクセルは現在の深度よりも近いのかどうかが判定できるので、これらは不要である。これらは、半透明オブジェクトをソートする場合に使用される。これら付加的な深度記憶装置は、タイル深度記憶装置及び深度テストユニット24内に設けてもよい。
【0029】
パンチスルーテクスチャは、通常、森や雲のシーンのような複雑な構造体をモデル化するために使用されるので、パンチスルーに使用されるポリゴンの数はアルファブレンドされた半透明の場合に使用されるポリゴンの数よりもはるかに多い。必然的に、ソートのためのプロセッシング・オーバーヘッドは、システムの効率を高めるためには、最小限にされねばならない。n個のオブジェクトを上向き又は下向き順にソートするための単純なアルゴリズムでもn個のオペレーションを必要とする。これを図5に示しており、木のパンチスルーテクスチャが前面に見られるが、これは木の部分が不透明テクセルでその周囲が透明テクセルとなっている。自動ソーティングは、底層を識別するために半透明ポリゴンの全部を順にレンダリングすることにより行なわれる。従って、処理されるタイル毎のポリゴンの数はポリゴンの数に層数を掛けたものであり、2nとなる。
【0030】
選択された各オブジェクトがソーティングオペレーションにより廃棄される場合、オペレーションの数は、
n+n−1 + n−2 + ........ +1
であり、およそn/2に等しい。パンチスルーソーティングの特性は、視覚的なエラーを起こさずに、ソートがチャンクできるということである。チャンキングについては、オペレーションの数はMOD(n/m)+REM(n/m)となり、ここにnはチャンクのサイズである。チャンクサイズを小さくすることは、ソート用のオーバーヘッドとソートの効率の両方を下げることにつながる。このアルゴリズムを実際にどのように実施する場合でも、ソートアルゴリズムに使用できる計算用リソースとパンチスルーオペレーションとはトレードオフの関係にある。チャンキングの利点は、このトレードオフを探る自由度が増すことである。ソーティングアルゴリズムは、早期に、タイル内の全ピクセルが有効性を検査されてしまった(即ち、有効な不透明深度を割当てられてしまった)時点で終了できない限り、更に最適化することができる。このことは図6に示している。タイル(a)では、最も近いポリゴンはその後の全てのポリゴンを隠している。従って、処理されるポリゴンの数はnになる。
【0031】
パンチスルーソーティングアルゴリズムの1回のパスで、ピクセル毎に画像面に最も近いポリゴンが見つけられる。そして、タイル(a)のケースでは、第1のパスで、タイル内の各ピクセル毎に最も近い不透明ポリゴンが発見されていると判断できるので、従ってそれ以上のパスは不要である。
【0032】
ポリゴンデータのチャンクは、チャンキングロジック54により、タイル深度記憶装置、深度テストロジック、及び自動ソートロジックに与えられる。それらは次に、もはや不要になったポリゴンを廃棄ロジックに渡す。
【0033】
自動ソートロジックは、その後、レンダーされるポリゴンをソート方向入力により制御された方向にソートして、それらをキャッシュメモリ52に送るが、そこからポリゴンは、再度、プロセッサ要素アレイ22に送られ、最終的にはそこを通ってテクスチャリング・ユニットまで送られることになる。このように自動ソートロジックはポリゴンをソートして前から後ろの順序に並べるので、図3の装置で使用される場合、最も接近している完全に不透明なピクセルが最初に処理され、その後ろのポリゴンはテクスチャされる必要がなくなるので、複雑なシーンのプロセシング・オーバーヘッドを著しく低減することができる。
【0034】
図3の回路のオペレーションの第4のモードは、一般化された自動ソート・アルファブレンド・モードである。
標準オペレーションとしてバイリニア及びトリリニアテクスチャリングを行なう最新式のグラフィック・コントローラでは、パンチスルー・テクスチャの濃淡むらのある視認特性はますます受け入れられなくなってきている。典型的な芸術作品、例えば木のテクスチャは、幹の部分はパンチスルー(即ち、完全に不透明に)され、葉の先端部はアルファブレンド(即ち、部分的に半透明に)されることになる。図3の回路を使うと、ディファード・テクスチャリングの利点を保持したまま、このようなタイプのアルファブレンドされたテクスチャを正確にレンダーすることができる。
【0035】
これを行なうため、木の表面データでは2つのパスが行なわれることになる。第1のパスでは、タイル内の各ポリゴンのパンチスルー部分は、上記自動ソートモードで説明したように処理される。アルファテスト・ユニット42は完全に不透明なテクセルしか通らないようにセットされるので、パスが終った時点でタイル深度バッファは、タイル内の各ピクセル位置毎に、目に対して最も近い完全に不透明なテクセルの深度を保有している。第2のパスで、自動ソート・アルゴリズムはピクセルを後ろから前にソートし、各可視ポリゴンフラクション毎に、不透明でないもの(即ち、木の例で言えばアルファブレンドされた葉の縁)しかテクスチャリング・ユニットに進めないように、深度テストは「より大きい」にセットされる。第2のパスは後ろから前にソートするので、部分的に重なる半透明テクスチャは全て正確にブレンドされる。第2のパスは、典型的なシーン(即ちパンチスルーの森)ではポリゴンリスト中の総ピクセルのうち少しのパーセンテージしか深度テストに合格しないので、非常に効率的である。一般的なアルファブレンドされたテクスチャに対するこの技法の適合度は、テクスチャマップ内の不透明テクセルの半透明テクセルに対する比率により異なる。木の例では、本アルゴリズムは最適であるといえる。しかしながら、仮に、全てのテクスチャが雲であり不透明ピクセルが全くないような場合には、標準的な自動ソートの方がより好ましい方法であると言える。
【0036】
上記の説明より、3次元画像をレンダーするためのレイ・キャスティング技法により作動する本方法及び装置は、パンチスルーテクスチャによるプロセッシング・オーバーヘッドを低減する利益を享受するために修正して、システムのオペレーションのスピードアップにつなげられることが理解されるだろう。パンチスルーテクスチャの使用は、雲のシーンや森のように重なり合ったパンチスルーテクスチャが多数あるようなシーンでは特に有益である。パンチスループロセシングを使用するということは、各ピクセル毎に視点に最も接近しているポリゴンだけがテクスチャ値を与えられるということを意味している。このオペレーションがなければ、ピクセルを通過する光線を遮断する全てのポリゴンに対してテクスチャを適用する必要が生じることになる。それにより、森のようなシーンでは、1つのピクセルではなく各ピクセル毎に、数千のテクスチャリングオペレーションが必要になることは疑いもない。このようなわけで、非常に複雑なシーンが、他の方法よりもより遙かに速い速度でテクスチャすることができるようになる。
【図面の簡単な説明】
【図1】 上記先行技術によるzバッファシステムを示す図である。
【図2】 ディファード・テクスチャリングを用いた先行技術のレイ・キャスティング・システムを示す図である。
【図3】 本発明の好適な実施例を示す図である。
【図4】 自動ソート・ユニットを備えた本発明の別の好適な実施例を示す図である。
【図5】 ポリゴンについての自動ソート手法を示す概略図である。
【図6】 ポリゴンについての更に別の自動ソート手法を示す概略図である。
[0001]
(Technical field of the invention)
The present invention relates to a method and apparatus for shading and texturing 3D computer generated images.
[0002]
(Background of the Invention)
The standard method used for shading and texturing when generating 3D images is the z or depth buffer system. It has been used for many years and is now an industry standard.
[0003]
In our UK Patent No. 2281682 we presented an alternative method with many advantages over the z-buffer system. It is called a ray-casting technique, where each object (polygon) in an image is defined by a set of infinite surfaces tagged in the forward or reverse direction. When a ray from a certain viewpoint is poured into the scene, the intersection with the surface is determined along with the distance from the image plane to the intersection. By analyzing this data, it is possible to determine for each pixel which surface of each polygon is visible, so that shading and texturing of the pixels are possible. This method is executed by using a pipeline of processing elements, and each element performs a surface block calculation of a ray to obtain a depth value of the surface in order for each pixel. Once the depth value of a surface of a pixel is determined, using these processing elements, the depth value is stored in the depth or z-buffer with data identifying the surface. The z-buffer information is now read by the texture device and used to apply the texture data for display.
[0004]
Surfaces in the system may be opaque or translucent. In order to be able to display a translucent effect, a blend value can also be associated with the face. For example, a cloud is modeled as a translucent surface by assigning RGB values that define color and alpha blending values to define translucency. Translucency is controlled by adjusting the alpha value of the texture map across the surface. A commonly used blend mode is known as alpha blending, where successive polygons are blended into the frame buffer and put into the following equation.
[0005]
RGB (new) = alpha * RGB (frame buffer) + (1-alpha) * RGB (texture)
This technique is well known. The limitation when using alpha blending is that to render a correctly blended image, the pixels that display the polygons are rendered from back to front in depth order so that each contributes an exact amount to the final image. And must be presented to the blending unit. In the case of a z-buffer system, this ordering is usually performed by the application software that supplies the z-buffer. This is referred to as a presort mode. Ray casting techniques can use either a presort mode or an automatic pixel precision sort.
[0006]
There is a special case of translucent texture called “punchthrough”. This is defined as a translucent texture where the alpha component is limited to either “on” or completely transparent or “off” or completely opaque. This type of texture can be modeled first with a complex scene like a forest using a relatively small number of polygons, and secondly with a traditional z-buffer punch-through regardless of the order in which the polygons are presented to the system. It is very popular in 3D game applications for the above two reasons that translucency can be rendered accurately.
[0007]
A traditional z-buffer pipeline with an alpha test for translucency is shown in FIG. Here, the rendered polygon is first subjected to scan line conversion in the polygon scan converter 2, and the resulting x, y, z, u, v, and w values are then converted to the texturing unit and depth test. Sent to the unit (z-buffer). The texture address is sent to the texture memory. The texture values retrieved from the texture memory are passed to the texture filter 4 which reduces aliasing artifacts due to the texture resampling process. The filtered value is sent to the texture blend unit 6 where the base color and highlight of the polygon are blended with the texture value. Next, in alpha test unit 8, an alpha test is performed on the alpha component of the resulting pixel. This test is by comparison with a reference alpha value.
[0008]
The alpha test unit performs a size comparison with respect to the alpha reference value. A comparison mode in which the user is one of the alpha reference values and is not possible, less than, equal to, less than, greater than, not equal, greater than, or always give. The test selected depends on the type of image the user is creating. The alpha test unit outputs whether the input alpha value passed or failed the comparison mode.
[0009]
If the alpha test result passes, then a depth test is performed on the updated z-buffer z and RGB values. If the test fails, the pixel is not processed further. Thus, in the typical case where the reference alpha is 1 and the test is “greater than or equal to”, only opaque pixels are written to the frame buffer, and these pixels are the other polygons in the scene, regardless of the order in which the polygons were processed. A depth comparison test will be performed for all. The depth test is performed by the depth test unit 10, which can read the z value from the z buffer 12 via the stencil unit 14 and write the z value directly to the z buffer storage. The depth test conditions are shown next to the depth test unit in FIG.
[0010]
FIG. 2 illustrates our UK Patent No. 2281682 ray casting approach using deferred texturing, a method in which texturing data is applied at the end of the ray / surface intersection test process. The apparatus includes a polygon setup unit that provides data defining the plane equations of the polygon. This data is then sent to an array 22 of processing elements so that one ray / surface intersection test can be performed for each processing element to generate a depth value for that ray / surface intersection. Typically, a processing array operates on a subset of all images known as, for example, 32 × 32 pixel “tiles” and operates on one polygon at a time. The calculated depth value is stored in the tile depth storage device 24.
[0011]
The depth values and surface values from the tile depth store are sent to the parallel run length encoder 26. This encoder provides an output to the texturing unit via the XY address for the pixel sent to the polygon scan conversion unit 28 and the tag going to the polygon setup unit 30. This encoder calculates the plane equations for texturing and shading and recalculates the polygon plane equations.
This setup unit receives the polygon texture data and provides the data to the polygon scan conversion unit 28. The RGB and alpha values and highlights applied to a surface are then sent to the texture blending unit 32, where they are passed through the filter 34 to the RGB and alpha values from the texture memory. After being combined and then passed to the tile accumulation buffer, it will be sent to the main frame for the image from there.
[0012]
The advantage of deferring texturing until all ray / surface intersections have been performed is that texture and shading operations are only performed on visible pixels. Thus, the effective fill rate is increased by the ratio of blocked pixels to visible pixels in the scene. Of course, in the deferred texturing pipeline, depth testing is done before texturing occurs, that is, before alpha testing. As a result, punch-through textured polygons are accurate unless they are presented non-overlapping in back-to-front order, or are subject to pixel precision presorting operations earlier in the pipeline. It is impossible to render. In order to realize such an arrangement, first, an unnecessary restriction is imposed on the software driver. Second, unnecessary processing overhead is required.
[0013]
We overcome this problem by including a feedback loop from the alpha test results for each pixel to the depth store, and by deferring the update of the depth store until the alpha test results for each pixel are known I thought it was possible. This requires both feedback from the alpha test to the depth test and a feedforward from the depth test unit to the alpha blending unit.
[0014]
Using this idea, there are four standard operating modes:
1. Standard z-buffer, unsorted punch-through compatible mode,
2. No sort, enhanced punch through mode with deferred operation,
3. Enhanced punch through mode with automatic surface sorting and deferred operation,
4). Generalized automatic sort, alpha blend mode,
Can be used.
[0015]
These modes of operation and preferred embodiments of the present invention will now be described by way of example with reference to the accompanying drawings.
[0016]
The block diagram of FIG. 3 is a modification of FIG. 2 according to an embodiment of the present invention.
[0017]
As shown in FIG. 2, the polygon setup block 20 receives polygon vertex data before sending the polygon surface data to the processor element array 22 which calculates the depth of each face for each pixel and stores them. This also includes a depth tester that determines the surface closest to the image plane for each pixel. This can provide the standard ABC and tag data used to define each surface to the bypass FIFO storage 40. The FIFO storage device 40, in turn, is configured to send the parameters back to the processor element array 22 when controlled.
[0018]
The XY address data and tag data are sent by the parallel run length encoder 26 to the polygon setup unit 30 and the polygon scan converter 28 in the same manner as in FIG. The polygon setup unit receives polygon texture data from the texture store. Blending unit 32 and filter 34 operate in the same manner as shown in FIG. However, an alpha test unit 42 is provided after the texture blending unit. It has a pass / fail result output that is used as a control for a punch-through control block 44 that also receives alpha values and position data from the alpha test unit. The alpha test unit has an output to the conditional blend unit 46 which does not send the textured data directly from the tile depth store 24 before sending it to the tile accumulation buffer 36. Blend with.
[0019]
For surface data, there is also an automatic sorting unit connected to the tile depth storage. This sends the data to the vertex requester 50, which now ensures that the polygon vertex data is supplied to the polygon setup unit 20 in the proper order.
[0020]
It has a sort direction control to allow the surface to be sorted from front to back and back to front and a bypass control that prohibits its use. The use of the circuit will be described for each of the four modes.
[0021]
The z-buffer is such a widely used rendering algorithm, and it is useful to have a mode of operation that emulates it, as it is generally familiar to many programs. In this way, the advantages of the ray casting rendering algorithm can be enjoyed while appearing to operate in the z-buffer mode.
[0022]
In this mode, the polygon bypasses the automatic sort logic 48 when a control signal is sent to the bypass input. Instead, the polygons are not sorted and are passed to a depth test unit that cooperates with the tile depth store 24. At this point, instead of depth calculations being performed, the standard ABC and tag parameters that form the basis of the ray-casting technique are stored in the bypass FIFO 40, and the screen XY position and tag values are in turn deferred texture by surface. Sent to the ring unit.
[0023]
In this mode of operation, all pixels are presented to the texture unit regardless of whether they have been covered by previously rendered opaque pixels closer to the current pixel's viewpoint, Texturing is not postponed. The texture unit processes “texels” (texture elements) in the order in which they are presented. The texel is filtered, blended with the base colors and highlights of the polygon, and alpha tested in the same way as with a conventional z-buffer (see FIG. 1). For each pixel, if the alpha test passes, the corresponding depth is calculated from the ABC and tag parameters stored in the FIFO 40 and fed back to the processor element array 22 and then placed in the tile depth store 24. This corresponding depth is then calculated in the associated depth test unit and the tile depth store is updated. The pixel RGB values are now blended by the conditional alpha blend unit 46 into the tile accumulation buffer. This process continues until all polygons in the scene have been processed. The speed of this operation is equal to the speed of a standard z-buffer since all polygons must be textured and shaded. Simply texturing and shading visible polygons does not save anything.
[0024]
The second mode of operation is a mode in which punch-through control is used to accelerate processing, but there is no polygon and surface data sorting prior to shading and texturing. This mode is the same as that described for the z-buffer operation, except that the polygon is depth tested against the current content of the tile depth store before being passed to the texturing unit. The punch through texture is detected by the alpha test unit 44. The unit signals the punch-through control unit 44 to send the punch-through surface back to the processor element array 22. They are then sent to the tile depth storage and depth test unit 26 where a comparative test is performed on the current content in the storage. If they are closer to the image plane, they are replaced with the current content. If a continuous polygon or part of a polygon is covered by previously rendered opaque pixels at a particular pixel, it is not sent to the texturing unit. Thus, the degree of improvement in filling speed compared to the z-buffer system depends on two factors: first, the order in which polygons are presented, and second, the latency between the depth test and the alpha test. Is done. For example, if the polygon happens to be presented from back to front and does not overlap, the filling speed is the same as the z-buffer system. On the other hand, if the polygons are presented in front-to-back order in a zero-lag system, the filling speed requirement is the ratio of ideal covered pixels in the scene to visible pixels in the scene (i.e. Depth complexity). The impact of latency in the system will lead to a reduction in the efficiency of the process. The reason is that for a finite time window (the amount of latency in the system), a percentage of pixels that could be identified as being covered by a zero latency system are passed to the texturing unit to reduce the texturing bandwidth. It is because it will consume. This latency is inherent because it takes time to texture the first polygon and do alpha and depth tests through the texturing unit. Once this initial latency is overcome, the processor element unit and tile depth store and depth test unit 24 are provided with the new polygon depth, and as a result of the alpha test, the pixel in question is in the scene. If it is known that it is a punchthrough pixel covering another pixel, a depth test is performed on the previously rendered polygon.
[0025]
The third mode of operation is a deferred texturing pipeline process that uses a translucent sorting algorithm.
[0026]
As described above, the degree of filling speed improvement according to the present invention varies depending on the order in which polygons are presented. An advantage gained by using punchthrough control in combination with pixel precision automatic sorting is that the system can ensure that polygons and portions of polygons are always processed in an optimal order. The punch-through processing automatic sorting algorithm differs from the alpha blending processing algorithm in two main ways. First, punch-through pixels are sorted from front to back, not back to front. This is because if there is punchthrough, its alpha value is 1, and none of the subsequent surfaces contribute to the shade and texture applied to the pixel. Second, the sort overhead can be reduced by breaking the sort list into smaller chunks. We call this “chunking”.
[0027]
The operation of the punch-through automatic sort algorithm will be described with reference to FIG. This represents the portion that performs the ray casting algorithm in FIGS. 2 and 3, but the texture hardware is not shown.
[0028]
As can be seen, the cache memory 52 is provided between the polygon setup unit 20 and the processing element array 22. Tile depth storage and depth test unit 24 has an output to autosort logic 56 that is coupled to autodiscard logic 58 and chunking logic 54. The chunking logic 54 also has an output back to the cache 52 and an output sent to the vertex requester unit 50. Autosort logic 56 includes at least one additional tile depth storage in preparation for temporary storage of data. When searching for an opaque surface, these are not necessary as it can be determined whether an opaque pixel is closer than the current depth compared to the currently stored depth. These are used when sorting translucent objects. These additional depth storage devices may be provided in the tile depth storage device and depth test unit 24.
[0029]
Punchthrough textures are typically used to model complex structures such as forest and cloud scenes, so the number of polygons used for punchthrough is used when alpha blended translucent. Much more than the number of polygons being played. Inevitably, the processing overhead for sorting must be minimized in order to increase system efficiency. Even a simple algorithm for sorting n objects in upward or downward order is n 2 Requires operations. This is illustrated in FIG. 5, where a wood punch-through texture is seen on the front, where the wood portion is opaque texels and the surroundings are transparent texels. Automatic sorting is performed by sequentially rendering all of the translucent polygons to identify the bottom layer. Thus, the number of polygons per tile processed is the number of polygons multiplied by the number of layers, 2n 2 It becomes.
[0030]
If each selected object is discarded by the sorting operation, the number of operations is
n + n-1 + n-2 +. . . . . . . . +1
And approximately n 2 Equal to / 2. A characteristic of punch-through sorting is that sorting can be chunked without causing visual errors. For chunking, the number of operations is MOD (n / m) * m 2 + REM (n / m) 2 Where n is the chunk size. Reducing the chunk size leads to a decrease in both sorting overhead and sorting efficiency. Regardless of how this algorithm is actually implemented, there is a trade-off between computing resources that can be used for the sort algorithm and punch-through operations. The advantage of chunking is that it gives you more freedom to explore this trade-off. The sorting algorithm can be further optimized as long as it cannot be terminated at an early stage when all the pixels in the tile have been examined for validity (ie, assigned a valid opacity depth). This is illustrated in FIG. In tile (a), the nearest polygon hides all subsequent polygons. Therefore, the number of polygons to be processed is n.
[0031]
In one pass of the punch-through sorting algorithm, the closest polygon to the image plane is found for each pixel. In the case of tile (a), it can be determined that the nearest opaque polygon is found for each pixel in the tile in the first pass, and therefore no further passes are necessary.
[0032]
Polygon data chunks are provided by chunking logic 54 to tile depth storage, depth test logic, and autosort logic. They then pass polygons that are no longer needed to the discard logic.
[0033]
The autosort logic then sorts the rendered polygons in the direction controlled by the sort direction input and sends them to the cache memory 52, from which the polygons are again sent to the processor element array 22 for the final In effect, it will be sent to the texturing unit. In this way, the autosort logic sorts the polygons and places them in front-to-back order, so when used in the device of FIG. 3, the closest fully opaque pixel is processed first, followed by Since polygons need not be textured, the processing overhead of complex scenes can be significantly reduced.
[0034]
The fourth mode of operation of the circuit of FIG. 3 is a generalized autosort alpha blend mode.
In modern graphics controllers that perform bilinear and trilinear texturing as standard operations, the uneven visibility characteristics of punch-through textures are becoming increasingly unacceptable. A typical artwork, such as a wood texture, will have the stem portion punched through (ie, fully opaque) and the leaf tip alpha blended (ie, partially translucent). . Using the circuit of FIG. 3, such types of alpha blended textures can be accurately rendered while retaining the benefits of deferred texturing.
[0035]
To do this, two passes will be performed on the tree surface data. In the first pass, the punch-through portion of each polygon in the tile is processed as described in the automatic sort mode. Since the alpha test unit 42 is set to pass only completely opaque texels, at the end of the pass, the tile depth buffer is fully opaque to the eye closest to the eye for each pixel location in the tile. Possesses deep texel depth. In the second pass, the autosort algorithm sorts the pixels from the back to the front, and for each visible polygon fraction, only non-opaque (ie alpha blended leaf edges in the tree example) is textured. Depth test is set to “greater than” to prevent proceeding to the unit. The second pass sorts from back to front so that all partially overlapping translucent textures are blended correctly. The second pass is very efficient because in a typical scene (ie punch-through forest) only a small percentage of the total pixels in the polygon list pass the depth test. The suitability of this technique for general alpha blended textures depends on the ratio of opaque texels to translucent texels in the texture map. In the tree example, the algorithm is optimal. However, if all the textures are clouds and there are no opaque pixels, then standard automatic sorting is the preferred method.
[0036]
From the above description, the present method and apparatus operating with ray casting techniques for rendering 3D images has been modified to enjoy the benefits of reducing the processing overhead due to punch-through textures and the operation of the system. It will be understood that this can lead to speedup. The use of punch-through textures is particularly beneficial in scenes where there are many overlapping punch-through textures such as cloud scenes or forests. Using punch-through processing means that only the polygon closest to the viewpoint for each pixel can be given a texture value. Without this operation, it would be necessary to apply a texture to all polygons that block rays that pass through the pixel. Thus, in a forest-like scene, there is no doubt that thousands of texturing operations are required for each pixel rather than one pixel. This is why very complex scenes can be textured at a much faster rate than other methods.
[Brief description of the drawings]
FIG. 1 shows a z-buffer system according to the prior art.
FIG. 2 shows a prior art ray casting system using deferred texturing.
FIG. 3 is a diagram showing a preferred embodiment of the present invention.
FIG. 4 shows another preferred embodiment of the present invention with an automatic sorting unit.
FIG. 5 is a schematic diagram showing an automatic sorting method for polygons.
FIG. 6 is a schematic diagram showing still another automatic sorting method for polygons.

Claims (8)

3次元コンピュータ生成画像をシェーディング及びテクスチャリングするための方法において、
画像中の各オブジェクトを表している表面のグループを定義するデータを順に提供する段階と、
ディスプレイの各基本区域毎に、各オブジェクトの各表面に対する深度値を前記表面の画像面からの距離に従って生成する段階と、
基本区域における表面が完全に不透明か否かを判定する段階と、
基本区域のオブジェクトの不透明な表面に対する深度値を深度テスト手段に記憶する段階と、
後続オブジェクトからの表面の深度を、前記基本区域の不透明なオブジェクトの深度値と比較する段階と、
画像平面により接近している完全に不透明な表面を既に有している前記基本区域に対する後続オブジェクトの表面を廃棄する段階と、
シェーディング及びテクスチャデータを、各基本区域において見えると判定された前記表面に適用する段階と、
から成ることを特徴とする方法。
In a method for shading and texturing a three-dimensional computer generated image,
Providing in turn data defining a group of surfaces representing each object in the image;
For each basic area of the display, generating a depth value for each surface of each object according to the distance of the surface from the image plane;
Determining whether the surface in the base area is completely opaque;
Storing a depth value for the opaque surface of the object in the base area in a depth test means;
Comparing the depth of the surface from the subsequent object to the depth value of the opaque object in the base area;
Discarding the surface of the subsequent object for the basic area that already has a completely opaque surface that is closer to the image plane;
Applying shading and texture data to the surface determined to be visible in each elementary area;
A method characterized by comprising.
画像内のオブジェクトは最初に前から後ろへとソートされ、完全に不透明なオブジェクトがその後ろにあるオブジェクトのテクスチャリングを禁止するようになっていることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein objects in the image are first sorted from front to back such that a completely opaque object prohibits texturing of objects behind it. 少なくとも1つのテクスチャが完全に不透明な部分と半透明な部分とを含んでおり、画像内のオブジェクトは最初に前から後ろへとソートされ、完全に不透明なエレメントを使ってその後ろのオブジェクトのテクスチャリングが禁止され、次に前記オブジュジェクトは後ろから前へソートされ不透明でない基本区域にはテクスチャリングが適用されるようになっていることを特徴とする請求項1に記載の方法。  At least one texture contains a completely opaque part and a translucent part, the objects in the image are first sorted from front to back, and the texture of the object behind it using a completely opaque element The method of claim 1, wherein ringing is prohibited, and then the objects are sorted from back to front so that texturing is applied to non-opaque elementary areas. 最初に画像を複数の長方形区域に分割する段階と、各長方形区域を順にシェーディング及びテクスチャリングする段階から成るセットを含んでいることを特徴とする請求項1乃至3の何れかに記載の方法。4. A method as claimed in any preceding claim , comprising a set comprising initially dividing the image into a plurality of rectangular areas and shading and texturing each rectangular area in turn. 3次元コンピュータ生成画像をシェーディング及びテクスチャリングするための装置において、
画像中の各オブジェクトを表している表面のグループを定義するデータを順に提供するための手段と、
ディスプレイの各基本区域における各オブジェクトの各表面毎に深度値を、前記表面の画像面からの距離に従って生成するための手段と、
基本区域における表面が完全に不透明か否かを判定する手段と、
基本区域のオブジェクトの不透明な表面に対する深度値を深度テスト手段に記憶するための手段と、
後続オブジェクトからの表面の深度を、各基本区域の不透明オブジェクトの深度値と比較するための手段と、
画像平面により接近している完全に不透明な表面を既に有している基本区域に対する後続オブジェクトの表面を廃棄する手段と、
シェーディング及びテクスチャデータを、各基本区域において見えると判定された前記表面に適用するための手段と、
を備えていることを特徴とする装置。
In an apparatus for shading and texturing a 3D computer generated image,
Means for sequentially providing data defining a group of surfaces representing each object in the image;
Means for generating a depth value for each surface of each object in each basic area of the display according to the distance of the surface from the image plane;
Means for determining whether the surface in the basic area is completely opaque;
Means for storing the depth values in the depth test means for the opaque surface of the object of the prime area,
Means for comparing the depth of the surface from the subsequent object to the depth value of the opaque object in each base area;
Means for discarding the surface of the subsequent object for a base area that already has a completely opaque surface that is closer to the image plane;
Means for applying shading and texture data to the surface determined to be visible in each elementary area;
A device characterized by comprising:
完全に不透明なオブジェクトがその後ろにあるオブジェクトのテクスチャリングを禁止するように、画像内のオブジェクトを前から後ろへとソートするための手段を含んでいることを特徴とする請求項5に記載の装置。  6. A means for sorting objects in an image from front to back so that a completely opaque object prohibits texturing of objects behind it. apparatus. 少なくとも1つのテクスチャが完全に不透明な部分と半透明な部分とを含んでおり、最初に、完全に不透明なエレメントを使ってその後ろのオブジェクトのテクスチャリングが禁止されるように画像内のオブジェクトを前から後ろへとソートし、次に、不透明でない基本区域にはテクスチャリングが適用されるようにオブジェクトを後ろから前へソートするための手段を含んでいることを特徴とする請求項5に記載の方法。At least one texture contains a completely opaque part and a translucent part. First, the object in the image is set so that a completely opaque element is used to prohibit texturing the object behind it. 6. A means for sorting objects from back to front so that they are sorted from front to back and then texturing is applied to non-opaque elementary areas. the method of. 最初に画像を複数の長方形タイルに分割するための手段を含んでいることを特徴とする請求項5、6又は7の何れかに記載の方法。  8. A method according to any of claims 5, 6 or 7 including means for initially dividing the image into a plurality of rectangular tiles.
JP2000581597A 1998-11-06 1999-11-08 Shading and texturing 3D computer generated images Expired - Lifetime JP4499291B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9824411.4 1998-11-06
GB9824411A GB2343601B (en) 1998-11-06 1998-11-06 Shading and texturing 3-dimensional computer generated images
PCT/GB1999/003706 WO2000028482A1 (en) 1998-11-06 1999-11-08 Shading and texturing 3-dimensional computer generated images

Publications (2)

Publication Number Publication Date
JP2002529870A JP2002529870A (en) 2002-09-10
JP4499291B2 true JP4499291B2 (en) 2010-07-07

Family

ID=10842015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000581597A Expired - Lifetime JP4499291B2 (en) 1998-11-06 1999-11-08 Shading and texturing 3D computer generated images

Country Status (7)

Country Link
US (1) US6906715B1 (en)
EP (1) EP1125252B1 (en)
JP (1) JP4499291B2 (en)
AT (1) ATE233005T1 (en)
DE (1) DE69905483T2 (en)
GB (1) GB2343601B (en)
WO (1) WO2000028482A1 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355633A (en) * 1999-06-28 2001-04-25 Pixelfusion Ltd Processing graphical data
US7095409B2 (en) * 2003-04-30 2006-08-22 Pixar Shot shading method and apparatus
GB2404316B (en) * 2003-07-25 2005-11-30 Imagination Tech Ltd Three-Dimensional computer graphics system
US20050195198A1 (en) * 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US8081182B2 (en) 2004-03-03 2011-12-20 Qualcomm Incorporated Depth buffer for rasterization pipeline
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
US7656412B2 (en) * 2005-12-21 2010-02-02 Microsoft Corporation Texture resampling with a processor
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
JP4964688B2 (en) * 2007-06-22 2012-07-04 任天堂株式会社 Image processing program and image processing apparatus
US20090080803A1 (en) * 2007-09-20 2009-03-26 Mitsugu Hara Image processing program, computer-readable recording medium recording the program, image processing apparatus and image processing method
KR102066659B1 (en) 2013-08-13 2020-01-15 삼성전자 주식회사 A graphic processing unit, a graphic processing system including the same, and a method of operating the same
KR102651126B1 (en) * 2016-11-28 2024-03-26 삼성전자주식회사 Graphic processing apparatus and method for processing texture in graphics pipeline

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825391A (en) * 1987-07-20 1989-04-25 General Electric Company Depth buffer priority processing for real time computer image generating systems
JPH04220782A (en) * 1990-12-20 1992-08-11 Fujitsu Ltd Three-dimensional image display processing method
US5428724A (en) * 1992-04-29 1995-06-27 Canon Information Systems Method and apparatus for providing transparency in an object based rasterized image
AU6783594A (en) * 1993-05-10 1994-12-12 Apple Computer, Inc. Computer graphics system having high performance multiple layer z-buffer
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
US5854631A (en) * 1995-11-22 1998-12-29 Silicon Graphics, Inc. System and method for merging pixel fragments based on depth range values
JP3495189B2 (en) * 1996-06-19 2004-02-09 株式会社ソニー・コンピュータエンタテインメント Drawing apparatus and drawing method
AU5688199A (en) * 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor

Also Published As

Publication number Publication date
GB2343601A (en) 2000-05-10
ATE233005T1 (en) 2003-03-15
JP2002529870A (en) 2002-09-10
EP1125252B1 (en) 2003-02-19
GB9824411D0 (en) 1998-12-30
DE69905483D1 (en) 2003-03-27
DE69905483T2 (en) 2003-10-30
EP1125252A1 (en) 2001-08-22
GB2343601B (en) 2002-11-27
US6906715B1 (en) 2005-06-14
WO2000028482A1 (en) 2000-05-18

Similar Documents

Publication Publication Date Title
JP4499291B2 (en) Shading and texturing 3D computer generated images
Everitt Interactive order-independent transparency
KR100510131B1 (en) Pixel cache, 3D graphic accelerator using it, and method therefor
US6552723B1 (en) System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US9619937B2 (en) Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system
US6774910B2 (en) Method and system for providing implicit edge antialiasing
US6750867B1 (en) Image processing apparatus
WO2000011613A2 (en) Performing hidden surface removal in a graphics processor with deferred shading
WO1999049417A1 (en) Fog simulation for partially transparent objects
JP2000194878A (en) Method and system for rendering volume on image plane and method for rendering three-dimensional volume onto two-dimensional image plane
US6700584B1 (en) Method and apparatus for handling translucency in 3D graphics
KR20060052042A (en) Method for hardware accelerated anti-aliasing in 3d
US10497150B2 (en) Graphics processing fragment shading by plural processing passes
US6396502B1 (en) System and method for implementing accumulation buffer operations in texture mapping hardware
US6930684B2 (en) Method and apparatus for accelerating occlusion culling in a graphics computer
US6809730B2 (en) Depth based blending for 3D graphics systems
Schollmeyer et al. Order‐independent transparency for programmable deferred shading pipelines
JP4678951B2 (en) Depth sorting for computer-based 3D shading and texturing systems
KR20230032826A (en) Method for merging layer based on virtual z-thickness in multi-fragment rendering, apparatus and computer program for performing the method
US20040027348A1 (en) Volume clipping in computer 3d graphics
Carr et al. Coherent layer peeling for transparent high-depth-complexity scenes
US11908069B2 (en) Graphics processing
US7355602B1 (en) Surrogate stencil buffer clearing
Lau et al. The compositing buffer: a flexible method for image generation and image editing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090910

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100415

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4499291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term