説明

透光性3Dグラフィックをレンダリングする方法及び装置

【課題】複数の三角形の画像基本要素(image primitive)で構成されるグラフィック画像のレンダリングにおいて透光性をハンドリング(handling)する方法及び装置を提供する。
【解決手段】画像平面に投影されるための複数の三角形の画像基本要素からの二次元のピクセル画像をレンダリングする画像処理方法において、これら三角形内の位置におけるパラメータ値は、透光性の値である。透光性ピクセルフラグメントの全ては、部分的なフラグメントとして特徴付けられ、これらフラグメントは、ピクセルフラグメントバッファに前から後ろへと挿入される。ピクセルの最終的な色は、最先のフラグメントから決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の三角形の画像基本要素(image primitive)で構成されるグラフィック画像のレンダリングにおいて透光性をハンドリング(handling)する方法及び装置に関する。
【背景技術】
【0002】
透光技術は、透光性オブジェクトが重なる場所においてアンチエイリアシング(anti-aliasing)が困難なときにそのようなオブジェクトの画像を供給するためだけでなく、あるモデルから他のモデルへの円滑な遷移に、モデルの大きさの大幅な変化を許容させるようにするために、3Dグラフィックに適用され、細部のフェードレベル(fade level)の適用は、オブジェクトがすぐに後退する(recede)とき、フライトシミュレータ(flight simulator)に適用される。
【0003】
3Dグラフィックにおいて、透光性オブジェクトは、この透光性オブジェクトの背後にあるオブジェクトが透光性オブジェクトを介し減衰(attenuated)された形式で見ることができるようにする一方、不透明なオブジェクトは、この不透明なオブジェクトの後ろにある任意の他のオブジェクトを分かりにくくする。透光性は、典型的にモノクロ(monochrome)であり、すなわち、赤、緑、及び青色成分に共通する1つのアルファ成分がある。各色成分がそれ独自のアルファ成分を持つ場合には、減法混色(subtractive colour mixing)の周知の効果がオブジェクトの重複部に与えられる。
【0004】
ある透光性のモデルは、小さい孔のモデルである。色付けされた不透明なオブジェクトに人間の目で見えないほど小さい無数の孔を一面に付けること(peppering)で透光性オブジェクトが作られる場合、透光性オブジェクトの背後のオブジェクトは、この孔を通して見ることができる。透光性は、オブジェクト表面の単位エリア(unit area)あたりの、孔により占められるエリアとして規定されることができる。
【0005】
上記の小さな孔のモデルを用いて、0.25の透光性を各々持つ一連の重なっている透光性オブジェクトを通して見ると考えてみる。最も近くにある(nearest)オブジェクトは、オブジェクトの表面のエリアの0.75だけが光を反射し、残りの0.25が孔を含むので、0.75倍に減衰された色を持つ。2番目に近いオブジェクトは、(0.25*0.75)倍に減衰された色を持つ。この2番目のオブジェクトの表面の0.25だけが、1番目のオブジェクトにある孔を通って見ることができ、この表面の0.75だけが光を反射する。これは等しい透光性を持つオブジェクトに対し以下の表1に示される。
【表1】

【0006】
オブジェクトが異なる透光性である場合、位置は以下の表2に説明される。
【表2】

【0007】
各ピクセルフラグメントがピクセルを完全に覆っているとする。スクリーン上の所与のピクセルの最終的な色を決定するために、ピクセルフラグメントは、前から後ろの順序でレンダリングされ、これらフラグメント各々は、独立してテクスチャされ、シェードされる。各ピクセルフラグメントの色は、それの前にある透光性フラグメントの効果を考えて減衰され、その減衰量は、上記表2の例にならって計算される。
【0008】
表1及び表2から、減衰の合計(累積的減衰(cumulative attenuation))が1(unity)に近づいていることが明らかであり、実際、減衰の合計は、最終的なピクセルの色を得るために1でなければならない。所与のピクセルでの有限数の透光性表面に関し、不透明な背景、例えば空があるとする。1から減衰の合計を引いたものを掛けてその色を減衰させ(これにより減衰の最終的な合計を1にする)、この結果を最終的なピクセルの色に加える。
【0009】
典型的には、透光性は、0.0から1.0の範囲内にあると考えられることができる数値を割り当てられ、この範囲は、ハードウェア実行時に、0から256の整数にマッピングされるであろう。
【0010】
256という値は、8ビットが0から255の範囲内の値を満足させるとき、257個の値をエンコードするためには9ビットを必要とし、不便である。幾つかのシステムは、0.0から1.0の範囲を0から255の範囲にマッピングするが、これは、例えば0.25、0.5及び0.75のような値を表しにくくする。幾つかのシステムは、0.0 の範囲を0から256の範囲にマッピングし、次に値256を255として表す。
【0011】
慣例として、「透光性(translucency)」という用語は、透光性が上記範囲を越えて増大するので、不透明なオブジェクトを値0.0にマッピングし、透明なオブジェクトを値1.0にマッピングする。「不透明(opacity)」という用語は、不透明さがこの範囲を越えて増大するので、透光性のオブジェクトが値0.0にマッピングされ、不透明なオブジェクトが値1.0にマッピングされるときに適用される。「アルファ(alpha)」という用語は、それが透光性又は不透明と解釈されるかどうかに関係無く、その値を呼ぶのに使用される。
【0012】
リアルタイム民生用3Dグラフィックにおいて、3つの型式の透光性、すなわち、従来(conventional)型、テクスチャ(texture)型、及びスクリーンドア(screendoor)型がある。
【0013】
従来型の透光性は、全体のオブジェクト、メッシュ、又は面に適用され、典型的には、256の異なる透光性のレベルに対し8ビットで表される。従来型の透光性は、オブジェクトが幾つかの層又は透光性を介して見られるとき、累積的な減衰効果を有する。
【0014】
従来型の透光性の増大する量がオブジェクトのVRMLモデルに適用されると、予期されることは、オブジェクトが消えていくことである。実際には、リアルタイム3Dグラフィックモデルは交差する面を使用するため、予期外の暗い領域が、発生し得る。例えば、キャラクタの足を表すメッシュが、アニメーションにおいて接合箇所に現れるギャップ及びクラックを防ぐために、キャラクタの体を表すメッシュに入り込む。交差しているポリゴン(intersecting polygon)をフィットするようにトリミング(trimming)せず、ポリゴンの「スペアパーツ(spare parts)」が、通常の使用ではこれらが交差しているポリゴンの不透明な表面の後ろに隠れたままとなるという認識で、単に残される。しかしながら、透光性の技術が用いられると、予期以上の多くの透光性表面が存在するので交差部分が暗く見える。
【0015】
スクリーンドア型の透光性は、オブジェクトに、例えば、オブジェクトにある特定のピクセルを描かないことにより、文字どおりコショウを蒔いたように孔を散りばめた技術である。省略されるピクセルが多ければ多いほど、透光性がはっきりしてくる。例えば、0.5の透光性は、1ピクセルおきに描くことでシミュレートされるが、欠けているピクセルの規則的なパターンは、観察者に嫌というほど明らかになりうるので、避けなければならない。規則的なパターンを避けるこの必要性は、スクリーンドア型の透光性を使用することで達成されることができる透光性の控えめな(discreet)レベル数を制限する。
【0016】
細部のフェードレベルにおける透光性の典型的な適用に対し、従来型の透光性は、交差部分での予期外の暗い領域のために適切ではなく、スクリーンドア型の透光性が好ましい。
【0017】
Microsoft Corporationの米国特許番号第5864342号において、透光性であることができるグラフィカルオブジェクトをレンダリングする方法が、開示され、ここで、モデルの幾何学的図形の基本要素(geometric primitive)が、「チャンク(chunk)」に分割され、各チャンクのピクセルフラグメントが、生成され、次いで分解される。テクスチャマッピング及びフィルタリングは、テクスチャマッピングされた基本要素のアンチエイリアシングより先に行なわれるが、計算されるための属性の数の減少はない。
【0018】
同時係属中の国際出願WO99/06957において、三角形の画像基本要素からのピクセルが、内側フラグを供給され、この内側フラグが、各ピクセルに属性値を与えるために、この三角形の各頂点で記憶される、例えば色またはテクスチャといった、値からの寄与を決定するために用いられる、発明が開示されている。全ての三角形からのピクセル属性値が、各ピクセルの出力の色を一緒に決定する。
【0019】
本発明は、3Dグラフィックスシステムにおける透光性をハンドリングすることを可能にする技術の改良である。
【0020】
本発明に従い、画像平面に投影されるための複数の三角形の画像基本要素からの二次元ピクセル画像をレンダリングする画像処理方法が提供され、この方法において、該三角形の頂点で保持された値からの補間によって得られたピクセル単位の属性値が、該投影された三角形の基本要素内の各々のピクセル上にマッピングされ、ここで、各三角形に対し、
投影前に、該三角形は、該三角形の各々のエッジと平行の座標軸(s, t)と、該エッジ間の頂点と一致する原点と、を持つ各々の二次元座標システムを用いてパラメータ化され、
投影中に、一般化された補間関数が、該パラメータ化座標システムに関し、適用され、該二次元座標システムに関する該三角形内の位置でのパラメータ値を決定し、
投影後、該三角形内の位置での該決定されたパラメータ値は、各ピクセルでの属性値を与えるために、各頂点での1つ以上の属性について記憶された値からの寄与を決定し、
該三角形内の位置での該パラメータ値が、透光性値であることを特徴とする。
【0021】
更に、本発明に従って、画像平面に投影されるための複数の三角形の画像基本要素を規定するデータからの二次元ピクセル画像をレンダリングするように構成された処理装置が提供され、この装置は、該三角形の頂点で保持された値からピクセル単位の属性値を得るように配された補間手段と、該投影された三角形の基本要素内の各々のピクセル上に該ピクセル単位の属性値をマッピングするように配されたデータハンドリング手段と、
投影前に該三角形の基本要素を規定する該データを受け取るように結合され、該三角形の各々のエッジと平行の座標軸(s, t)と、該エッジ間の頂点と一致する原点とを持つ、各々の二次元座標システムを用いて、各三角形をパラメータ化するように配された計算手段と、
該二次元座標システムに関する三角形内の位置でのパラメータ値を得るように、各三角形に対し、及び、パラメータ化座標システムに関し、一般化された補間関数を適用するように動作可能な投影手段と、
各ピクセルでの属性値を与えるように、及び、全ての三角形からのピクセル単位の属性値を組み合わせてピクセル単位の色の値を供給するように、各頂点での1つ以上の属性について該記憶された値からの寄与を、該三角形内の位置での該決定されたパラメータ値から得るように構成されたピクセルシェーディング手段とを含み、
この装置は、ピクセルを透光性ピクセルとして特徴付け、透光性ピクセルが別のピクセルをオーバーレイ(overlay)する場合に、最先の透光性ピクセル(foremost translucent pixel)の色から得られたピクセル単位の色の値を供給する手段を更に有することを特徴とする。
【0022】
本発明の方法において、各三角形の内側にある多数のフラグが、ピクセルフラグメントが透光性であるか不透明であるかを示す主属性として供給され、これは、実際の透光性はテクスチャリング又はシェーディングステップが実行されるまでわからないため、フラグメントがピクセルフラグメントバッファに正確に挿入させられるようにする。
【0023】
本発明の方法によって利用される透光性の型式がスクリーンドア型の透光性である場合、ピクセルフラグメントの内側フラグの幾つかは、それがピクセルフラグメントバッファに提案されるときにマスクオフ(mask off)される。好ましくは、スクリーンドア型の透光性は、制限された数の透光性レベル(例えば、3ビットを使用して8レベル)にエンコードされ、これらレベルは、ルックアップテーブルを用いることにより、必要とされる数(例えば、32)のビットマスクに変換される。
【0024】
従来型の透光性の値は、主属性として利用可能にさせられることができたが、この主属性を保持するために、追加のビット数が必要とされた。テクスチャ型の透光性もスクリーンドア型の透光性も、これらはどちらも面単位ではなくピクセル単位で適用されるので、主属性であることはできない。本発明の方法における、従来型透光性、テクスチャ透光性、及び、例えば8レベルのスクリーンドア型の透光性では、主属性毎に4つの追加のビットとピクセルフラグメント毎に4つの追加ビットのみを供給する必要があるので、ピクセルフラグメントバッファは、依然として比較的安価に提供されることができる。
【0025】
本発明の方法によるレンダリング処理中に、ピクセルフラグメントは、オブジェクトの前面からオブジェクトの背面へレンダリングされる。レンダリングされた透光性ピクセルフラグメントのアルファ値は、それらの合計が1を超えるまで累積される。そして、補正が、合計されたアルファが1に等しくなるように、最後のピクセルフラグメントの色とアルファの関数として行われる。
【0026】
各透光性フラグメントがレンダリングされると、その色は、例えば従来型の透光性又はテクスチャ型の透光性に関する、幾つかのアルファ値の積に比例して減衰させられる。
【0027】
本発明は、添付する図を参照し、例としてのみ、ここに説明される。
【0028】
図1は、座標s及びtを持つ三角形の内側の点pを備える三角形のビュー空間平面におけるパラメータ化を示している。以下に規定される(s, t)は、重心の計算に用いられる形式(1-s-t, s, t)の重心座標と同様であるが、明らかにされるように、本発明を具体化する属性補間技法でのこれらの使用は、多くの点で異なることに注意されたい。s軸が、三角形の頂点V.0及びV.1を通って伸び、t軸が、頂点V.0及びV.2を通って伸び、原点が、頂点V.0にある。頂点V.1は、(s, t)=(1, 0)であり、頂点V.2は、(s, t)=(0, 1)である。以下に言及されるとき、エッジ0は、頂点V.0から頂点V.1へ伸び、エッジ1は、頂点V.1から頂点V.2へ伸び、エッジ2は、頂点V.2から頂点V.0へ伸びるものとする。
【0029】
透視補正(perspective-correct)値(s, t)とすると、ある点Pで、属性の透視補正値Q[P]は、
Q[(s, t)]=Q[0]=s*(Q[1]-Q[0])+t*(Q[2]-Q[0])
から計算することができる。
【0030】
テクスチャが透視補正であることは明らかに有利である。非透視補正シェーディング(non-perspective correct shading)も許容できるが、より良好なライティングモデル(lighting model)の出現により、透視補正の欠点(lack)が、特にハイライトに関し目立つようになった。透視補正は、s及びtの代わりにs/z、t/z、及び1/zを補間することにより達成されることができる。1/zを補間することは、隠面消去透視補正(hidden surface removal perspective correct)も行い、これは単にzを補間する場合では異なる。
【0031】
(s/z, t/z)及び1/zのスタート及びデルタ値は、スクリーン上の任意の点での三角形のビュー空間頂点から計算することが可能である。以下の3つのケースは、ビュー空間における三角形の平面の向きに合うように最適にされる。

ケースC:
Kc=OSx*OTy-OTx*OSy
s/z=[+OTy*(xs/d-Ox/z)-OTx*(ys/d-Oy/z]/Kc
t/z=[-OSy*(xs/d-Ox/z)+OSx*(ys/d-Oy/z)]/Kc

ケースB:
Kb=OTx*Osx-OSx*Otz
s/z=[-OTz*(xs/d-Ox/z)-OTx*(1-Oz/z]/Kb
t/z=[+OSz*(xs/d-Ox/z)+OSx*(1-Oz/z)]/Kb

ケースA:
Ka=OTz*OSy-OSz*OTy
s/z=[-OTy*(1-Oz/z)-OTz*(ys/d-Oy/z]/Ka
t/z=[+OSy*(1-Oz/z)+OSx*(ys/d-Oy/z)]/Ka

s及びtを得るために1/zでs/zおよびt/zを除算するコストは、単一のテクスチャ・アドレスの透視補正に匹敵し、1つの三角形あたり2つ以上のテクスチャを用いることは、1/zによる余計な除算を必要としない透視補正のままであることに注意されたい。
【0032】
(s, t)を用いることは、I-O検定(inside-outside testing)を簡潔にする。ビュー空間の三角形の頂点(O, S, T)に基づく座標(s, t)を仮定すると、t座標の符号(sign)は、三角形の平面を、ベクトルOSと一致する線に沿って2つに分割する。同様に、s座標の符号は、この平面を、ベクトルOTの一方の側に分割する。これは、前記3つのエッジの内2つに対するI-O検定を供給する。
【0033】
頂点SとTとの間にある第3のエッジは、等式s+t==1により規定され、それ故、I-O検定は、この第3のエッジ上で実行することができる。s及びtが直接利用可能でないのに対し、s/z, t/z及び1/zは既に利用可能であり、1/zの記号が、観察者(viewer)の前の点に対し一定(負)であるので、s及びtの極性に基づく検定は、s/z及びt/zを使用することができる。これを使用して、第3の検定が、s/z+t/z==1/zと書き直され、このための変数は既に利用可能である。
【0034】
クリッピングに関して、本アーキテクチャは直接的なやり方で動作し、(s/z, t/z, 1/z)がI-O検定に使用されるときには、特別なクリッピングアルゴリズムを必要としない。クリッピングされた三角形を生成する必要がなく、関連する属性を計算する必要もない。これは、スクリーン空間の頂点に基づくアーキテクチャよりも非常に有利である。
【0035】
画像は、小さいエリアのスクリーン(タイル)を逐次的且つ独立的にレンダリングすることによってレンダリングされ、その例が、図2に示されている。後続する実施例において、タイルは8×8ピクセルの大きさを持っている。タイルをレンダリングするために、初期判定が、どの三角形がタイルにインパクト(impact)しているかに関して行われる。図2を参照すると、三角形は、それが、レンダリングされるタイルに対しいくらかの可視的な効果を有する場合、すなわち、この三角形がタイルと重なっている場合(TR.1)、または、重なっていなくても、このレンダリングされるタイルに対しいくらかの可視的な効果を有するのに十分なほど接近している場合(TR.2)に、タイルにインパクトする。タイルフットプリントFPは、三角形が、それが可視的な効果を有する場合に重ならなければならない領域である。アンチエイリアシングアルゴリズムの選択が、このタイルフットプリントを決定するが、満足のいく結果は、タイルのエッジから1/2ピクセル外側に延びるフットプリントを用いて得られ、8×8ピクセルのタイルでは9×9ピクセルのタイルフットプリントである。
【0036】
制御の特徴として、いわゆる「マジック」ポイントが特定される。このマジックポイントは、ピクセルの中心と一致し、逐次増加的に補間されるパラメータの絶対的計算に使用され、三角形の境界を示すボックスの内側及びオンスクリーン(on-screen)であることが必要とされる。このマジックポイントは、三角形タイルセグメンテーション手順(triangle to tile segmentation procedure)の一部として決定される。上述されるように、三角形はクリップされる必要が無いので、このマジックポイントの計算は、全体的にオンスクリーンであろうと、部分的にオンスクリーンであろうと、全ての三角形に対し同じである。頂点での値は、全ての三角形について変化しないままである。つまり、どんなときにも新しい頂点又は新しい三角形を生成することを必要としない。
【0037】
オンスクリーンの各三角形は、面識別子として整数値を割り当てられる。三角形がタイルにインパクトする場合、この面識別子は、このタイルにインパクトする全ての三角形の面識別子を保持するタイルフラグメントスタック(tile fragment stack)で、スタックの最初に移される(push)。このタイルフラグメントスタックが読み出されると、この面識別子が、三角形の属性にアクセスするために使用される。各タイルフラグメントスタックは、タイルサイズのスクリーンエリア(tile sized screen area)に対応し、集合的に、タイルフラグメントスタックは、タイルフラグメントバッファを有する。各タイルフラグメントスタックは、タイルフラグメントバッファ内に(x, y) アドレスを有し、これは、必要に応じてピクセルアドレスを生成するために使用される。タイルフラグメントは、面識別子及びスタック(x, y)アドレスで構成される。タイルフラグメントスタックは、概念的にはタイルフラグメントのスタックであるが、実際には、スタック(x, y)アドレスに関連する面識別子のスタックである。
【0038】
タイルは、独立して、及び任意の順序で、レンダリングされることができるが、左上から始まり、偶数番号の列を左から右へ走査し、奇数番号の列を右から左へ走査し、列の組を上から下へ走査する、ジグザグのラスタ走査順序でタイルフラグメントを読み取ることによる、タイル間のコヒーレンス(coherence)を利用することが好ましい。リアルタイムのインプリメンテーションでは、十分な数のタイルがレンダリングされると、それらは、まだレンダリングされていないピクセルを読み取ろうとする試みを気にすることなく、読み取られ、ディスプレイに送られることができる。これは、レンダリングされたタイルを保持することをFIFOバッファに要求するが、フルスクリーンフレームバッファ(full screen frame buffer)のコストを回避する。
【0039】
本発明を具現化する画像処理装置が、図3に示され、これは、主属性および予備属性が別々にハンドリングされる2段階装置を有する。各段階は、各々の属性バッファ14,16に結合された(各々ローカルキャッシュ10A,12Aを有する)処理器10,12を含み、主属性処理器10は、画像を構成する三角形ポリゴンの、インデックスを付された面のセットの形態で、データを受け取るための入力を有し、主属性は、三角形の頂点の3D(ビュー空間)座標を含む。図5を参照して以下に説明されるように、導入ルーチン(introductory routine)が、幾つかの基本計算を実行するために、かつ、主属性ストア14又は(破線で示されるように)予備属性ストア16のうちの適切な方への供給のために三角形の属性を分離するために、処理器10への供給前に、又は、その中で、のいずれかで、入力データに適用される。
【0040】
処理された主属性データは、予備段階への出力のために、データ及び深さバッファ18に送られる。この予備段階は、フレームバッファに供給し、そこからディスプレイへ供給するのに適した、出力ピクセル値を生成するために、これの一般化された補間を行い、異なる予備属性の各々(例えば、マップストア20からのテクスチャマッピング、カラーリング、表面法線)に対しそれを適用する。
【0041】
主属性バッファ14は、オフチップ(off-chip)であり、各三角形がマジックポイントで評価されたようにレンダリングされるために、アンチエイリアシング及びzバッファリング(z-buffering)に使用される、増加的に補間された属性を保持する。主属性キャッシュ10Aは、オンチップ(on-chip)であり、現在、タイル間で保存及び復元されながらレンダリングされている各三角形の、増加的に補間された属性を保持する。三角形タイル変換手順(triangle to tile conversion procedure)は、何個のタイルが各三角形によってインパクトされるかを特定するので、各三角形についての基準カウントを維持することが可能である。この基準カウントは、三角形がタイルの一部として処理される毎に減少していく。基準カウントが0になると、三角形の属性はもはや必要とされず、キャッシュ10Aから一気に消去される(flush)ことができる。タイルはラスタ走査順序で読み出されるので、高さのある三角形は、フレームを処理するために要する時間のうちのかなり大部分で、キャッシュに残存することになる。ある特定の状況では、それの基準カウントが0でなくても、三角形の属性をキャッシュから一気に消去することが必要とされ得る。増加的に補間された属性の現在の値をオフチップ属性バッファに戻して書き込むことは好ましくないので、属性がキャッシュにより次に必要とされるときに、それらがマジックポイントでの値を鑑みて最後に補間されたときの値を復元するためのメカニズムが、提供される。
【0042】
本アーキテクチャにおいて、マジックポイントでの三角形のパラメータは、値がタイル内のインパクトされた各ピクセルについて生成されるまで、隣接ピクセルへ、そこから別の隣接ピクセルへ、といったように、増加的に補間されることができる。そして、これら補間された値は、三角形によってインパクトされた次のタイルでの使用に備えた主属性キャッシュに記憶される。その後、主属性キャッシュから復元された、前に増加的に補間された値は、現在のタイルの内側のピクセルで終了する経路に沿って増加的に補間され、そして、増加的な補間は、現在のタイル内のインパクトされたピクセルのために続けられる。ジグザグ走査シーケンスは、三角形によってインパクトされた現在のタイルが、前のそのようなタイルに対し、しばしば横に隣接し、常に近くにあるので、それ故にこの経路に沿って移動するのに費やされる時間が最小となる。増加的な補間は、x及びyにおいて1つのピクセルステップを使用する。簡単なシフトは、2つのピクセルの累乗(power)でのステップを許容し、タイルの大きさに対応するステップを使用することは、タイルにおける第1ピクセルを得るために要する時間を最小にするタイル探索モード(tile seek mode)を容易にする。これが、補間された属性値を、それらが主属性キャッシュ10Aから早期に一気に消去された後に回復するために使用されるメカニズムである。
【0043】
値が、各ピクセルで増加的に補間される場合、それらは、いわゆるピクセルフラグメントを規定する。三角形によってインパクトされたピクセルフラグメントは、ピクセルフラグメントバッファに送られ、受け入れられるか(及びこれにより最終画像に寄与するか)、(それらが塞がっているので)拒絶されるか、のいずれかである。三角形にインパクトしていないピクセルフラグメントは、拒絶される。ピクセルフラグメントが受け入れられると、増加的に補間された値s/z及びt/zが、s及びtを得るために1/zで除算され、これらは、その次に、ピクセルフラグメントバッファに記憶される。1/zによる除算は、各ピクセルフラグメントが増加的な補間により作り出されながら、行われなければならない。
【0044】
s及びtを得るためのこの除算プロセスは、s/z, t/z及び1/zの整数値を浮動小数点値に変換するための優先待ち行列(priority encoders)で始まる。次に、1/zの仮数の高位のビットは、z及びzの粗い値を得るために、小さな(例えば、512ワードの)ルックアップテーブルに与えられる。このテーブルにより供給されるzの値は、1/zの逆数のテーラー級数展開の第1項である。このテーブルにより供給されるzの値は、テーラー級数展開の第2項を得るために、1/zの仮数の低位のビットにより乗算される。そして、これら第1及び第2項は、15分数ビットにzの仮数を与えるために加算される。そして、zの仮数は、s及びtの仮数を与えるために、s/z及びt/zの仮数により乗算される。そして、s/z, t/z、及び1/zの指数(exponent)が、s及びtの指数を得るために組み合わされる。最後に、s及びtの整数値が、それらの各々のべき乗に比例してこれらの仮数を上又は下にシフトすることで得られる。
【0045】
(zではなく)1/zの指数(exponent)及び仮数(mantissa)は、ピクセルフラグメントの前から後ろへの順序を決定するためにピクセルフラグメントバッファ内で使用される逆の深さ値を作り出すために、一緒にパックされる。透視の効果は、浮動小数点の仮数の使用により生ずる深さの解(depth resolution)の変化によって再現されるので、この表示は、通常の整数表示よりも好ましい。
【0046】
図3をさらに参照すると、予備属性バッファ16は、オフチップであり、隠面除去後まで要求されない特性、すなわち、テクスチャリング及びシェーディングのために要求される属性、例えば、ストア20用のテクスチャマップアドレスを保持する。予備属性キャッシュ12Aは、オンチップであり、現在テクスチャリング及びシェーディングされている各三角形についての属性を保持する。タイルベースのレンダリング(tile based rendering)は、ピクセルフラグメントバッファから読み出された連続するピクセルフラグメントが異なる三角形に適用されることを意味するので、キャッシュが不可欠(vital)である。
【0047】
出力画像における所望の粒度(granularity)を達成するために、各ピクセルは、点ではなくエリアとして考えられる。多重のI-O検定が、ピクセルエリアの何分のいくつが三角形によって覆われているかを決定するために、ピクセルの中心の近くの異なるサンプリングポイントで実行される。これら多重のI-O検定の組み合わせられた結果は、内側ビットベクトルと呼ばれ、このベクトルにおけるビットNは、N番目のサンプリングポイントでのI-O検定の結果である。本アーキテクチャは、1ピクセルあたり32個のサンプリングポイントを使用している。1ピクセルあたり8個のサンプリングポイントの基本パターンが、ピクセルフットプリント(pixel footprint)を覆う32個のポイントを与えるために、4つの対角線方向の各々に移動させられる。図4は、32個のサンプリングポイントのパターンの図式表示である。
【0048】
本アーキテクチャは、ピクセルの中心(マジックポイント)でのs/z, t/z及び1/zの値を得るために、増加的な補間を使用する。この増加的な補間のデルタから得られたオフセット値を、ピクセルの中心でのs/z, t/z及び1/zの現在の値に加算することは、各サンプリングポイントでのs/z, t/z及び1/zの値を供給する。これらの値は、各サンプリングポイントでのI-Oブーリアン(I-O boolean)を与えるために組み合わされる。結果として生じるブーリアンは、内側ビットベクトルを与えるために連結される。なお、この内側ビットベクトルの増加的な補間は、タイル間で保存及び復元されるために、追加の値を必要としない。サンプリングポイントでの値は、32個のサンプリングポイントの位置の知識を鑑みて、ピクセルの中心での値、及び、関連づけられた三角形(タイル)毎の増加的な補間のデルタから得られることができる。
【0049】
隠面除去での使用のために、ピクセルフラグメントバッファは、二重にバッファリングされる。一方のバッファは、現在のタイルにインパクトし、かつ、最終画像への可視的な寄与をもたらすことが予期される、それらすべてのピクセルフラグメントをアセンブルする。他方のバッファは、前のタイルのためにアセンブルされたピクセルフラグメントを保持し、これらを、テクスチャリング及びシェーディングされるために供給する。一般的には、ピクセルフラグメントの幾つかは拒絶されるので、ピクセルフラグメントバッファに提示されるピクセルフラグメントは、それから読み取られるよりも多い。
【0050】
ピクセルフラグメントバッファは、タイルにおける各ピクセルに対し1スタックの、2Dアレイのピクセルフラグメントスタックとして配置され、各スタックは、多数のピクセルフラグメントを保持する。これらピクセルフラグメントは、スタックにおける連続するフラグメントが、視野の原点(view origin)から単調に増加する深さを有するように、並べ替えられる。ピクセルフラグメントがスタックへ入ることを提案されると、それの逆の深さ(1/z)が、スタックの各フラグメントの逆の深さと比較されなければならず、これはスループットを維持することと並列に行われなければならない。多重の深さの比較は、スタックのコンテンツに、比較器のアレイにロードされることを、かつ、スタックに、フラグメントがそれらの新しい位置にある状態で書き換えられることを、要求し、おそらく、提案されたフラグメントが入ることを認め、スタックにおける以前のフラグメントの1つを拒絶するだろう。この動作は、スタックがオフチップメモリへの如何なるアクセスも必要とせずに全体的にオンチップでインプリメントされることができるように、タイルベースのレンダリングを要求する。
【0051】
上記説明は、上述した本出願人による同時係属中の国際特許出願WO99/06957に関する。その方法及び装置において、ピクセルフラグメントは、その内側フラグの全て又は一部が設定されているかどうかに依存して、言い換えると、フラグメントが三角形によって完全に又は部分的に覆われているかどうかに依存して、完全又は部分的であることができる。完全なフラグメントは不透明である。
【0052】
本発明において、透光性ピクセルフラグメントは、透光性フラグメントの背後のフラグメントが減衰された形式で見られることができるので、部分的なフラグメントとして扱われる。
【0053】
透光性ピクセルフラグメントは、ピクセルフラグメントバッファに前から後ろへと挿入される。つまり、レンダリングされたピクセルフラグメントのアルファ値は、このアルファ値の合計が1(unity)を超えるまで累積される。そして、補正が、合計されたアルファが1に等しくなるように、ピクセルフラグメントの色及びアルファの関数として行われる。
【0054】
この合計されたアルファが1を超えた後、超過アルファの量が、計算され、最後のピクセルフラグメントのアルファで除算された超過アルファに等しい分数を、最後のピクセルフラグメントの色成分に乗算するために使用される。そして、この色補正は、累積された色から減算される。小さなルックアップテーブルは、この除算がハードウェアにおいて迅速に実行されるようにする。
【0055】
色補正を減算することは、必然的に簡単で高速の乗算器における切捨て効果(truncation effect)が、合計されたアルファを1よりも僅かに大きくする傾向があるので、この合計されたアルファを1に等しくさせる最後のフラグメントの色の何分のいくつを直接計算するよりも好ましい。直接計算法における切捨て誤差は、合計されたアルファを1よりも僅かに小さくする可能性があり、合計されたアルファを1よりも大きく又は等しくさせるようにすることを試みる任意のアルゴリズムが、不必要にフラグメントを処理し続けるであろう。
【0056】
各透光性フラグメントがレンダリングされるとき、((s, t)座標の関数としてピクセルの中心で計算される)その色は、数個のアルファ値の積に比例して減衰させられる。1つのそのようなアルファ値は、従来の透光性値であり、他方は、テクスチャ透光性値である。更なるアルファは、累積的な減衰から得られる値、すなわち、現在のフラグメントの前にある(従ってこのフラグメントより前にレンダリングされた)フラグメントの不透明度の積である。
【0057】
(典型的にはガウス)フィルタ関数に従って、内側フラグを計り、合計することによって得られる、さらなる別のアルファがある。ピクセルが、2つの部分的に覆っている透光性ピクセルフラグメント、及び、1つの完全に覆っている不透明なフラグメントのみを含む場合に、何が起こるかを考える。ここで、該2つの透光性フラグメントは、同じオブジェクトの一部であり、共通のエッジを共有し、この問題を明らかにするため、両方のフラグメントは同じ従来の透光性を持ち、一緒にピクセル全体を覆う。2つの部分的に覆っている透光性フラグメントによる累積的減衰は、このピクセルを覆う単一の透光性フラグメントによる累積的減衰と明らかに等しい。残念なことに、暗黙的に述べられたこの累積的減衰アルゴリズムは、各透光性フラグメントがピクセル全体を覆い、内側フラグから得られるアルファを含むことが何も助けにはならないと仮定する。
【0058】
したがって、ピクセルフラグメントバッファは、それらの間でピクセルの全て又は一部を覆い、かつ、連続するフラグメントを共に減衰させるように働く、部分的な透光性フラグメントの集合を見分ける。この集合における各フラグメントのアルファを累積することによって、このアルファは、この集合に対し累積的減衰の寄与として、この集合の後ろのフラグメントに適用される。
【0059】
このような見分けは、以下のようにして達成される。フラグメントが、レンダリングされるために、ピクセルフラグメントスタックから読み出されると仮定する。集合は、透光性の部分的に覆うピクセルフラグメントで始まり、次のフラグメントが不透明又は完全に覆うものの場合、または、集合における全てのフラグメントの内側フラグが、共にビットワイズORされる(bitwise ORed)ときにピクセルを覆う場合に、終了する。次のフラグメントが不透明又は完全に覆うものの場合、この集合におけるフラグメントの内側フラグがピクセルを覆わないことと、これにより、累積的減衰がエッジにそれほどぴったり沿わなくなることと、が考えられる。
【0060】
VRML、そして時にDirect 3Dに関しては、どの面がメッシュを構成するかという知識が、明確である。メッシュが、(任意の所与のピクセルに存在するメッシュ識別子の番号を効果的にエンコードするためにハッシュ化されることができる)メッシュ識別子コードを割り当てられている場合、メッシュ識別子の変化が、集合の最後を規定するために使用されることができる。これは、該集合がピクセルを覆わない場合を通常とらえる。それは、オブジェクトがバックフェースカリング(back face culled)されず、ピクセルがこのオブジェクトの前面及び背面の一部を含み、これら2つの面を分離するものがなく、オブジェクト全体が1つのメッシュから構築され、前方に面しているピクセルフラグメントがピクセルを覆わない、たとえば、透光性の球体の場合に、失敗する。決定(fix)が、前方又は後方に面している三角形を示すために、メッシュ識別子にビットを追加することによって、得られることができる。
【0061】
提案されたすべてのピクセルフラグメントが処理された後、各スタックが、最も近くにあるピクセルフラグメントに始まり、前から後ろの順に読み出される。各ピクセルフラグメントの可視的な被写域(visible coverage)、すなわち、各フラグメントの可視的な(塞がれていない)部分の被写域を決定するために、累算器が、現在のフラグメントの累積的被写域、前に読み出したフラグメントの内側フラグから形成されたビットベクトルのビットワイズORを維持する。そして、現在のフラグメントの可視的な被写域は、累積的被写域の補数(complement)によって、その内側フラグから形成されたビットベクトルをビットワイズANDすることにより、得られる。この可視的な被写域が得られた後、累算器は次のフラグメントに備えて更新される。結局、累算器は、全てのもののビットベクトルを含むことになる。全てのフラグメントが読み出される前に、累積的被写域が全てのものとなる場合、スタック中の任意の残存するフラグメントは、それらが完全に塞がれるので、不可視として廃棄される。
【0062】
図5から図8は、初期受信及び準備からピクセル単位の値の出力までのデータのハンドリングを説明する補足的なフローチャートである。
【0063】
概要のデータ準備ルーチンが、図5で説明され、501において、適当なソース(例えば、インターネットを介して得られたVRMLデータファイル)からデータを得ることで始まる。このデータは、表面の法線、三角形の頂点での透光性値、等を特定する予備データとともに、三角形の頂点の座標をリストにしたコンパクトなデータファイルを有する、インデックスを付された面のセットの形式であることができる。502において、このコンパクトなデータファイルは展開され、透光性データが、503において抽出及び記憶されている。502の展開されたデータから、各三角形のビュー空間頂点データが(504で)読み出され、この三角形は、その次に、505で二次元スクリーン空間に投影される。
【0064】
タイルベースのレンダリングが使用される場合、走査変換が、各三角形を一続きのタイルに変換するために、506で行われる。余分なデータ、例えばスクリーンのエッジでのピクセルカーネル (pixel kernel)のフットプリントマージンで現れるのみの三角形のものが、507で除去操作により取り除かれる。次に、508において、識別子が各三角形に割り当てられ、三角形の1つ以上のフラグメント化された部分を搬送するタイルが、(509において)タイルバッファに挿入される。
【0065】
三角形に対する識別子の割り当てから続いて、マジックポイントが510において選択され、このポイントに対し、s/z、t/z及び1/zが、512での対応する増加的な値(デルタ)の計算の前に、(511において)計算される。これら計算された値は主属性を有し、導入手順の最終段階513は、これらを主属性ストア(図3の14)にロードすることである。
【0066】
これら主属性のハンドリングは図6及び図7に示されている。図6の上部に示されるように、ステップ513によりロードされた主属性バッファ14に加え、キャッシュメモリ10Aが(509においてロードされた)三角形フラグメントを含むタイルに対するバッファ24と共に供給される。このキャッシュ10Aは、外部バッファ14、24からロードされた高速のローカル(オンチップ)メモリを供給し、ピクセルフラグメントバッファ26(図7)に属性値(ポリゴン単位のアルファ値、メッシュ識別子フラグ、及び前方/後方に面するフラグ)も供給する。
【0067】
最初の動作601は、タイルバッファ24からキャッシュ10Aへのフラグメントの読み出しである。次に、このキャッシュから、s/z、t/z、及び1/zの値が、602において、各サンプリングポイントに対し計算される。603において、s/z、t/z、及び1/zの値が補間され、その結果がキャッシュに戻される。
【0068】
I-O検定が604において実行される。キャッシュ10Aは、スクリーンドアの透光性が適用されている場合を、I-O検定段階に示し、(フラグメント又はピクセルが不透明として単に扱われることができないことを示すために)透光性フラグをI-O検定段階に供給する。
【0069】
補間中に、I-O検定は、604において、各サンプルポイントに対し、これらが三角形の境界の内側にあるか外側にあるかを決定するために実行され、これに続いて、このポイントでの1/zの値が、ピクセルへの三角形の寄与が、考慮されるか、拒絶されるか(606)どうかを決定するために、他の三角形からの対応して位置するサンプルポイントの値と比較される(605)。この1/zの比較が成功した場合、ピクセルフラグメントは、607において、上述のように、完全又は部分的として分類される。
【0070】
(本発明において完全であるが透光性のフラグメントを意味する)部分的なピクセルフラグメントの寄与は、608においてスタックに加えられる。このスタックが既に完全である場合、608でのこのスタックに空きを作るという動作は、これがサンプルポイントを覆われないままにする場合に、整合性を維持するために、新しい最後のフラグメントのタイルに、問題になっている該または各々のサンプルポイントを転送する補償609を必要とする、オーバーフロー(一般に最後尾のフラグメントの除去)という結果になる。オーバーフローの問題が解決されると、最新のフラグメントは、(エントリが深さで並べ替えられて)適切な位置でスタックに挿入され(610)、その値は、ピクセルフラグメントバッファ(図7)に送られる。607に続き、スタックがまだ完全でないことが明らかになった場合には、簡単な空きを作る動作が、新しいフラグメントよりも深さのあるエントリを1つだけ下に移動させるために実行される。
【0071】
完全なピクセルフラグメントの寄与が、611においてスタックに加えられる。これは、ピクセルを横切るポリゴン交差部分(polygon intersection)が存在する場所で適用され、不透明ピクセルとして扱われるが、最終的なピクセルの色への各ポリゴンの寄与は、このピクセル内のサンプルポイントを見ることによって決定される。典型的には図4に見られるように32個のポイントが使用される。612において、各サンプルポイントにおける1/zの比較が、ポリゴンのうちのどれがこのポイントにおいて最先(foremost)であるかを特定し、ステップ613において、可視的な被写域の修正、最終的なピクセルの色が、最先のサンプルポイント値からのみで決定され、ピクセルフラグメントバッファに供給するためにステップ610に加えられる。サンプルでの1/zについて記憶された値は、614において更新される。
【0072】
I-O検定から先の上記動作が処理される一方で、603からのデータへの補間は、615における優先エンコーディングに始まり、616での1/zの逆数の計算(すなわち、zを復元すること)が後に続く、更なる動作を受ける。zの値を用いて、s及びtの値が、(s/z)*z及び(t/z)*zを計算することによって617において回復され、s及びtの整数値が、618において決定(fix)される。これらの値は、ステップ610において加算され、次に図7の頂上部に示されるピクセルフラグメントバッファ26においてフラグメントを用いて記憶される。
【0073】
このフラグメントバッファから、ピクセルフラグメントの各スタックのアルファ値が、701でプールされ、フラグメントデータが、702の予備ハンドリングセクションにおいて、キャッシュメモリ12Aに読み出される。703において、三角形のフラグメントによるタイルの可視的な被写域の広さが、アルファ値から計算され、704でフィルタに与えられ、値αが得られ、705においてフラグメントスタックを更新するために送られ、次に、701を介しステップ702に進む。706において、αは、予備属性ハンドリング段階におけるピクセルシェーディング段階(図8)に出力される。
【0074】
ガウスフィルタ関数の適用により累積されたアルファ値が、許容される1の値を超える可能性が、上述された。更新された累積された被写域の段階705は、ステップ704から受け取られた任意のアルファ値を1にクランプ(clamp)するために配されている。
【0075】
図8の予備属性ハンドリング段階は、図4及び図5の主属性段階と同様に、この主属性段階からの準備されたタイルデータと、インデックスを付された面のセット(face set)の展開に関し503で抽出された透光性値と、を受け取るために供給されたオンチップのキャッシュ12Aが、単一のチップに、供給されることを意図する。示されるように、各々の異なる属性の型式は、並列に扱われ、801において各三角形の頂点に対するテクスチャ空間座標(U, V)により特定されるテクスチャ値で始まる。これらは、パラメータ化された座標システムを使用し、(s, t)において補間され(802)、出力が、テクスチャバッファ(マップストア)20と結合されるビットマップテクスチャ処理段階(bitmap texture processing stage)803に送られる。処理器803からの出力は、ピクセルシェーダー段階(pixel shader stage)804に送られる。示されるように、805において特定された頂点毎の法線が、806において同様に補間され、同じく、ピクセルの色も、807において三角形の頂点で特定され、808において補間される。これら色は、重なり合う透光性フラグメントが存在するとき、シェーダ804により(例えば、上書きすることによって)変化させられる(ステップ613参照)。一般的なケースの他の属性が、811における三角形毎の属性とともに、809において示される(これらも、810において(s, t)で評価される)。処理器803と同様に、806、808、810及び811の出力は、前に計算されたα値とともに、シェーダ804への入力を供給する。
【0076】
このシェーダの出力は、812でのシェードされたピクセルフラグメントのために累算器へ行き、813でのピクセルのガンマ補正へと続く。このシェードされたピクセルは、814において出力される。ガンマ補正は、アンチエイリアシングのためのガンマ補正が低い強度(intensity)で最もクリティカルとなるので、ワークステーションにおいて普通に行われるように、ディスプレイドライバに委ねられることはない。色成分毎に通常の8ビットに切り捨て、その次にガンマ補正を適用することは、アンチエイリアシングされたエッジに沿って顕著なでこぼこを与えることが分かっているのに対し、切り捨てる前にガンマ補正を実行することは、円滑なエッジを復元する。
【0077】
上述の(s, t)技術は、深さバッファエントリの大きさを減少させ、さらに透光性を扱うことを許可する。この(s, t)技術は、従来の透光性又はテクスチャの透光性にも応用可能である。
【0078】
上述されたように、32個のサンプリングポイントにおける内側フラグの計算は、32個の1/zの値を、交差部分のアンチエイリアシングのために利用可能にさせる。I-O検定のためのs/z、t/zの使用に要求される数値精度及び長いワード長は、ピクセルの中心で(s, t)を計算するときには許容されるが、並列するハードウェアを用いて32回のI-O検定を行うために使用されるときにはかなりの負担を課す。
【0079】
解決法は、簡単なスクリーン空間エッジ方程式(simple screen space edge equation)及びスクリーン空間マンハッタンエッジ距離(screen space Manhattan edge distance)を使用することであり、それらは、より短いワード長を使用することができ、少ないハードウェアを必要とすることができ、スクリーン空間エッジ距離が、有限の数値精度によるギャップ又はクラックを避けるように計算されることができるという利益を有する。
【0080】
この解決法に対する難点(objection)は、セットアップがビュー空間座標をスクリーン空間内に透視(perspect)しなければならないことである。図9Aに示されるように、三角形の全ての3頂点V0、V1、V2が観察者(viewer)Pの前にあるとき、又は、全てが観察者の背後にあり(図示せず)、カリングされているときには、何ら問題は起きない。
【0081】
しかしながら、三角形が図9Bに示されるように、Z=0平面にまたがる場合に問題が生じる。観察者の背後の頂点V1は、不適切に投影し、これが不適切なエッジの方程式を導くことになる。
【0082】
1つの解決法は、従来のクリッピング(clipping)であるが、頂点の反射(reflection)という公知の技術を応用することがより効果的でありうる。これは、頂点V1が、頂点V0に対し、両方の頂点を通る線に沿って反射されることを示す図9Bに示され、V1'=V1-(V1-V0)である。V1'は、以前と同じ線上にあるが、今は観察者Pの前にある。V0及びV1'は、適正なスクリーン空間エッジ方程式を構成するために、スクリーン空間内に正確に投影されることが可能である。
【0083】
公知の頂点反射技術が、共有された三角形のエッジに適用される場合、同じ頂点が、エッジを共有する両方の面のために修正されるので、エッジは、ギャップ及びクラックが無いままとなる。
【0084】
頂点がメッシュの内側で共有される場合、観察者の背後にある頂点は、二度、つまり、頂点がその交差部分に位置する、2つのエッジの各々に沿って一度、反射されるであろうから、頂点の反射は、追加の頂点を作り出すであろう。ビュー空間の頂点がs/z、t/z、1/zを計算するのに使用される本発明による方法において、共有される頂点の透視投影技術の利点は、ビュー及びスクリーン空間の頂点の両方を搬送(transport)する必要によってオフセットされ、加えて、観察者の背後にある頂点は二度透視されなければならない。従って、それは、ビュー空間の頂点のみが搬送される場合に有益となり、透視投影は各三角形の各頂点に対し実行される。
【0085】
本発明の開示を読むことから、他の改良が当業者には明らかとなるであろう。このような改良は、画像処理機器及び装置、及びこれらの構成部品の、設計、製造及び使用において既に公知である他の特徴を含むことができ、ここに既に説明した特徴の代わりに又はそれに加えて使用されることができる。
【図面の簡単な説明】
【0086】
【図1】図1は、三角形の画像基本要素のパラメータ化を説明している。
【図2】図2は、ピクセルフィルタカーネル(kernel)にインパクトする三角形の画像基本要素を表す。
【図3】図3は、本発明を具現化する画像処理システムのブロック模式図である。
【図4】図4は、半ピクセル間隔グリッド上のサンプルポイントのアレイを表す。
【図5】図5は、基本要素データ取得のフローチャート表示及び図3のシステムに供給するデータを生成する事前処理ルーチンである。
【図6】図6は、図3のシステムにおける主属性ハンドリング段階の動作を概略的に説明する。
【図7】図7は、図3のシステムにおける主属性ハンドリング段階のピクセルフラグメントサブシステムの動作を概略的に説明する。
【図8】図8は、図3のシステムにおける予備属性ハンドリング段階の動作を概略的に説明する。
【図9A】図9Aは、頂点反射の技術を説明する。
【図9B】図9Bは、頂点反射の技術を説明する。
【符号の説明】
【0087】
10,12 処理器
14 主属性
10A 主属性キャッシュ
12A 予備属性キャッシュ
16 予備属性
18 バッファ
20 テクスチャバッファ

【特許請求の範囲】
【請求項1】
画像平面に投影されるための複数の三角形の画像基本要素からの二次元ピクセル画像をレンダリングする画像処理方法であって、当該方法において、前記三角形の頂点で保持された値からの補間によって得られたピクセル単位の属性値が、前記投影された三角形の基本要素内の各々のピクセル上にマッピングされ、各三角形に対し、
投影前に、前記三角形は、前記三角形の各々のエッジと平行の座標軸(s, t)と、前記エッジ間の前記頂点と一致する原点と、を持つ各々の二次元座標システムを用いてパラメータ化され、
投影中に、一般化された補間関数が、前記パラメータ化座標システムに関して適用され、前記二次元座標システムに関する前記三角形内の位置でのパラメータ値を決定し、
投影後、前記三角形内の位置での前記決定されたパラメータ値は、各ピクセルでの属性値を与えるために、各頂点での1つ以上の属性について前記記憶された値からの寄与を決定する、画像処理方法において、
前記三角形内の位置での前記パラメータ値が、透光性値であることを特徴とする、画像処理方法。
【請求項2】
透光性ピクセルフラグメントが、三角形によって完全に覆われていても部分的に覆われていても、部分的なフラグメントとして特徴付けられる、請求項1に記載の方法。
【請求項3】
ピクセルが、前記ピクセルの中心が三角形の内側にあるか外側にあるかを決定するために、透視補正補間s/z、t/z、及び1/zを用いて検定され、zは、前記ピクセルの深さの値である、請求項1又は2に記載の方法。
【請求項4】
三角形の内側又は外側に位置するかを決定する前記検定が、前記ピクセルの中心から所定距離内の複数のサンプルポイントの各々で更に実行される、請求項3に記載の方法。
【請求項5】
2つの三角形の交差部分により規定される線は、前記複数のサンプルポイントにおける深さの逆数1/zを使用して、各ピクセルでアンチエイリアシングされる、請求項4に記載の方法。
【請求項6】
透光性ピクセルフラグメントが、前から後ろへピクセルフラグメントバッファに挿入され、前記レンダリングされたピクセルフラグメントのアルファ値が、前記アルファ値の合計が1を超えるまで累積され、接続が、前記合計されたアルファが1に等しくなるように、最後のピクセルフラグメントの色及びアルファの関数としてなされる、請求項5に記載の方法。
【請求項7】
ピクセルの最終的な色が、最先のサンプルポイント値から決定される、請求項6に記載の方法。
【請求項8】
画像平面に投影されるための複数の三角形の画像基本要素を規定するデータからの二次元ピクセル画像をレンダリングするように構成される画像処理装置であって、当該装置は、前記三角形の頂点で保持された値からピクセル単位の属性値を得るように配された補間手段と、前記投影された三角形の基本要素内の各々のピクセル上に前記ピクセル単位の属性値をマッピングするように配されたデータハンドリング手段とを含み、
投影前に前記三角形の基本要素を規定する前記データを受け取るように結合され、前記三角形の各々のエッジと平行の座標軸(s. t)と、前記エッジ間の前記頂点と一致する原点と、を持つ各々の二次元座標システムを用いて、各三角形をパラメータ化するように配された計算手段と、
前記二次元座標システムに関する三角形内の位置におけるパラメータ値を得るように、各三角形に対し、及び、前記パラメータ化座標システムに関し、一般化された補間関数を適用するように動作可能な投影手段と、
各ピクセルでの属性値を与えるように、及び、全ての三角形からのピクセル単位の属性値を組み合わせてピクセル単位の色の値を供給するように、各頂点での1つ以上の属性に関し前記記憶された値からの寄与を、前記三角形内の位置での前記決定されたパラメータ値から得るように構成されたピクセルシェーディング手段と
を有する画像処理装置において、前記装置は、ピクセルを透光性ピクセルとして特徴付け、透光性ピクセルが別のピクセルにオーバーレイしている場合、最先の透光性ピクセルの色から得られるピクセル単位の色の値を供給する手段を更に有することを特徴とする画像処理装置。
【請求項9】
複数のデータストックを保持し、各ストックは各々のピクセルと関連を持ち、前記ピクセルにインパクトする1つ以上の三角形の透光性を特定するエントリを保持する記憶手段と、透光性ピクセルフラグメントを、そのストックに前から後ろへと挿入する手段と、レンダリングされる透光性ピクセルフラグメントの前記アルファ値を、前記アルファ値の合計が1を超えるまで収容する手段と、前記合計されたアルファが1に等しくなるように、最後のピクセルフラグメントの色及びアルファの関数として接続を適用する手段とを更に有する、請求項8に記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate


【公開番号】特開2012−14714(P2012−14714A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−176797(P2011−176797)
【出願日】平成23年8月12日(2011.8.12)
【分割の表示】特願2001−524060(P2001−524060)の分割
【原出願日】平成12年9月8日(2000.9.8)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】