JP4371355B2 - 制御可能なテクスチャサンプリングを提供するためのシステムおよび方法 - Google Patents
制御可能なテクスチャサンプリングを提供するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP4371355B2 JP4371355B2 JP2003108480A JP2003108480A JP4371355B2 JP 4371355 B2 JP4371355 B2 JP 4371355B2 JP 2003108480 A JP2003108480 A JP 2003108480A JP 2003108480 A JP2003108480 A JP 2003108480A JP 4371355 B2 JP4371355 B2 JP 4371355B2
- Authority
- JP
- Japan
- Prior art keywords
- sampling
- texture
- specifying
- effect
- parameter
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Sampling And Sample Adjustment (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータグラフィックスに関連してテクスチャサンプリングを提供するためのシステムおよび方法を対象とする。より詳細には、本発明は、制御可能なテクスチャサンプリングを提供するためのシステムおよび方法を対象とする。
【0002】
【従来の技術】
本特許の開示の一部分は、著作権保護の対象となる資料を含む可能性がある。著作権所有者は、特許商標事務所の特許ファイルまたは特許記録に現れる本特許を何人が複写することにも異議はないが、そうでない場合は何であれ、すべての著作権を保留する。著作権(c)2001年、マイクロソフトコーポレーションという表示が、本特許に適用される。
【0003】
テクスチャマッピングは、色又はテクスチャを有する信号を幾何形状の上にイメージングして、粗い三角形メッシュ上に詳細な外観を与えることができる。テクスチャを使用することは、一般に、担体幾何形状を精緻化して頂点ごとに信号を表すことより効率的である。ラスタ化ハードウェアが、長年にわたって基本的なテクスチャマッピングをサポートしてきたが、このハードウェアは、最近、より強力な機能を提供するのを開始した。
【0004】
テクスチャマッピングプロセスの概要を図1に示している。テクセル(texel)202を有するテクスチャマップ200を所与として、テクスチャマッピングは、メッシュの三角形210に、その三角形の何らかの幾何形状構成に従ってテクスチャマップ200の信号を印加し、かつ/またはテクセル202をピクセル222にマップするシャドーイング(shadowing)、ライティング(lighting)などの何らかのさらなる変形を提供する。
【0005】
テクスチャマッピングは、エイリアシングが回避されるべきである限り、ナイキスト(Nyquist)理論が関与する問題であり、ナイキスト理論によれば、アナログ波形を正確に再現するのに、アナログ信号をその最高周波数の少なくとも2倍の周波数でサンプリングして、その信号をデジタル領域において高いレベルの精度で表現することができなければならない。次に、デジタル−アナログ変換技術を利用して元のアナログ信号を正確に再構成する。不十分なサンプリング速度が使用された場合、結果は、エイリアシングであり、エイリアシングは、より低い周波数の雑音として現れる、誤ったサンプリングの行われた高周波の情報である。
【0006】
テクスチャマッピングに関連してもサンプリング問題が生じる。テクスチャマッピングのプロセスは、スクリーンピクセルに対するテクスチャマップをサンプリングし、可能な限り、テクスチャマップデータは、最も高い周波数の情報を包含するのに十分なだけ高いサンプリング速度でサンプリングされていなければならない。これに関して、通常、ある数のピクチャ要素(ピクセル)で表現されるスクリーンオブジェクトは、異なる数のテクスチャ要素(テクセル)を有するテクスチャマップを使用する。テクスチャマップが、ピクセル空間より多くのテクセルを有するとき、単一のピクセルが、複数のテクセルにマップされる可能性があり、またテクスチャマップが、ピクセル空間より少ないテクセルを有するとき、複数のピクセルが、単一のテクセルにマップされる可能性がある。テクスチャ空間とピクチャ空間の間に正確なマッピングが存在しないとき、表示品質の問題が生じる可能性がある。
【0007】
実際、テクスチャマップは、適切なイメージの詳細を指定されたピクセルエリアに効果的にマップすることができないか、または反対に、より少ないピクセルエリアが、より大きい/より豊富なテクスチャマップからのすべてのテクスチャの詳細を使用することができない可能性がある。
【0008】
具体的には、テクスチャマップが、マップが行われるピクセルエリアと比べて小さすぎるケースでは、同一のテクセルが、隣接するピクセルにマップされ、これにより、イメージを見るとき、ブロッキーネス効果(blockiness effect)が生じる。もう一方のケースで、複数のテクセルが、同一のピクセルにマップされる場合、所与のピクセルにマップされるのが可能なグループのテクセルからどのテクセルが実際にテクスチャマップから選択されて、そのピクセルに印加されるかは、しばしば、早い者勝ちである。したがって、これは、アルゴリズムに依存するプロセスであり、テクスチャスイミング(swimming)およびテクスチャポッピング(popping)として知られるアーチファクトがもたらされる可能性があり、この両方とも、カメラが動くとき非常に目立つ。さらに、ピクセルとテクセルの間のマッピングに関して実質的に同様の、または同一の数のピクセルおよびテクセルが存在する場合でさえ、レンダリングに先立ってテクセルに適用される何らかの変形または機能が存在する可能性があり、その場合、何らかのアルゴリズムが、ピクセルデータがテクセルデータとの関係でどこから来なければならないかをやはり、決定しなければならない。
【0009】
生じる可能性がある問題を例示するため、テクセルの数がピクセルの数より多いケースを次のように考えることができる。2つの二等辺三角形を含む3次元(3D)シーンに100×100ピクセルの正方形のビルボード(billboard)表面が存在するものと想定する。200の水平のレッドのストライプおよびブルーのストライプを含むテクスチャマップを100×100ピクセル正方形エリアの上に印加した場合、テクスチャの200のストライプのすべては、ビルボードに印加された後、区別されない可能性がある。というのは、このテクスチャは、印加される先のピクセルエリアより多いサンプルを有するからである。中間テクスチャデータの一部が、マッピングで使用されず、基本的に無視される。
【0010】
自らの3Dの視点がビルボードの上で動くにつれ、例えば、ゲームでナビゲートしている場合、ピクセルポッピングと呼ばれる現象が生じ、この現象は、テクスチャのストライプが、ビルボードのピクセルと揃ったり、ずれたりする結果である。また、これは、シーンの詳細を記述するのにテクスチャサンプリング速度が不十分であるケースである。さらに、これは、もたらされる可能性がある1つのタイプのアーチファクトを例示するものである。というのも、他のタイプのアーチファクトも、不良なテクスチャサンプリングからもたらされる可能性があるからである。
【0011】
不十分なテクスチャサンプリング速度によって生じさせられるレンダリングアーチファクトを最小限に抑えるいくつかの手法が、概して、フィルタリングおよび再サンプリングの形態で存在する。ポイントサンプリングのような簡単なテクスチャリング方法で使用される2つのフィルタ方法は、テクスチャサンプリング方法を変更して以上に述べた問題を回避するのを助けるマグニフィケーション(Magnification)およびミニフィケーション(Minification)である。
【0012】
ミニフィケーションアルゴリズムは、複数のテクセルが単一のピクセルにマップされる可能性があるケースで使用され、ピクセルにマップされる可能性があるグループのテクセルのなかから最適のテクセルを選択する。マグニフィケーション技法は、複数のピクセルが単一のテクセルにマップされる可能性があるとき使用され、単一のテクセルを複数のピクセルにマップする。ポイントサンプリング、バイリニア(bilinear)フィルタリング、トライリニア(trilinear)MIPマッピング、異方性ファイリングおよびアンチエイリアシングを含め、テクスチャを印加するための速度および品質の異なる多くの方法が存在する。
【0013】
表面にテクスチャを印加する最も基本的なやり方は、「最近接(nearest neighbor)」サンプリング方法を使用するポイントサンプリングである。レンダラ(render)は、あるテクスチャを取り出すとき、ピクセルの座標(ピクセル中心)に最も近接してマッピングされる(u,v)座標を有するテクスチャマップからテクスチャサンプルを取り込み、そのサンプルをピクセルに印加する。この手法を図2Aに示しており、図2Aでは、ピクセル空間からテクセル空間へのマッピングの関係のある位置が、位置P1にある。この場合、最も近接したテクセルはT1であるので、T1が選択される。この手法は、テクスチャメモリから読み取られる必要のあるテクセルの数の点で最も少ない量のメモリ帯域幅しか、すなわち、1ピクセル当り1つしか必要としないが、結果は、しばしば、テクスチャを記述するのにサンプル、すなわち、スクリーンピクセルが不十分であることに起因して前述したアーチファクトを生じさせる。ただし、第1世代のパーソナルコンピュータ(PC)3Dハードウェアでさえ、以上のサンプリング問題を片付けるのを助ける、または少なくともある程度、隠すのを助ける、すなわち、バイリニアフィルタリングを利用することによる機能を有していた。
【0014】
テクスチャ上で最近接のものをただ取り込むの代わりに、バイリニアフィルタリングは、ピクセルの中心に最も近接した4つのサンプルを読み取り、色の値の重み付けされた平均を最終の色の値として使用する。したがって、図2Bに示すとおり、T1、T2、T3、およびT4の重み付けされた平均が取られ、この重みは、ピクセルの中心から4つのテクセルの中心までの距離に基づく。グラフィックス処理の分野の技術者に周知のバイリニアフィルタリングに関する例としての方程式は、以下のとおりである。
ca=pi,j・α+(pi,j+l)・(l−αa)
cb=pi+l,j・α+(pi+l,j+l)・(l−αa)
F=lrp(ca,cb)・αb
【0015】
lrpは、今日のグラフィックス処理ユニット(GPU)によって容易に理解される1次補間関数である。視覚上の最終的な効果は、ポイントサンプリングで見られるテクスチャアーチファクトの相当な量をぼやけさせることであるが、単一のテクスチャマップを使用して機能する4タップのフィルタに過ぎないため、バイリニアフィルタリングの有効性は限られている。
【0016】
テクスチャイメージ品質を向上させる別の手法は、レンダラが、元のテクスチャの複数のコピーを作成し、また連続する各MIPマップが、前のもののちょうど半分の解像度であるMIPマッピングとして知られる技術である。これは、実質的に、標準の2つの座標(u,v)が存在するが、どのマップの解像度がマップが行われる先のピクセルエリアに最もよくマッチするかに基づき、どのMIPマップを選択すべきかを測定するのに使用される第3の座標dも存在する、ある種の3Dテクスチャになる。戦闘機が、ビューカメラに近い場合、非常に詳細なテクスチャマップが選択されるが、その飛行機が遠くに飛び去るにつれ、順々により小さく、それほど詳細ではないマップが使用される。
【0017】
d座標が増大するにつれ、順々に小さいMIPマップが使用される。d座標の導出は、複雑であり、実施形態に依存する傾向があるが、一般に、カバーされるべきピクセルエリアに基づき、特定のMIPマップの選択から、どれだけのテクスチャマグニフィケーションまたはテクスチャミニフィケーションがもたらされるかを計算することに関する。したがって、最小の量のテクスチャマグニフィケーションおよびテクスチャミニフィケーションを伴うMIPマップが、この方法によって選択される。図2Cに示すとおり、MIPマッピングの問題は、ピクセルレンディション(rendition)220において最もよくピクセルの数を表すのにどのテクスチャ200a、200b、200c等を利用するかを選択する問題である。
【0018】
アプリケーションがMIPマップを使用することができるいくつかの異なるやり方が存在し、そのやり方は、しばしば、グラフィックスハードウェアサポートに依存する。一部のケースでは、アプリケーションが、(A)マップが行われる先のピクセルに最もよく対応する単一のマップを選択し、(B)そのマップの中のテクセルにバイリニアフィルタリングを適用し、次に(C)、結果の平均されたテクセルを対応するピクセルに印加するのを選択することができる。ただし、MIPマッピングの抱える視覚上の問題が、シーンの中で動いているとき、マップの境界で生じる可能性がある。例えば、ゲームの中で路上で車を走らせているとき、路上のテクスチャに目に見える断絶が見える可能性がある。これは、MIPマップの切り替えに起因する可能性が高い。
【0019】
しばしば使用されるMIPマッピングの高品質の方法が、トライリニアMIPマッピングと呼ばれ、このマッピングは、前述したMIPマップ境界の問題を緩和するのに役立つ。このフィルタリング方法は、マップが行われる先のピクセルエリアと比べて1つのテクスチャマップの解像度の方が少し大きく、もう1つのテクスチャマップの解像度の方が少し小さい、ピクセルに最も近接した2つのMIPマップから、4つのテクセルサンプルをそれぞれ使用する2つのバイリニアサンプルを取る。次に、トライリニアアルゴリズムが、重み付きの平均を使用してその2つのバイリニアフィルタにかけられたテクセルを結合して結果のテクスチャを有するピクセルにし、ピクセルエリアにより近い解像度のマップが、より大きな重みを受ける。
【0020】
トライリニアMIPマッピングでさえ、いくつかの欠点を抱えているが、欠点は、概して、詳細レベル(LOD)バイアスを行うことに関連している。各MIPマップは、関連するLODを有するとされ、バイアスを行うことは、2つの異なるマップから取られた2つの双線形フィルタにかけられたサンプル間の平均の重み付け係数に関わる。LODバイアスが余りにも「上方に」向けられすぎ、より小さい解像度のマップの方に向けて平均に重みを付けた場合、テクスチャのぼやけがもたらされる可能性がある。LODバイアスが、あまりにも「下方」に向けられすぎ、より大きいMIPマップの方に向けて平均に重みが付けられた場合、エイリアシング、およびテクスチャシマリング(shimmering)/クローリング(crawling)などの時間的エイリアシングがもたらされる可能性がある。したがって、LODバイアスを行うことにより、d値が変更され、より小さいマップまたはより大きいマップが使用されることがもたらされる。ただし、d値は、それでも、開発時に事前設定されている。この技術の抱える主な問題は、バイリニアフィルタリングまたはトライリニアフィルタリングの等方性の性質である。テクスチャの一方の軸に沿ったマグニフィケーション/ミニフィケーションは、他方の軸に沿ったマグニフィケーション/ミニフィケーションとは相当に異なる可能性があり、一方の軸に沿ってエイリアシングがもたらされ、また他方の軸に沿ってぼやけがもたらされる可能性がある。
【0021】
バイリニアフィルタリングまたはトライリニアフィルタリングの等方性の性質に対処しようと試みる異方性フィルタリングと呼ばれる別のフィルタリング技術が存在する。1つの形態の異方性フィルタリングは、MIPマップサンプリングを使用するが、8つのサンプルを取る代わりに、最高で16のサンプルを取る。異方性フィルタリングを使用する際、レンダラに対して、異方性の度合いはどの程度かを指定する。この度合いは、イメージ品質の低下が始まる手前まで、どれだけテクスチャを引き伸ばすことができるかの比である。
【0022】
別の形態の異方性フィルタリングでは、バイリニアフィルタリングを何らかの角に沿って複数回行う。これは、例えば、レースカービデオゲームにおける路上の接近通過(flying by)でそうであるように、「ストリーキング(streaking)」がピクセルレンダリングの自然な副産物である場合、役立つ可能性がある。テクスチャを有するポリゴン(polygon)がスクリーンの平面に対して斜めの角にあるとき、テクスチャ上にマップされるスクリーンピクセルに対応するフットプリント(footprint)が、長くなる、すなわち、もはや正方形ではなくなる。より高度な方法は、このフットプリントにおいて凹凸のある(odd−shaped)テクセルの集合を使用し、そのテクセルを融合させて最終の結果を生成する。このサンプリングフットプリントに使用するのに正しい形状を計算し、またその形状がどれだけの長さであるべきかを計算することは、非常に難しい問題である。これを行うためのあらゆる現在知られているアルゴリズムは、計算をスクリーンピクセル−ポリゴンテクセル間の整列の相対的幾何形状だけに基づいて行い、開発者が、プロセスを予測できるように/インテリジェントに制御できるようにする柔軟性を提供するものは存在しない。
【0023】
バイリニアフィルタリングを複数回行うこの形態の異方性サンプリングを図2Dに示しており、このサンプリングは、レンダリングされる三角形の一部の事前に定められた幾何形状のアスペクトに従って比Δv/Δuで定義される角θ、およびΔvとΔuの大きさで定義されるポイントP1a、P1b、P1c等の間のステップサイズに沿って異方性フィルタにかけられるポイントP1aに関する。角θに沿った楕円形状が、P1bおよびP1cの位置を定義する。次に、P1a、P1b、およびP1cのそれぞれに関してバイリニアフィルタリングが行われ、このフィルタリングは、この例では、重み付けされた仕方で、対応する4つの要素のグループ(A)T14、T11、T15、およびT12、(B)T11、T12、T6、およびT5、ならびに(C)T7、T6、T8、およびT1をそれぞれ融合させる。
【0024】
テクスチャが印加される表面に合うようにテクスチャが引き伸ばされなければならない方向でより多くのサンプルを使用することで、異方性フィルタリングは、バイリニアフィルタリングまたはトライリニアフィルタリングと比べてよりシャープなイメージ品質を実現し、またポイントサンプリングで見られるテクスチャシマリングも回避する。また、レーシングゲームの中のビルボードにおいて、またはスターウォーズ映画の開始時に可能性があるようにある角で表示される異方性フィルタにかけられたテキストが、他のフィルタリング方法を使用したのと比べて、より明瞭にレンダリングされることにも留意されたい。
【0025】
一般に、グラフィックスアプリケーションプログラミングインターフェース(API)は、マルチテクスチャリング効果で使用するために単一の頂点に関して2つまたはそれより多くのテクスチャアドレスを記憶する備えを有する。初期に、マルチテクスチャリングは、ライトマップを使用してライティング効果を生成するのに使用されたが、以来、バンプ(bump)マッピングのようなさらなる効果を行うのに適用されてきた。以上のマルチテクスチャリング機能により、最終的に3Dチップ製造業者は、チップ不動産(chip real estate)を並列ピクセルパイプラインを作成するのに投資することに駆り立てられ、またより新しい世代のチップでは、クロック単位のピクセルごとに複数のテクセルを処理することに駆り立てられている。
【0026】
1ピクセル当り複数のテクセルを扱うことができる並列パイプを有することによって得られる利点は、マルチテクスチャリング演算を、シーンにおける各ピクセルが数回描かれる複数回の走査の(multipass)レンダリングを行わなければならないのではなく、しばしば、単一のクロックサイクルで行うのが可能なことである。チップが、シーンをレンダリングするのに行わなければならないさらなる各回の走査について、有効ピクセル充填速度を行う必要がある走査の回数で割る。したがって、毎秒500Mピクセル充填速度のチップが、マルチテクスチャリング効果を伴ってシーンをレンダリングするために2回の走査を行わなければならないとした場合、そのチップの有効充填速度が毎秒250Mピクセルに半減される。チップが4回の走査を行う場合、充填速度は、毎秒125Mピクセルまで低下する。したがって、並列パイプラインにより、グラフィックスレンダリングの効率も大幅に向上した。
【0027】
マルチテクスチャリングの演算を行うやり方は、通常の単一のテクスチャリングとそれほど異なっていない。ただし、違っているのは、別個のテクスチャを一緒に融合させなければならず、またシェーディングによって生成された既存のピクセルの色と融合させなければならないことである。しかし、シーンで使用されるテクスチャの数を2倍または3倍にすることにより、追加のテクスチャを取り出すのに必要とされるフレームバッファ帯域幅の量が激増し、複数回の走査が行われなければならない場合、全体的パフォーマンスが低下することが、かつて懸念される問題であった。ただし、近年の極めて高速なグラフィックスプロセッサの発展が、そのような懸念を静めた。
【0028】
テクスチャリングおよびマルチテクスチャリングを使用して多彩な視覚上の効果を生成することができ、基本的な表面記述は、氷山の一角に過ぎない。また、開発者は、テクスチャを生成する別のやり方も発見した。すなわち、開発者は、「あらかじめ用意された(canned)」ビットマップを記憶する代わりに、テクスチャを手続き式に生成する小さいプログラムを作成することができる。この技術は、大理石表面から、大型の野外環境における地形テクスチャ、動く水の効果に至るまであらゆるものを生成するのに使用されてきた。
【0029】
多くのアプリケーションが3Dで行うことを追求する別のプロセスが、雰囲気を設定することである。これは、開発者が現出させた世界内部にゲームをする人を没頭させようと試みる上で特に重要である。異なる雰囲気を実現するのに役立つ1つのツールがフォグであり、フォグは、シーンにさらなる奥行きの感覚を与えるのにも役立つ。
【0030】
フォグは、いくつかの異なる仕方で実施することができ、変異形態は、概して、どのようにフォグ(fog)がより濃くなるかに関する。2つの非常に一般的な方法が、線形のフォグおよび指数のフォグと呼ばれ、その名前が示唆するとおり、それぞれ線形的に、また指数的にスケーリングが行われる。また、フォグを頂点ごとに、またはピクセルごとに印加することもでき、3Dにおけるほとんどの事でそうであるように、ピクセルごとの方がより納得させるが、より多くの計算処理を要する。
【0031】
フォグを印加するより進んだ方法が、範囲ベースのフォグと呼ばれ、従来、一般消費者向けの3Dチップで利用可能ではなかったが、DirectX8における頂点シェーダ(shader)の到来とともに、範囲ベースのフォグは、選択肢となった。別の方法は、フォグのテーブルと呼ばれ、フォグの値がルックアップテーブルの中に記憶され、次に、各ピクセルに印加される。
【0032】
しかし、技術に関わらず、フォグは、オブジェクトがどれだけ遠くに離れているかに関係するものであり、これは、通常、ビューカメラからの距離であるz値で決まる。次に、線形的にか、または指数的にか計算されるフォグの係数が、計算されて、フォグの量(色)とライト/シェード/テクスチャを伴うピクセルの色を結合する融合演算を使用してピクセルに印加される。フォグが頂点ごとに実施される場合、フォグの演算は、ライティング計算の一部分となり、グーロー(Gouraud)シェーディングを使用して各三角形全体に補間される。
【0033】
フォグの別の実際的な用法は、遠くのクリッピング(clipping)平面におけるオブジェクトが、シーンから単に突然に消えるのではなく、優美に「次第に消える」のを可能にすることである。また、フォグを使用して、レンダラが、ビューカメラに比較的近接した世界オブジェクトを描くだけでよいようにすることもできる。フォグの値が、ゼロに近くなった、またはゼロに達したとき(フォグの値は、通常、0と1の間の浮動小数点値であり、ゼロは絶対的なフォグであり、1はフォグがないことである)オブジェクトが、基本的に廃棄され、さらなるレンダリング作業は、全く行う必要がない。
【0034】
透明度および半透明度を印加する技法も存在する。不透明なオブジェクトとは異なり、透明なオブジェクトは、一般に、前後逆の順序で深度によるソートを行い、透明なオブジェクトと融合される下にある色が、融合演算を行う際に利用可能であるのを確実にしなければならない。オブジェクトの半透明度を計算するのに使用されるいくつかの公式が存在するが、一般的な公式は、以下のとおりである。
co=α・cs+(1−α)・cd、ただし、
co=最終のピクセルの色
α=アルファ値(0と1の間の)であり、
cs=透明なピクセル(元と呼ばれる)の色であり、また
cd=遮られたピクセル(先と呼ばれる)の色である。
【0035】
この公式は、アルファ値が、両方のピクセルに異なる仕方で適用され、結果の値が加算されて最終のピクセルの色が与えられる2つのピクセル変調の和である。
【0036】
【発明が解決しようとする課題】
以上より、テクスチャサンプリングを行うコンピュータグラフィックスに関連して適用することができる数限りない技術が存在する。
【0037】
しかし、これまでの従来技術は、その数限りない技術のうちのどれかの選択は、あまり柔軟性があるわけではなく、開発時に開発者によって固定されていた。
【0038】
例えば、ある変数およびヒューリスティックは、あるグラフィックスの状況に関して有用であり、他の状況に関しては有用でないので、最終的な品質結果は、ますます高まる処理能力を使用してさえも、まちまちな結果となる。
【0039】
その結果、プロセスのフロントエンドでテクスチャサンプリングアルゴリズムに適用するインテリジェンスの量を増やすことが望まれる。
【0040】
また、柔軟機能(flex−function)GPUにますます向かっている傾向に鑑みて、開発者が、最も効果的な仕方で様々な状況を扱うようにオンザフライで動的なインテリジェンスを適用する制御可能なテクスチャサンプリングを開示することが望まれる。
【0041】
さらに、物質プロパティ、曲面、ボリューム(volumetric)テクスチャを考慮に入れ、またはるかに複雑な単一回の走査によるテクスチャ融合を有するより進んだプログラム可能なピクセルごとのシェーディングアルゴリズムおよびライティングアルゴリズムが利用可能になるにつれ、開発者が、テクスチャサンプリングプロセスを制御できるようにすることが一層望まれる。
【0042】
さらにまた、ブラー、またはストリーキング、またはシマリングなどのアーチファクトをレンダリングされるイメージに制御可能な仕方で導入することも望まれる。
【0043】
したがって、サンプリング能力が制御可能な機構を、オペレーティングシステム、ドライバコード、アプリケーションプログラミングインターフェース、GPUまたは他の処理デバイスを含むグラフィックスパイプライン自体におけるツールキットおよび/または機能のいずれか1つに提供することが望まれる。
【0044】
すなわち、従来の技術においては、例えば既存のテクスチャサンプリング技術を補足する際に、テクスチャサンプリングのためのパラメータの置き換えや変更を柔軟に行うことができないため、3Dアクセラレータハードウェアがレンダリングを行う際の現実感のレベルを大幅に向上させることができないという問題がある。
【0045】
そこで、本発明の目的は、コンピュータシステムにおけるコンピュータグラフィックスに関連してテクスチャサンプリングを制御可能なシステムおよび方法を提供することにある。
【0046】
【課題を解決するための手段】
様々な実施形態において、(1)モーションブラー(motion blur)、(2)異方性の表面反射を生成すること、(3)表面の自己シェーディングを生成すること、(4)レイキャスト(ray−cast)ボリュームサンプリング、(4)自己シャドーイングを伴うボリュームレンダリング、および(5)自己シャドーイングを伴うボリュームレイキャストのための改良された機構を含め、3Dアクセラレータハードウェアが、レンダリングを行う際の現実感のレベルを大幅に向上させることができるようにするテクスチャサンプリングを制御するための改良された機構を提供する。既存のテクスチャサンプリング技術の補足を行う際、テクスチャサンプリングに関するパラメータを置き換え、かつ/または変更することができる。
【0047】
様々な実施形態において、テクスチャマップのテクスチャサンプリングに関連して利用されるサンプリングフットプリントのパラメータを指定すること、およびそのサンプリングフットプリントの指定されたパラメータに従ってテクスチャマップのテクスチャサンプリングを行うことを含め、制御可能なテクスチャサンプリングを可能にする方法、装置、コンピュータ可読媒体、およびコプロセッシング(coprocessing)デバイスを提供する。
【0048】
本発明のその他の特徴およびその他の実施形態を以下に説明する。
【0049】
本発明に従って制御可能なテクスチャサンプリングを提供するためのシステムおよび方法を、添付の図面を参照してさらに説明する。
【0050】
【発明の実施の形態】
<概要>
3Dアクセラレータハードウェアが、レンダリングを行う際の現実感のレベルを大幅に向上させることを可能にし、3Dハードウェアにおける光線追跡(ray−tracing)計算の使用に向けての道を開く制御可能なテクスチャサンプリングを提供するための機構が提供される。現在まで、そのような方法は、ホストプロセッサで動作するソフトウェアのレンダラに限定され、グラフィックスパイプラインの速度を大幅に低下させてきた。これに関して、現在、3Dグラフィックスチップは、レンダリング中にポリゴン上のテクスチャから色を抽出するのに使用されるサンプラと呼ばれるユニットを有している。レンダリングされるピクセルの位置は、一般に、テクスチャにおけるテクスチャの位置と厳密には一致しないので、何らかの作業が関与する。テクスチャサンプリングは、ポイントサンプリング、バイリニアフィルタリング、MIPマッピング、および異方性フィルタリングなどの「背景」で説明した技術、ならびにその他の技術を使用して様々なレベルの複雑さ(sophistication)で機能することができる。そのような従来技術の技法は、すべての状況にはよく適応しない固定された態様を有する。さらに、現在の異方性フィルタリング技術は、開発者が、実際にはブラー効果を生成するのを望む可能性があるのにブラー効果を除去する。したがって、本発明は、前に固定されたパラメータを開発者に明らかにし、開発者に、テクスチャサンプリングプロセスに対する制御のレベルに関して前例のないインテリジェンスを提供するようにする。様々な実施形態では、本発明が、様々なテクスチャリング効果に役立つことが示される。さらに、本発明は、ソフトウェアでも、ハードウェアでも、あるいはソフトウェアとハードウェアの両方でも同じように実施することができる。例えば、一部の実装の詳細は、GPUのようなコプロセッシングチップで実装することができ、一方、その他の実装の詳細は、APIツールキット、オペレーティングシステム、ドライバ、ダウンロード可能なコード等を介してグラフィックス開発者に開示することができる。
【0051】
例としてのネットワーク化された環境および分散された環境
当分野の技術者は、コンピュータ、あるいはその他のクライアントデバイスまたはサーバデバイスをコンピュータ網の一部として配備する、つまり分散された計算環境で配備するのが可能であることを認めることができよう。これに関して、本発明は、テクスチャサンプリングプロセスに関連して使用することができる、任意の数のメモリユニットまたは記憶ユニット、および任意の数の記憶ユニットまたは記憶ボリュームにわたって生じる任意の数のアプリケーションおよびプロセスを有する任意のコンピュータシステムに属する。本発明は、遠隔のストーレッジまたはローカルのストーレッジを有するネットワーク環境または分散された計算環境に配備されたサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。また、本発明は、遠隔サービスまたはローカルサービスに関連して情報を生成し、受信し、また送信するためのプログラミング言語機能、解釈能力および実行能力を有する独立型計算デバイスにも適用することができる。
【0052】
分散されたコンピューティングは、計算デバイスと計算システムの間の直接交換によってコンピュータリソースおよびコンピュータサービスの共用を容易にする。そのリソースおよびサービスには、情報の交換、キャッシュ記憶、およびファイルに関するディスク記憶が含まれる。分散されたコンピューティングは、ネットワーク接続性を利用し、クライアントが、集合的能力を活用して企業全体に益をもたらすことができるようにする。これに関して、様々なデバイスが、本発明の技術を利用する可能性があるテクスチャサンプリングプロセスが関係していることが可能なアプリケーション、オブジェクト、またはリソースを有することが可能である。
【0053】
図3Aは、例としてのネットワーク化された計算環境または分散された計算環境の概略図を提供している。分散計算環境は、計算オブジェクト10a、10b等、および計算オブジェクトまたは計算デバイス110a、110b、および110c等を含む。以上のオブジェクトは、プログラム、メソッド、データストア、プログラマブル論理等を含むことが可能である。オブジェクトは、PDA、テレビジョン、MP3プレーヤ、テレビジョン、パーソナルコンピュータなどの同じデバイスまたは異なるデバイスの部分を含むことが可能である。各オブジェクトは、通信網14を介して別のオブジェクトと通信することができる。このネットワーク自体、図3Aのシステムにサービスを提供する他の計算オブジェクトおよび計算デバイスを含むことが可能である。本発明の態様によれば、各オブジェクト10a、10b等、または110a、110b、110c等が、テクスチャサンプリングサービスを要求する可能性があるアプリケーションを含むことが可能である。
【0054】
分散計算アーキテクチャでは、従来はクライアントとしてだけ使用されていた可能性があるコンピュータ群が、互いに直接に通信し、そのネットワークにとって最も効率的であるどちらの役割でも引き受けて、クライアントとしてもサーバとしても動作することができる。これにより、サーバにかかる負荷が減り、クライアントのすべてが、他のクライアント上で利用可能なリソースにアクセスすることができるようになり、これにより、ネットワーク全体の能力および効率が向上する。これにより、本発明によるテクスチャサンプリングサービスを、ネットワーク全体にとって効率的な仕方で動作するクライアント群およびサーバ群の間で分散させることができる。
【0055】
分散コンピューティングは、企業が、様々な地理的境界を越えてより効率的にサービスおよび能力のデリバリを行うのを助けることができる。さらに、分散コンピューティングは、ネットワークキャッシング機構として作用するデータが消費されるポイントのより近くにデータを移動させることができる。また、分散コンピューティングにより、計算ネットワーク群が、インテリジェントなエージェントを使用して動的に協働するのを可能にする。エージェントは、ピアコンピュータに常駐し、様々な種類の情報を通信してやり取りする。また、エージェントは、他のピアシステムに代行してタスクを開始することもできる。例えば、インテリジェントなエージェントを使用してネットワーク上のタスクに優先順位を付ける、トラフィックフローを変更する、ローカルでファイルを探索する、またはウィルスなどの異常な挙動を判別し、その挙動がネットワークに影響を与える前にその挙動を停止することができる。種々の他のサービスも企図することができる。グラフィカルオブジェクトおよびテクスチャマップは、実際には、1つまたは複数の場所に物理的に位置しているので、テクスチャサンプリングサービスを分散させる能力は、そのようなシステムにおいて非常に有用である。
【0056】
また、110cのようなオブジェクトが、別の計算デバイス10a、10b等または110a、110b等の上でホストされるのが可能なことも認められよう。したがって、描かれた物理環境は、コンピュータなどの接続されたデバイスを示していることが可能であるが、そのような図示は、単に例としてのものであり、代わりに、PDA、テレビジョン、MP3プレーヤなどの様々なデジタルデバイス、インターフェース、COMオブジェクトなどのソフトウェアオブジェクトを含むものとして物理環境を描く、または説明することも可能である。
【0057】
分散計算環境をサポートする様々なシステム、構成要素、およびネットワーク構成が存在する。例えば、コンピュータシステム群を有線システムまたは無線システムで、ローカルネットワークまたは広く分散されたネットワークで一緒に接続することができる。現在、ネットワークの多くは、広く分散されたコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを包含するインターネットに結合されている。
【0058】
ホームネットワーキング環境では、電力線、データ(無線と有線両の)媒体、音声(例えば、電話機)媒体、およびエンターテイメント媒体などの、固有のプロトコルをそれぞれがサポートしていることが可能な少なくとも4つの別々のネットワークトランスポート媒体が存在する。照明スイッチなどのほとんどの家庭用制御デバイスおよび器具は、接続のために電力線を使用することができる。データサービスは、ブロードバンド(例えば、DSLモデムまたはケーブルモデム)として家庭に入ることが可能であり、無線(例えば、HomeRFまたは802.11b)接続または有線(例えば、Home PNA、Cat 5、電力線までも)接続を使用して家庭内でアクセス可能である。音声トラフィックは、有線(例えば、Cat 3)または無線(例えば、セル電話機)として家庭に入ることが可能であり、Cat 3配線を使用して家庭内で配信することができる。エンターテイメント媒体、またはその他のグラフィカルデータは、サテライトまたはケーブルを介して家庭に入ることが可能であり、通常、同軸ケーブルを使用して家庭内で配信される。また、IEEE 1394およびDVIも、媒体デバイスのクラスタのためのデジタル相互接続として現れている。以上のネットワーク環境のすべて、およびプロトコル標準として現れる可能性があるその他の環境が、インターネットを介して外部の世界に接続することができるイントラネットを形成するように相互するのが可能である。要するに、データの記憶および伝送のために様々な別々のソースが存在し、したがって、計算デバイスを前進させることは、本発明によるグラフィックスオブジェクトおよびテクスチャマップのテクスチャサンプリングに付随してアクセスされる、または利用されるデータなどのデータを共用するやり方を必要とする。
【0059】
インターネットとは、一般に、コンピュータネットワーキングの分野で周知のTCP/IPセットのプロトコルを利用するネットワークおよびゲートウェイの集合を指す。TCP/IPは、「Transport Control Protocol/Interface Program」の頭字語である。インターネットは、ユーザが、ネットワーク群を介して対話し、情報を共用することができるようにするネットワーキングプロトコルを実行するコンピュータ群によって相互接続された地理的に分散された遠隔コンピュータネットワーク群のシステムとして説明することができる。そのような広汎な情報共用のため、インターネットなどの遠隔ネットワークは、これまで、一般に、特殊化された動作またはサービスを行うためのソフトウェアアプリケーションを基本的に制限なしに開発者が設計することができるオープンなシステムに発展してきた。
【0060】
したがって、ネットワークインフラストラクチャにより、クライアント/サーバアーキテクチャ、ピアツーピアアーキテクチャ、または混成アーキテクチャなどの多数のネットワークトポロジが可能になる。「クライアント」は、自らが関連していない別のクラスまたは別のグループのサービスを使用するあるクラスまたはあるグループのメンバである。したがって、コンピューティングでは、クライアントは、プロセスである。すなわち、おおむね、別のプログラムによって提供されるサービスを要求する1組の命令またはタスクである。クライアントプロセスは、他方のプログラムまたはサービス自体に関して動作上の詳細を全く「知る」必要なしに要求のサービスを利用することができる。クライアント/サーバアーキテクチャ、特にネットワーク化されたシステムでは、クライアントは、通常、別のコンピュータ、例えば、サーバによって提供される共用ネットワークリソースにアクセスするコンピュータである。図3Aの例では、コンピュータ110a、110b等をクライアントと考えることができ、またコンピュータ10a、10b等をサーバと考えることができ、サーバ10a、10b等は、クライアントコンピュータ110a、110b等において複製されるデータを保持する。
【0061】
サーバは、通常、インターネットなどの遠隔ネットワークを介してアクセス可能な遠隔コンピュータシステムである。クライアントプロセスが、第1のコンピュータシステムにおいてアクティブであることが可能であり、またサーバプロセスが、第2のコンピュータシステムにおいてアクティブであることが可能であり、通信媒体を介して互いに通信し、これにより、分散された機能を提供して、複数のクライアントが、サーバの情報収集能力を利用することができるようにしている。
【0062】
クライアントとサーバは、プロトコル層によって提供される機能を利用して互いに通信する。例えば、ハイパーテキスト転送プロトコル(HTTP)が、ワールドワイドウェブ(World Wide Web)(WWW)に関連して使用される一般的なプロトコルである。通常、ユニバーサルリソースロケータ(Universal Resource Locator)(URL)アドレスまたはインターネットプロトコル(IP)アドレスなどのコンピュータ網アドレスを使用してサーバコンピュータまたはクライアントコンピュータを互いに識別する。ネットワークアドレスは、URLアドレスと呼ぶことができる。例えば、通信媒体を介して通信を提供することができる。詳細には、大容量通信のためにTCP/IP接続を介してクライアントとサーバを互いに結合することができる。
【0063】
したがって、図3Aは、本発明を使用することができる、ネットワーク/バスを介してクライアントコンピュータと通信しているサーバを備えた例としてのネットワーク化された環境または分散された環境を示している。より詳細には、本発明に従い、いくつかのサーバ10a、10b等が、LAN、WAN、イントラネット、インターネット等であることが可能な通信ネットワーク/バス14を介して、可搬コンピュータ、ハンドヘルドコンピュータ、小型軽量クライアント(thin client)、ネットワーク化された器具、またはVCR、TV、オーブン、照明、ヒータなどの他のデバイスなど、いくつかのクライアントまたは遠隔計算デバイス110a、110b、110c、110d、110eなどと相互接続されている。したがって、本発明は、グラフィカルオブジェクトを処理するのが望ましい任意の計算デバイスに適用できることが企図されている。
【0064】
通信ネットワーク/バス14が、例えば、インターネットであるネットワーク環境で、サーバ10a、10b等は、クライアント110a、110b、110c、110d、110e等が、HTTPなどのいくつかの周知のプロトコルにどれかを介して通信する相手のWebサーバであることが可能である。また、サーバ10a、10b等は、分散計算環境が特徴とするのが可能であるように、クライアント110a、110b、110c、110d、110e等としての役割をすることもできる。通信は、適宜、有線または無線であることが可能である。クライアントデバイス110a、110b、110c、110d、110e等は、通信ネットワーク/バス14を介して通信しても、しなくてもよく、独立の通信が関連していることが可能である。例えば、TVまたはVCRのケースでは、制御にネットワーク化された態様が存在していても、存在していなくてもよい。各クライアントコンピュータ110a、110b、110c、110d、110e等、およびサーバコンピュータ10a、10b等が、様々なアプリケーションプログラムモジュールまたはオブジェクト135を備えていることが可能であり、またファイルを記憶することができる、またはファイルをダウンロードする、または移動させることができる様々なタイプの記憶要素またはオブジェクトへの接続またはアクセスを備えていることが可能である。任意のコンピュータ10a、10b、110a、110bが、グラフィックスオブジェクト、または本発明に従って処理される中間グラフィックスオブジェクトを記憶するためのデータベースまたはメモリ20などの、本発明によるデータベース20またはその他の記憶要素の保持および更新を担うことができる。したがって、本発明は、コンピュータネットワーク/バス14にアクセスし、対話することができるクライアントコンピュータ110a、110b等、ならびにクライアントコンピュータ110a、110b等、他の同様なデバイス、およびデータベース20と対話することができるサーバコンピュータ10a、10b等を有するコンピュータネットワーク環境において利用することができる。
【0065】
例としての計算デバイス
図3Bおよび以下の考察は、本発明を実施することができる適切な計算環境の簡単な一般的説明を提供することを意図する。ただし、ハンドヘルド計算デバイス、可搬計算デバイス、および他の計算デバイス、ならびにあらゆる種類の計算オブジェクトを本発明と関連して使用することが企図されていることを理解されたい。以下では、汎用コンピュータについて述べるが、これは一例に過ぎず、本発明は、ネットワーク/バス相互運用性およびネットワーク/バス対話を有する小型軽量クライアントを使用して実施することもできる。したがって、本発明は、非常にわずかな、または最小限のクライアントリソースが関与するネットワーク化されたホストされるサービスの環境で、例えば、クライアントデバイスが、器具内部に配置されたオブジェクトなどのネットワーク/バスに対するインターフェースとしてだけの役割をするネットワーク化された環境において実施することができる。要するに、データを記憶することができる、またはデータを取り出すことができるあらゆる場所が、本発明の制御可能なテクスチャサンプリング技術の動作のための望ましい、または適切な環境である。
【0066】
必須ではないが、本発明は、デバイスまたはオブジェクトに関するサービスの開発者が使用するための、かつ/または本発明の制御可能なテクスチャサンプリングに関連して動作するアプリケーションソフトウェア内部に含まれるオペレーティングシステムを介して実施することができる。ソフトウェアは、クライアントワークステーション、サーバ、またはその他のデバイスなどの1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。通常、プログラムモジュールの機能は、所望に応じて様々な実施形態で組み合わせる、または分散させることができる。さらに、本発明を他のコンピュータシステム構成と使用して実施できることが、当分野の技術者には認められよう。本発明とともに使用するのに適していることが可能な他の周知の計算システム、計算環境、および/または計算構成には、パーソナルコンピュータ(PC)、現金自動預け払い機(automated teller machine)、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル家庭用電化製品、ネットワークPC、器具、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータ等が含まれるが、以上には限定されない。また、本発明は、タスクが、通信ネットワーク/バスまたはその他のデータ伝送媒体を介してリンクされた遠隔の処理デバイスによって行われる分散計算環境で実施することもできる。分散計算環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルのコンピュータ記憶媒体と遠隔のコンピュータ記憶媒体の両方の中にあることが可能であり、クライアントノードは、サーバノードとしての挙動を行うことができる。
【0067】
したがって、図3Bは、本発明を実施することができる適切な計算システム環境100の例を示しており、ただし、上記に明らかにしたとおり、計算システム環境100は、適切な計算環境の一例に過ぎず、本発明の使用または機能の範囲に関する限定を示唆するものでは全くない。また、計算環境100は、例としての動作環境100に図示した構成要素のいずれか1つ、または組合せに関連する何らかの依存性または要件を有するものと解釈すべきでもない。
【0068】
図3Bを参照すると、本発明を実施するための例としてのシステムが、コンピュータ110の形態で汎用計算デバイスを含む。コンピュータ110の構成要素は、それだけに限らないが、処理ユニット120、システムメモリ130、およびシステムメモリから処理ユニット120までを含む様々なシステム構成要素を結合するシステムバス121を含むことが可能である。システムバス121は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造の任意のものであることが可能である。例として、限定としてではなく、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)(PCI)バス(メザニン(Mezzanine)バスとしても知られる)が含まれる。
【0069】
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることのできる任意の利用可能な媒体であることが可能であり、揮発性の媒体と不揮発性の媒体、取外し可能な媒体と取外し不可能な媒体の両方を含む。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または任意の技術で実装される揮発性と不揮発性の媒体、取外し可能な媒体と取外し不可能な媒体の両方が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストーレッジ、磁気カセット、磁気テープ、磁気ディスクストーレッジまたは他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、コンピュータ110がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号に情報を符号化するような仕方で特定の1つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、前述したもののいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるべきものである。
【0070】
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。始動中など、コンピュータ110内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム133(BIOS)が、通常、ROM131の中に記憶されている。RAM132は、通常、処理ユニット120によって即時にアクセス可能であり、かつ/または現在、動作させられているデータおよび/またはプログラムモジュールを含む。例として、限定としてではなく、図3Bは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
【0071】
また、コンピュータ110は、他の取外し可能な/取外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体を含むことも可能である。単に例として、図3Bは、取外し不可能な不揮発性の磁気媒体に対して読取りおよび書込みを行うハードディスクドライブ141、取外し可能な不揮発性の磁気ディスク152に対して読取りおよび書込みを行う磁気ディスクドライブ151、およびCD−ROMまたは他の光媒体などの取外し可能な不揮発性の光ディスク156に対して読取りおよび書込みを行う光ディスクドライブ155を示している。例としての動作環境において使用することができる他の取外し可能な/取外し不可能な揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれるが、以上には限定されない。ハードディスクドライブ141は、通常、インターフェース140のような取外し不可能なメモリインターフェースを介してシステムバス121に接続され、また磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150のような取外し可能なメモリインターフェースでシステムバス121に接続される。
【0072】
図3Bに示すドライバおよび関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストーレッジをコンピュータ110に提供する。図3Bでは、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示されている。以上の構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであるのも、異なるのも可能であることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147に、ここでは、少なくともそれらが異なるコピーであることを示すために異なる符合を付けている。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれる可能性がある。
【0073】
以上の入力デバイスおよび他の入力デバイスは、しばしば、システムバス121に結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造で接続してもよい。また、ノースブリッジなどのグラフィックスインターフェース182も、システムバス121に接続することができる。ノースブリッジは、CPUまたはホスト処理ユニット120と通信するチップセットであり、アクセラレーテッドグラフィックスポート(accelerated graphics port)(AGP)通信を担うことを引き受ける。1つまたは複数のグラフィックス処理ユニット(GPU)184が、グラフィックスインターフェース182と通信することができる。これに関して、GPU184は、一般に、レジスタストーレッジなどのオンチップ(on−chip)メモリストーレッジを含み、またGPU184は、ビデオメモリ186と通信する。ただし、GPU184は、コプロセッサの一例に過ぎず、したがって、様々なコプロセッシングデバイスが、コンピュータ110に含まれることが可能である。また、モニタ191または他のタイプの表示デバイスも、ビデオメモリ186と通信することができるビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191に加えて、コンピュータは、出力周辺インターフェース195を介して接続することができるスピーカ197やプリンタ196などの他の周辺出力デバイスも含むことが可能である。
【0074】
コンピュータ110は、遠隔コンピュータ180のような1つまたは複数の遠隔コンピュータへの論理接続を使用するネットワーク化された、または分散された環境で動作することもできる。遠隔コンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、コンピュータ110に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶デバイス181だけを図3Bに示している。図3Bに描いた論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワーク/バスを含むことも可能である。そのようなネットワーキング環境は、家庭、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【0075】
LANネットワーキング環境で使用されるとき、コンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるとき、コンピュータ110は、通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、または他の手段を含む。内部にあることも、外部にあることも可能なモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関連して描いたプログラムモジュール、またはプログラムモジュールの部分を遠隔のメモリ記憶デバイスの中に記憶することができる。例として、限定としてではなく、図3Bは、遠隔アプリケーションプログラム185をメモリデバイス181上に常駐するものとして示している。図示したネットワーク接続は、例としてのものであり、コンピュータ間で通信リンクを確立する他の手段を使用してもよいことが認められよう。
【0076】
例としての分散計算フレームワークまたはアーキテクチャ
パーソナルコンピュータとインターネットの収斂に鑑みて、様々な分散計算フレームワークが開発されており、開発されつづけている。個人ユーザも企業ユーザも同様に、アプリケーションおよび計算デバイスのためのシームレスに相互運用性のあるWeb対応のインターフェースを備えており、コンピュータ活動が、ますますWebブラウザ指向またはネットワーク指向になっている。
【0077】
例えば、MICROSOFT(商標)の.NETプラットフォームが、サーバ、Webベースのデータ記憶およびダウンロード可能なデバイスソフトウェアなどの構成単位(building−block)サービスを含む。一般的に言って、.NETプラットフォームは、(1)全範囲の計算デバイスが協働するようにさせ、ユーザ情報が自動的に更新され、計算デバイスのすべてにおいて同期されるようにする能力、(2)HTMLではなく、XMLのより広汎な使用で可能にされるWebサイトに関するより高い対話能力、(3)例えば、電子メール、またはOffice.NETなどのソフトウェアなどの様々なアプリケーションの管理のための、中央開始ポイントからユーザへの製品およびサービスのカスタマイズされたアクセスおよびデリバリを特徴とするオンラインサービス、(4)情報へのアクセス、ならびにユーザおよびデバイスの間における情報の同期の効率および容易さを向上させる集中データ記憶、(5)電子メール、ファックス、および電話などの様々な通信媒体を統合する能力、(6)開発者にとって、再使用可能なモジュールを作成し、これにより、生産性を高め、プログラミングの誤りの数を減らす能力、および(7)多数の他のクロスプラットフォーム(cross−platform)統合機能をも提供する。
【0078】
本明細書では、例としての実施形態をコンピュータデバイス上に常駐するソフトウェアに関連して説明しているが、本発明の1つまたは複数の部分をオペレーティングシステム、アプリケーションプログラミングインターフェース(API)、またはコプロセッサと要求側オブジェクトの間の「仲介役(middle man)」オブジェクトを介して実施して、制御可能なテクスチャサンプリングサービスが、.NETの言語およびサービスのすべてで、また他の分散計算フレームワークにおいても行われること、サポートされること、またはアクセスされることが可能であるようにすることができる。
【0079】
制御可能なテクスチャサンプリング
「従来の技術」で説明したとおり、関与するアプリケーションに応じて、コンピュータグラフィックスでテクスチャサンプリングを行うのに適用することができるいくつかの異なる技術が存在する。ただし、問題は、ひとたび選択されると、その技術は、あまり柔軟性なしに固定され、選択されたテクスチャサンプリング技術に適さない独特の状況が生じた場合、または開発者が、最終結果において、ブラーなどのあるアーチファクトを所望するようなことがある場合、できることがほとんどないようになる。したがって、本発明は、テクスチャサンプリングアルゴリズムにインテリジェンスを加え、開発者にフロントエンドでより多くの自由を与え、バックエンドでより動的なテクスチャサンプリングを可能にするようにする。したがって、本発明の技術は、柔軟機能GPUに向かう傾向を利用し、開発者がオンザフライで適用する制御可能なテクスチャサンプリング、および様々な状況を様々な仕方で扱う動的なインテリジェンスを開示する。したがって、様々な実施形態で、本発明は、オペレーティングシステム、ドライバコード、API、GPUまたは他のコプロセッシングデバイスを含むグラフィックスパイプライン自体におけるツールキットおよび/または機能の任意の1つまたは複数のものに、制御可能なテクスチャサンプリング機能を提供する機構を提供する。
【0080】
したがって、本発明は、プログラマブルサンプリングを介してテクスチャサンプリングプロセスを制御するための様々な技術を提供する。「従来の技術」で述べたとおり、異方性サンプリングの1つの形態では、バイリニアサンプリングが、何らかの角に沿って複数回、行われる。図4Aに示すとおり、テクスチャを有するポリゴンが、スクリーンの平面に対して斜めの角にあるとき、テクスチャに対してマップされたスクリーンピクセルに対応するフットプリントが、楕円などの細長い形状になる。このサンプリングフットプリントのために使用する正しい形状を計算するためのあらゆる現在、周知の方法は、計算をスクリーンピクセル−ポリゴンテクセル間の整列の相対的ジオメトリだけに依拠して行い、開発者が、フットプリントのサイズおよび向きを直接に予測可能でインテリジェントな仕方で制御することができるようにする柔軟性を提供するものは存在しない。したがって、本発明は、既に行われた自動計算の「手動オーバーライド(override)」、および/または自動計算が生成する結果の変更を可能にして、リアルタイム3Dグラフィックスにおいて新しいレベルの視覚的現実感を可能にするための様々な機構を提供する。
【0081】
手動オーバーライドに関し、本発明を利用して、フットプリントを計算するのに通常、利用されるΔuおよびΔvを値ΔunewおよびΔvnewで置き換えることによってフットプリントのサイズおよび向きを置換することができる。このことを図4Aで示しており、ΔunewおよびΔvnewが、置換の向きθnewを定義し、また置換のステップサイズsnewを定義している。したがって、API、オペレーティングシステム、ツールキット、ドライバ等を介して置換のΔunewおよびΔvnewを指定することを介して、テクスチャサンプリングプロセスを制御することができる。これに関して、今日の柔軟機能GPUは、そのような処理を実現するあるレジスタの割当ておよび/または割当て変更を行うことにより、以上のことを実現する機能を表すトークンを受け取ることができる。また、この処理を扱うようにGPUを前もって製造することもできる。置換は、一部の状況では、現在、使用されている技術より高速である。というのは、置換中にアプリケーションによって定義されるパラメータを計算することにチップがもはや関与していないからである。
【0082】
異方性技術に関連して利用される現在のフットプリントの変更に関し、本発明を利用して、フットプリントを計算するのに通常、利用されるΔuおよびΔvをオフセット値Δu0およびΔv0で変更することにより、フットプリントのサイズおよび向きを変更することができる。このことを図4Aに示しており、Δu+Δu0およびΔv+Δv0が、変更された向きθ0を定義し、また変更されたステップサイズs0も定義している。したがって、API、オペレーティングシステム、ツールキット、ドライバ等を介してオフセット値Δu0およびΔv0を指定することを介して、テクスチャサンプリングプロセスを制御することができる。置換と同様に、今日の柔軟機能GPUは、以上のことを実現する機能を表すトークンを受け取ることができるか、または同じ結果を実現するように前もって製造することができる。本明細書で説明する変更は、単に加算ではないΔuとΔu0、またはΔv+Δv0のあらゆる関数を企図している。すなわち、当面のフィルタリングタスクに適切である可能性がある乗算、累乗、平方根、減算、または任意の関数F(ΔuおよびΔu0)またはF(Δv+Δv0)が企図されている。
【0083】
開発者が、ハードウェアがテクスチャマッピングに関して通常どおり挙動するのを可能にするように選択した場合、変更能力と置換能力はともに同時に提供することができ、また両方とも、オプションである。ただし、本発明は、テクスチャサンプリングフットプリントを定義するパラメータを置き換え、かつ/または変更して制御可能なテクスチャサンプリングを実現することにより、現在、既存の技術を補足するオプションを開発者に提供する。
【0084】
また、「従来の技術」で説明したとおり、グラフィックス処理の分野の技術者に知られているバイリニアフィルタリングのための例としての方程式は、以下を含む。
ca=pi,j・α+(pi,j+1)・(1−αa)
cb=pi+1,j・α+(pi+1,j+1)・(1−αa)
F=lrp(ca,cb)・αb
【0085】
さらなる実施形態では、本発明は、開発者が、バイリニアフィルタリング計算に関連して使用するαaおよびαbを置き換える、または変更するのを可能にして、テクスチャサンプリングプロセスに対するさらなる制御の層を提供する。
【0086】
本発明によって提供される技術は一般的であり、本発明の使用に関する適用範囲は、実質的に無限である。したがって、本発明の使用の多数の例を以下に提示し、また本発明を関連して使用することができる効果の多数の例を「従来の技術」で供与したが、本発明は、マッピングの態様を制御することが望ましいあらゆるテクスチャサンプリングプロセスに適用されるものとする。
【0087】
したがって、本発明の使用の例、およびその例としての使用に関する例としての擬似コードを以下に提示する。
【0088】
モーションブラーのための現在の方法は、例えば、4回ないし8回の複数回のレンダリング走査を必要とし、これにより、より遅いパフォーマンス、例えば、4倍ないし8倍遅いパフォーマンスが直接にもたらされる。本発明によるフィルタリング手法を使用することにより、はるかに小さい影響しかパフォーマンスに与えることなく、一回だけの走査で同様の結果を提供することができる。そのようなケースでは、本発明は、反復(頂点レベル)データを適用してブラーが生じる方向ベクトルを制御する。前に説明したとおり、方向ベクトルは、定義パラメータを変更する、または置き換えることにより、変更する、または置換することができる。同様の手法を使用して反射/フレネル(Fresnel)ブラーをシミュレートし、かつ/または制御することができる。
【0089】
拡散ライティングのため、また鏡面ライティングの何らかの近似のため、異方性表面反射およびライティングの効果を生成することが可能である。真の鏡面ライティングは、現行の技術が、異方性のサンプリングを行うことができない環境マップによってもたらされる。本発明の技術は、反射環境マップの異方性レンダリングを可能にする。そのような技術は、ステンレス鋼継手に対する軽くブラシがかけられた金属仕上げなどの輝きがあるが、異方性の表面に特に適しており、サンプリング方向の定義パラメータを変更するか、または置き換えることによってサンプリング方向の頂点ごとの指定またはピクセルごとの指定を使用することができる。
【0090】
表面の自己シャドーイングに関して、表面のピクセルごとのライティングを促進する多くの技術が存在する。これらの技術のほとんどは、定義上、スムーズでソフトなライティング効果である拡散照明効果だけしか行うことができない。粗い表面の主要な視覚的インパクトは、より高いエリアがより低いエリアの上に投じる影からもたらされ、この影は、表面テクスチャの粗さを明確に描く切れのよいハイコントラストの境界を提供する。3Dグラフィックスにおいて影を計算するための他の方法は、1つのポリゴンから別のポリゴンの上に影を投じることができるだけであり、同一のポリゴン上のテクセル間で影を計算するためには有効でない。したがって、本発明は、サンプリング方向の定義パラメータを変更するか、または置き換えることによってサンプリング方向のピクセルごとの指定を適用する。
【0091】
図5は、シャドーイングの背後にある基本原理を示し、また本発明のさらなる実施形態を示している。図5では、ポイントソースpsからシャドーイングまたはライティングが行われる任意の地形または表面Tが示されており、シェーディングが行われた領域は、数学上、ポイントソースpsからの光線に晒された表面のエリアを表す。これに関して、地形Tは、u値およびv値を有することに加えて、地形Tのポイントの高さに対応するw値も有する複数のポイントによって定義される。したがって、3Dにおけるシャドーイングまたはライティングに関するサンプリング方向には、通常、Δu値、Δv値、およびΔw値によって定義される向きおよびステップサイズを有する3Dサンプリング方向ベクトルを設定することが関与する。これに関して、本発明は、Δu値、Δv値、およびΔw値の置換え、または変更を可能にし、前述したΔu値およびΔv値に適用される技術をΔw値にまで拡張する。
【0092】
レイキャストボリュームサンプリングに関して、ボリュームレンダリングのための現在の方法は、ボリュームをスライスして視線方向に比較的直交するポリゴンにすることを必要とする。この手続きは、そのようなボリュームの端および隅に沿って帯状アーチファクトを生じさせる。本発明の技術により、それらのアーチファクトの制御可能な回避が可能になり、パフォーマンスも向上する。したがって、本発明により、サンプリング方向を決定する3Dベクトルの指定または変更が可能になり、この指定または変更が、頂点から直線的に繰り返される。次に、サンプリングが、一連のマルチセルごとに、例えば、8セル、トライリニアサンプル、またはバイリニアサンプルごとに行われることが可能である。
【0093】
自己シャドーイングを伴うボリュームレンダリングに関して、この技術を従来のスライススタイルまたはスプラット(splat)スタイルのボリュームレンダリングと組み合わせて使用するとき、自己シャドーイング効果または自己照明効果をレンダリングされるボリュームの中でシミュレートすることができる。したがって、本発明により、3Dサンプリング方向ベクトルの頂点ごとの指定または変更が可能になる。
【0094】
自己シャドーイングを伴うボリュームレイキャスティングに関して、ネスト化されたループレベルが追加され、光線に沿った各サンプルで、別個のセットのサンプリングが、光源に向かう方向に沿って投射されて自己シャドーイングを伴う真のボリュームレイキャストレンダリングが提供される。この技術は、以上で考察した技術の簡単な拡張であるが、サンプリングハードウェアのより大きな変更を伴う。
【0095】
プログラマブルテクスチャサンプリングおよびサンプリングシェーダ(shader)に関して、本発明によって実現される重要な技術は、アプリケーション、または開発者が、異方性フィルタカーネルサンプルの方向および間隔を指定できるようにすることである。
【0096】
現行のバイリニア/トライリニアサンプリングにおいて使用されるプログラミングされた値には、4ポイントカーネルのu幅およびv幅が含まれる。本発明によるプログラマブル異方性サンプリングに関するさらなる値には、uにおけるサンプルのdu間隔、およびvにおけるサンプルのdv間隔が含まれる。これに関して、本発明は、ピクセルごとに以上のパラメータを指定するか、または変更することを、頂点ごとに行うのに加えて行った後、それを繰り返すことを可能にする。例えば、そのような技術で、異方性のブラーリングが行われる環境マップに十分である。
【0097】
非限定的な例としての擬似コード
基本的な異方性シェーダのための例としての擬似コードは、以下のとおりである。
【0098】
各ピクセルに関して、
【0099】
2Dの頂点ごとのデータに関して演算を行うモーションブラーのための、例えば、環境マップでブラシのかけられた金属をシミュレートするための異方性ブラーシェーダのための例としての擬似コードは、以下のとおりである。
【0100】
各ピクセルに関して、
【0101】
鮮明な影の端をもたらすが、位置が影に入っていると判定されたとき、サンプリングの早期終了(early−out)を可能にする、シャープシャドー表面シェーダのための、例えば、局所表面自己シャドーイングシェーダのための例としての擬似コードは、以下のとおりである。
【0102】
【0103】
最も近いオクルーダ(occluder)に影を分配することによって分数の影の値を計算するファジーシャドー表面シェーダのための例としての擬似コードは、以下のとおりである。
【0104】
【0105】
本発明の使用のさらなる例には、トライリニアサンプル値を累算し、積分するプログラマブルボリュームレイキャスティングシェーダを提供することが含まれる。そのようなシェーダは、パイプライン式の環境においてデータがどれだけハードであるかに基づいて異なる仕方で挙動することが可能である。これに関して、本発明をzバッファと協調して利用して不透明なオブジェクトを積分することができる。そのような場合、1回のzバッファ読取りを行い、そのzバッファをサンプルごとに比較することができる。また、そのような技術が、光線が常に目から遠ざかる方向に向かうものと想定し、したがって、深度比較演算の結果に従って積分を終了できることが可能である。
【0106】
本発明の使用の他の例には、ボリュームデータに関して現行のスプラットタイプのレンダリング方法を利用するが、シャドーレイ(shadow ray)を計算するのに前述した技術を使用するプログラマブル自己シャドーイングボリュームフォグ/ファー(fur)シェーダを提供することが含まれる。
【0107】
本発明を実施する複数のやり方が存在する。1つのやり方は、コプロセッサ、例えば、GPUが、本発明の機能を行い、本明細書で説明する制御可能なテクスチャサンプリングに適したコマンドを受け取るように前もって製造されている実装形態を提供することである。本発明の別の実施形態には、適切なAPI、ツールキット、ドライバコード、オペレーティングシステム、独立型のソフトウェアオブジェクトまたはダウンロード可能なソフトウェアオブジェクト等により、アプリケーションとコプロセッサの間などにおいて本発明を使用できるようになる、手作業で、または自動的にコプロセッサをプログラミングして本発明の機能を実現することが含まれる。別の実施形態には、アプリケーションによってコプロセッサに送り込まれるパラメータを通知して、テクスチャサンプリングプロセスのフットプリントパラメータの変更/置換えをコプロセッサにトランスペアレントにすることが含まれる。したがって、本発明は、本明細書で説明するプログラマブルテクスチャサンプリングを完全にハードウェアだけで実施することも、一部はハードウェアで、また一部はソフトウェアで実施することも、またソフトウェア実施形態として実施することも企図している。
【0108】
本発明の例としての実施形態では、サンプリングが行われる方向ベクトルを特定するサンプリングステートメントにおけるパラメータの指定を可能にするAPI構成要素が提供される。また、多次元サンプリングベクトルに関して前述した変形形態のすべても企図されている。例えば、評価スロープのために使用される第3の構成要素を影を投射するため、ボリュームレンダリングのためなどに使用することができる。ハードウェアレジスタに対して演算を行うためのそのようなAPI構成要素の例が、擬似コード形式で以下のとおりであり、
【0109】
【0110】
また、ステージ#の宣言において定義されるサンプリングカウント/混合モードが、以下のようなものである。
【0111】
異方性シェーディングに関する方向ベクトル/ストライド(stride)を前述したAPIによって指定された手段によって制御可能にする例としてのハードウェア部分は、以下の機能を含む。すなわち、(A)デフォルト、(B)置換え、(C)加算、および(D)変調である。
【0112】
これに関して、デフォルトは、標準の異方性フィルタリングアルゴリズムに基づいてサンプリングに関するストライドおよび方向を計算する従来のアプリケーションによって制御されないサンプリングを定義する。
【0113】
置換え機能は、デフォルトをアプリケーションによって指定された値で置き換える。加算機能は、アプリケーションによって指定された値をチップによって計算された値に加算して最終のサンプリング方向を決定する。変調機能は、アプリケーションによって指定された方向ベクトルにチップによって計算された方向ベクトルを掛けて最終のサンプリング方向を決定する。
【0114】
本発明の一実施形態では、ハードウェアチップが、本発明の様々な技術を実施するため、既存の従属する読取りハードウェア技術を活用して個々のサンプルを取る。そのような実施形態により、アプリケーションが、2×2のバイリニアフットプリントの各セットの位置だけでなく、カーネルにおけるすべてのサンプルの位置を制御することが可能になり、したがって、そのような実施形態は、前述した技術のいくつかよりもさらに一般的である。
【0115】
本発明のさらなる使用には、ネルソンマックス(Nelson Max)の水平マッピング手法の導関数を使用して、自己シャドーイングを伴うテクスチャを、そのテクスチャに付随して利用されるパラメータを制御することによって実現する。
【0116】
また、本発明は、様々な妥当な実施形態において、投射された光線が、現行のzバッファと交差するとき、または飽和が生じたとき、(1)検出、(2)「早期終了」、または(3)ナルを戻すこともサポートする。
【0117】
本発明の他の実施形態では、様々な詳細で前述したとおり、サンプリング動作のアルゴリズム式制御を可能にするプログラマブルサンプリングシェーダが提供される。さらに、ブラーリング、分散された光等をモデル化することができるように各ステップにおいて増分の間隔、またはカーネルのサイズを変更できる能力などの、ある2次効果も達せられる。
【0118】
前述したとおり、本発明の例としての実施形態を様々な計算デバイスおよびネットワークアーキテクチャに関連して説明してきたが、基礎にある概念は、テクスチャサンプリングを行うことが望ましいあらゆる計算デバイスまたは計算システムに適用することができる。したがって、本発明による改良された信号処理を提供するための技術は、様々なアプリケーションおよびデバイスに適用することができる。例えば、本発明のアルゴリズムは、デバイス上の別個のオブジェクト、別のオブジェクトの一部、サーバからダウンロード可能なオブジェクト、デバイスまたはオブジェクトとネットワークの間の「仲介役」、配布されたオブジェクト等として提供されて、計算デバイスのオペレーティングシステムに適用されることが可能である。様々な選択を表すものとして、例としてのプログラミング言語、名前、および例を本明細書で選択しているが、これらの言語、名前、および例は、限定することを意図するものではない。本発明によって実現されるのと同一の、同様な、または等価な制御可能なテクスチャサンプリングを実現するオブジェクトコードを提供する様々なやり方が存在することが、当分野の技術者には理解されよう。
【0119】
本明細書で説明する様々な技術をハードウェアまたはソフトウェアと関係して、または適切な場合、ハードウェアとソフトウェアの組合せで実施することができる。したがって、本発明の方法および装置、または本発明のある態様またはある部分が、フロッピー(R)ディスケット、CD−ROM、ハードドライブ、または任意の他のマシン可読記憶媒体などの実体のある媒体で実現されたプログラムコード(すなわち、命令)の形態をとることが可能であり、そのプログラムコードが、コンピュータなどのマシンにロードされ、そのマシンによって実行されるとき、そのマシンが、本発明を実施するための装置になる。プログラマブルコンピュータ上でプログラムコードを実行する場合、計算デバイスは、一般に、プロセッサ、プロセッサによる読取りが可能な記憶媒体(揮発性メモリおよび不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含む。例えば、データ処理API等の使用を介して、本発明の信号処理サービスを利用することができる1つまたは複数のプログラムが、好ましくは、高レベルの手続き言語またはオブジェクト指向言語で実装されてコンピュータシステムと通信する。ただし、プログラムは、所望される場合、アセンブリ言語または機械言語で実装することができる。いずれにしても、言語は、コンパイルされる、または解釈される言語であり、ハードウェア実装形態と組み合わせられることが可能である。
【0120】
また、本発明の方法および装置は、電気配線またはケーブル配線を介する、光ファイバを介する、または任意の他の形態の伝送を介するなどの何らかの伝送媒体を介して伝送されるプログラムコードの形態で実現される通信を介して実施することも可能であり、そのプログラムコードが、EPPROM、ゲートアレイ、プログラマブル論理デバイス(PLD)、クライアントコンピュータ、ビデオレコーダ等、または例としての実施形態で前述した信号処理能力を有する受信側マシンによって受信され、ロードされ、実行されたるとき、本発明を実施するための装置となる。汎用プロセッサ上で実施されるとき、プログラムコードは、プロセッサとの組み合わされて本発明の機能を呼び出すように動作する独特の装置となる。さらに、本発明に関連して使用されるあらゆる記憶技術が、常にハードウェアとソフトウェアの組合せであることが可能である。
【0121】
本発明を様々な図の好ましい実施形態に関連して説明してきたが、本発明を逸脱することなく本発明と同じ機能を行うために、他の同様な実施形態を使用できること、または説明した実施形態に変更または追加を行うのが可能なことを理解されたい。例えば、本発明の例としてのネットワーク環境は、ピアツーピアのネットワーク化された環境などのネットワーク化された環境のコンテキストで説明しているが、本発明は、そのような環境に限定されず、本発明の適用で説明した方法は、ゲームコンソール、ハンドヘルドコンピュータ、可搬コンピュータなどの任意の計算デバイスまたは計算環境に、有線であるか、無線であるかに関わらず、適用することができ、また通信ネットワークを介して接続され、そのネットワークを介して対話する任意の数のそのような計算デバイスに適用することができる。さらに、特に無線ネットワーク化されたデバイスが増え続けるなかで、ハンドヘルドデバイスオペレーティングシステム、および他のアプリケーション特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されていることを強調しておかなければならない。さらに、本発明は、複数の処理チップまたは処理デバイスで、またはその全体で実施することができ、また記憶も同様に、複数のデバイス全体で行うことができる。したがって、本発明は、何らかの単一の実施形態に限定されるべきものではなく、頭記の特許請求の範囲に準拠する広がりおよび範囲で解釈されるべきものである。
【0122】
【発明の効果】
以上説明したように、本発明によれば、テクスチャサンプリングを制御可能な改良された機構を設けたので、例えば既存のテクスチャサンプリング技術を補足する際に、テクスチャサンプリングのためのパラメータの置き換えや変更を柔軟に行うことができ、3Dアクセラレータハードウェアがレンダリングを行う際の現実感のレベルを大幅に向上させることが可能となる。
【図面の簡単な説明】
【図1】コンピュータグラフィックスシステムにおけるテクスチャサンプリングのプロセスの概要を提供する図である。
【図2A】コンピュータグラフィックスシステムにおけるテクスチャサンプリングに関連して利用される従来技術のポイントサンプリングプロセスの概要を提供する図である。
【図2B】コンピュータグラフィックスシステムにおけるテクスチャサンプリングに関連して利用される従来技術のバイリニアフィルタリングプロセスの概要を提供する図である。
【図2C】コンピュータグラフィックスシステムにおけるテクスチャサンプリングに関連して利用される従来技術のMIPマッピングプロセスの概要を提供する図である。
【図2D】コンピュータグラフィックスシステムにおけるテクスチャサンプリングに関連して利用される従来技術の異方性フィルタリングプロセスの概要を提供する図である。
【図3A】本発明を実施することができる様々な計算デバイスを有する例としてのネットワーク環境を示すブロック図である。
【図3B】本発明を実施することができる例としての限定するものではない計算デバイスを示すブロック図である。
【図4A】制御可能なテクスチャサンプリングが提供される本発明の実施形態を示す図である。
【図4B】制御可能なテクスチャサンプリングが提供される本発明のさらなる実施形態を示す図である。
【図5】本発明のさらなる実施形態を適用することができるプロセスを示す図である。
【符号の説明】
200 テクスチャ
202 テクスチャ
220 レンダリングされたイメージ部分
222 ピクセル
224 ピクセル走査線
Claims (38)
- 制御可能なテクスチャサンプリングを提供するための方法であって、
(u,v)座標を有するテクスチャマップのテクスチャサンプリングに関連して利用されるサンプリングフットプリントの少なくとも1つのパラメータを指定するステップと、
前記パラメータは、u方向でのサンプリング間隔を示すΔu値と、v方向でのサンプリング間隔を示すΔv値と、サンプリング地形内での最大のサンプリング高さを示すΔw値とを有し、
前記指定するステップは、
サンプリング方向を決定するための前記パラメータによって定義される向きおよびステップサイズを有するサンプリング方向ベクトルを設定するステップを含み、
前記サンプリングフットプリントの前記指定されたパラメータに従って前記テクスチャマップのテクスチャサンプリングを行うステップと
を具え、
前記テクスチャサンプリングを行うステップは、
前記最大のサンプリング高さを示すΔw値に対応した前記サンプリング地形の範囲内で、前記設定されたサンプリング方向ベクトルの前記パラメータの指定又は変更を繰り返して実行することによって、前記サンプリング地形内での最大のサンプリング高さに制限されたサンプリング領域を決定するステップを含むことを特徴とする方法。 - 前記指定するステップは、
(1)前記少なくとも1つの標準パラメータに関する少なくとも1つのオフセット値を指定することによって少なくとも1つの標準のパラメータを変更するステップ、および(2)少なくとも1つの標準のパラメータを少なくとも1つの置換パラメータで置き換えるステップの少なくともどちらかを含むことを特徴とする請求項1記載の方法。 - 前記変更するステップは、
前記オフセット値と前記標準のパラメータを加算するステップ、前記オフセット値と前記標準のパラメータを乗算するステップ、前記オフセット値と前記標準のパラメータのどちらかを指数として適用するステップ、前記オフセット値と前記標準のパラメータを減算するステップ、および前記標準のパラメータおよび前記オフセット値に基づいて事前定義された数学的関数を実行するステップのうち少なくとも1つを含むことを特徴とする請求項2記載の方法。 - 前記サンプリングフットプリントは、
ポイントサンプリングプロセス、バイリニアフィルタリングプロセス、MIPマッピングプロセス、異方性フィルタリングプロセス、およびアンチエイリアシングプロセスのうち少なくとも1つからのサンプリングフットプリントであることを特徴とする請求項1記載の方法。 - 前記指定するステップは、前記テクスチャサンプリングに関連して頂点ごとおよびピクセルごとの少なくともどちらかで、前記少なくとも1つのパラメータを指定するステップを含むことを特徴とする請求項1記載の方法。
- 前記テクスチャサンプリングを反復して適用するステップをさらに含むことを特徴とする請求項5記載の方法。
- 前記サンプリングフットプリントは、異方性フィルタリングサンプリングフットプリントであることを特徴とする請求項1記載の方法。
- 前記少なくとも1つのパラメータは、異方性フィルタカーネルサンプルの方向と間隔の少なくともどちらかを含むことを特徴とする請求項7記載の方法。
- 前記指定されたパラメータに従う前記テクスチャマップの前記テクスチャサンプリングを行うステップは、
前記テクスチャサンプリングからもたらされるピクセル空間の少なくとも1つの視覚的効果を通知し、前記少なくとも1つの視覚的効果は、ブラーリング(blurring)効果、ブロッキーネス(blockiness)効果、テクスチャスイミング(swimming)効果、ピクセルポッピング(popping)効果、時間的エイリアシング効果、テクスチャシマリング(shimmering)効果、テクスチャクローリング(crawling)効果、およびストリーキング効果のうち少なくとも1つを含むことを特徴とする請求項1記載の方法。 - 前記指定されたパラメータに従う前記テクスチャマップの前記テクスチャサンプリングを行うステップは、
三角形表面にテクスチャを与えて、ライティング(lighting)効果、バンプ(bump)マッピング効果、ブラーリング効果、反射ブラーリング効果、フレネル(Fresnel)ブラーリング効果、マーブリング(marbling)効果、ムービングウォータ(moving water)効果、線形フォギング(fogging)効果、指数的フォギング効果、範囲ベースのフォギング効果、透明効果、半透明効果、曲面効果、シャープシャドーイング(sharp shadowing)効果、ファジー(fuzzy)シャドーイング効果、およびボリュームテクスチャリング効果のうち少なくとも1つを実現することを特徴とする請求項1記載の方法。 - 少なくとも1つのパラメータを前記指定するステップは、
モーションブラー(motion blur)を印加するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、
反復される頂点レベルのデータを適用して前記サンプリングフットプリントの方向ベクトルを制御するステップをさらに具えたことを特徴とする請求項1記載の方法。 - 少なくとも1つのパラメータを前記指定するステップは、
異方性表面反射、散乱ライティング、および鏡面ライティングの近似のうち少なくとも1つを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、
前記サンプリングフットプリントのサンプリング方向の頂点ごとの指定とピクセルごとの指定のどちらかを適用するステップをさらに具えたことを特徴とする請求項1記載の方法。 - 少なくとも1つのパラメータを前記指定するステップは、
表面自己シャドーイングを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、
前記サンプリングフットプリントのサンプリング方向のピクセルごとの指定を適用するステップをさらに具えたことを特徴とする請求項1記載の方法。 - 少なくとも1つのパラメータを前記指定するステップは、
表面自己シャドーイングを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、
前記サンプリングフットプリントのサンプリング方向のピクセルごとの指定を適用するステップをさらに具えたことを特徴とする請求項1記載の方法。 - 少なくとも1つのパラメータを前記指定するステップは、
レイキャスト(ray−cast)ボリュームサンプリングを適用するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、前記レイキャストボリュームサンプリングは、ボリュームをスライスして視線方向に比較的直交なポリゴンにするステップを含み、
前記サンプリングフットプリントの前記サンプリング方向を指定するステップをさらに具え、前記テクスチャサンプリングを行うステップは、前記指定されたサンプリング方向を反復して適用するステップを含むことを特徴とする請求項1記載の方法。 - 投射された光線が現行のzバッファと交差したとき、および飽和が生じたときのどちらかを検出するステップをさらに具えたことを特徴とする請求項15記載の方法。
- 少なくとも1つのパラメータを前記指定するステップは、
従来のスライススタイルまたはスプラットスタイルのボリュームレンダリングと組み合わせて自己シャドーイングを伴うボリュームレンダリングを適用するサンプリングフットプリントの少なくとも1つのパラメータを指定するステップを含み、
前記サンプリングフットプリントのサンプリング方向の頂点ごとの指定を適用するステップをさらに具えたことを特徴とする請求項1記載の方法。 - 前記指定するステップは、アプリケーションプログラミングインターフェース(API)構成要素を介して前記サンプリングフットプリントの方向ベクトルを指定するステップを含むことを特徴とする請求項1記載の方法。
- コンピュータによって、請求項1ないし18のいずれかに記載の方法を実行可能なプログラムを有するコンピュータ読取り可能な記録媒体。
- 制御可能なテクスチャサンプリングを提供するための装置であって、
(u,v)座標を有するテクスチャマップのテクスチャサンプリングに関連して利用されるサンプリングフットプリントの少なくとも1つのパラメータを指定する手段と、
前記パラメータは、u方向でのサンプリング間隔を示すΔu値と、v方向でのサンプリング間隔を示すΔv値と、サンプリング地形内での最大のサンプリング高さを示すΔw値とを有し、
前記指定する手段は、
サンプリング方向を決定するための前記パラメータによって定義される向きおよびステップサイズを有するサンプリング方向ベクトルを設定する手段を含み、
前記サンプリングフットプリントの前記指定されたパラメータに従って前記テクスチャマップのテクスチャサンプリングを行う手段と
を具え、
前記テクスチャサンプリングを行う手段は、
前記最大のサンプリング高さを示すΔw値に対応した前記サンプリング地形の範囲内で、前記設定されたサンプリング方向ベクトルの前記パラメータの指定又は変更を繰り返して実行することによって、前記サンプリング地形内での最大のサンプリング高さに制限されたサンプリング領域を決定する手段を含むことを特徴とする装置。 - 前記指定する手段は、
(1)前記少なくとも1つの標準パラメータに関する少なくとも1つのオフセット値を指定することによって少なくとも1つの標準のパラメータを変更する手段、および(2)少なくとも1つの標準のパラメータを少なくとも1つの置換パラメータで置き換える手段の少なくともどちらかを含むことを特徴とする請求項20記載の装置。 - 前記変更する手段は、
前記オフセット値と前記標準のパラメータを加算する手段、前記オフセット値と前記標準のパラメータを乗算する手段、前記オフセット値と前記標準のパラメータのどちらかを指数として適用する手段、前記オフセット値と前記標準のパラメータを減算する手段、および前記標準のパラメータおよび前記オフセット値に基づいて事前定義された数学的関数を実行する手段のうち少なくとも1つを含むことを特徴とする請求項21記載の装置。 - 前記サンプリングフットプリントは、
ポイントサンプリングプロセス、バイリニアフィルタリングプロセス、MIPマッピングプロセス、異方性フィルタリングプロセス、およびアンチエイリアシングプロセスのうち少なくとも1つからのサンプリングフットプリントであることを特徴とする請求項20記載の装置。 - 前記指定する手段は、前記テクスチャサンプリングに関連して頂点ごとおよびピクセルごとの少なくともどちらかで、前記少なくとも1つのパラメータを指定する手段を含むことを特徴とする請求項20記載の装置。
- 前記テクスチャサンプリングを反復して適用する手段をさらに含むことを特徴とする請求項24記載の装置。
- 前記サンプリングフットプリントは、異方性フィルタリングサンプリングフットプリントであることを特徴とする請求項20記載の装置。
- 前記少なくとも1つのパラメータは、異方性フィルタカーネルサンプルの方向と間隔の少なくともどちらかを含むことを特徴とする請求項26記載の装置。
- 前記指定されたパラメータに従う前記テクスチャマップの前記テクスチャサンプリングを行う手段は、
前記テクスチャサンプリングからもたらされるピクセル空間の少なくとも1つの視覚的効果を通知し、前記少なくとも1つの視覚的効果は、ブラーリング(blurring)効果、ブロッキーネス(blockiness)効果、テクスチャスイミング(swimming)効果、ピクセルポッピング(popping)効果、時間的エイリアシング効果、テクスチャシマリング(shimmering)効果、テクスチャクローリング(crawling)効果、およびストリーキング効果のうち少なくとも1つを含むことを特徴とする請求項20記載の装置。 - 前記指定されたパラメータに従う前記テクスチャマップの前記テクスチャサンプリングを行う手段は、
三角形表面にテクスチャを与えて、ライティング(lighting)効果、バンプ(bump)マッピング効果、ブラーリング効果、反射ブラーリング効果、フレネル(Fresnel)ブラーリング効果、マーブリング(marbling)効果、ムービングウォータ(moving water)効果、線形フォギング(fogging)効果、指数的フォギング効果、範囲ベースのフォギング効果、透明効果、半透明効果、曲面効果、シャープシャドーイング(sharp shadowing)効果、ファジー(fuzzy)シャドーイング効果、およびボリュームテクスチャリング効果のうち少なくとも1つを実現することを特徴とする請求項20記載の装置。 - 少なくとも1つのパラメータを前記指定する手段は、
モーションブラー(motion blur)を印加するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、
反復される頂点レベルのデータを適用して前記サンプリングフットプリントの方向ベクトルを制御する手段をさらに具えたことを特徴とする請求項20記載の装置。 - 少なくとも1つのパラメータを前記指定する手段は、
異方性表面反射、散乱ライティング、および鏡面ライティングの近似のうち少なくとも1つを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、
前記サンプリングフットプリントのサンプリング方向の頂点ごとの指定とピクセルごとの指定のどちらかを適用する手段をさらに具えたことを特徴とする請求項20記載の装置。 - 少なくとも1つのパラメータを前記指定する手段は、
表面自己シャドーイングを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、
前記サンプリングフットプリントのサンプリング方向のピクセルごとの指定を適用する手段をさらに具えたことを特徴とする請求項20記載の装置。 - 少なくとも1つのパラメータを前記指定する手段は、
表面自己シャドーイングを印加するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、
前記サンプリングフットプリントのサンプリング方向のピクセルごとの指定を適用する手段をさらに具えたことを特徴とする請求項20記載の装置。 - 少なくとも1つのパラメータを前記指定する手段は、
レイキャスト(ray−cast)ボリュームサンプリングを適用するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、前記レイキャストボリュームサンプリングは、ボリュームをスライスして視線方向に比較的直交なポリゴンにする手段を含み、
前記サンプリングフットプリントの前記サンプリング方向を指定する手段をさらに具え、前記テクスチャサンプリングを行う手段は、前記指定されたサンプリング方向を反復して適用する手段を含むことを特徴とする請求項20記載の装置。 - 投射された光線が現行のzバッファと交差したとき、および飽和が生じたときのどちらかを検出する手段をさらに具えたことを特徴とする請求項34記載の装置。
- 少なくとも1つのパラメータを前記指定する手段は、
従来のスライススタイルまたはスプラットスタイルのボリュームレンダリングと組み合わせて自己シャドーイングを伴うボリュームレンダリングを適用するサンプリングフットプリントの少なくとも1つのパラメータを指定する手段を含み、
前記サンプリングフットプリントのサンプリング方向の頂点ごとの指定を適用する手段をさらに具えたことを特徴とする請求項20記載の装置。 - 前記指定する手段は、アプリケーションプログラミングインターフェース(API)構成要素を介して前記サンプリングフットプリントの方向ベクトルを指定する手段を含むことを特徴とする請求項20記載の装置。
- 前記指定する手段および前記テクスチャサンプリングを行う手段は、アプリケーションプログラミングインターフェース(API)、ドライバコード、オペレーティングシステム、およびアプリケーションのうち少なくとも1つに含まれることを特徴とする請求項20記載の装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/176,811 US7324116B2 (en) | 2002-06-20 | 2002-06-20 | Systems and methods for providing controllable texture sampling |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004021979A JP2004021979A (ja) | 2004-01-22 |
JP4371355B2 true JP4371355B2 (ja) | 2009-11-25 |
Family
ID=22645931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003108480A Expired - Fee Related JP4371355B2 (ja) | 2002-06-20 | 2003-04-11 | 制御可能なテクスチャサンプリングを提供するためのシステムおよび方法 |
Country Status (25)
Country | Link |
---|---|
US (2) | US7324116B2 (ja) |
EP (1) | EP1376472B1 (ja) |
JP (1) | JP4371355B2 (ja) |
KR (1) | KR100863406B1 (ja) |
CN (1) | CN100401325C (ja) |
AT (1) | ATE352827T1 (ja) |
AU (1) | AU2003203677B2 (ja) |
BR (1) | BRPI0300983B1 (ja) |
CA (1) | CA2424705C (ja) |
CO (1) | CO5450258A1 (ja) |
DE (1) | DE60311359T2 (ja) |
DK (1) | DK1376472T3 (ja) |
ES (1) | ES2279910T3 (ja) |
HK (1) | HK1058420A1 (ja) |
IL (1) | IL155337A (ja) |
MX (1) | MXPA03004604A (ja) |
MY (1) | MY135056A (ja) |
NO (1) | NO326851B1 (ja) |
NZ (1) | NZ525338A (ja) |
PL (1) | PL360236A1 (ja) |
PT (1) | PT1376472E (ja) |
RU (1) | RU2324978C2 (ja) |
SG (1) | SG119180A1 (ja) |
TW (1) | TWI328200B (ja) |
ZA (1) | ZA200302810B (ja) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7324116B2 (en) * | 2002-06-20 | 2008-01-29 | Microsoft Corporation | Systems and methods for providing controllable texture sampling |
US20070152977A1 (en) * | 2005-12-30 | 2007-07-05 | Apple Computer, Inc. | Illuminated touchpad |
KR100823373B1 (ko) * | 2003-12-29 | 2008-04-17 | 인텔 코오퍼레이션 | 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 |
US20050140688A1 (en) * | 2003-12-29 | 2005-06-30 | Kim Pallister | Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems |
JP2007536668A (ja) | 2004-05-03 | 2007-12-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | グラフィックスをレンダリングするためのグラフィックスパイプライン |
US8149235B2 (en) * | 2004-08-20 | 2012-04-03 | Microsoft Corporation | System and method for upscaling low-resolution images |
JP3961524B2 (ja) * | 2004-09-21 | 2007-08-22 | 株式会社コナミデジタルエンタテインメント | 画像処理装置、画像処理方法、ならびに、プログラム |
US8189002B1 (en) * | 2004-10-29 | 2012-05-29 | PME IP Australia Pty, Ltd. | Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets |
US7158143B2 (en) * | 2004-12-03 | 2007-01-02 | Via Technologies, Inc. | Fast algorithm for anisotropic texture sampling |
JP4660254B2 (ja) * | 2005-04-08 | 2011-03-30 | 株式会社東芝 | 描画方法及び描画装置 |
JP5537026B2 (ja) * | 2005-04-29 | 2014-07-02 | コーニンクレッカ フィリップス エヌ ヴェ | マルチサーフェスモデリング |
US7499051B1 (en) | 2005-04-29 | 2009-03-03 | Adobe Systems Incorporated | GPU assisted 3D compositing |
US7463261B1 (en) * | 2005-04-29 | 2008-12-09 | Adobe Systems Incorporated | Three-dimensional image compositing on a GPU utilizing multiple transformations |
US20060250407A1 (en) * | 2005-05-05 | 2006-11-09 | Via Technologies, Inc. | Texture filtering using a programmable table filter to improve computer graphics performmance |
US7702131B2 (en) * | 2005-10-13 | 2010-04-20 | Fujifilm Corporation | Segmenting images and simulating motion blur using an image sequence |
US7262714B2 (en) * | 2005-12-01 | 2007-08-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interpolating encoder utilizing a frequency multiplier |
US7936359B2 (en) * | 2006-03-13 | 2011-05-03 | Intel Corporation | Reconfigurable floating point filter |
US7817161B2 (en) * | 2006-06-26 | 2010-10-19 | Microsoft Corporation | Texture synthesis using dimensionality-reduced appearance space |
US20080012874A1 (en) * | 2006-07-14 | 2008-01-17 | Spangler Steven J | Dynamic selection of high-performance pixel shader code based on check of restrictions |
US7659901B2 (en) * | 2006-07-24 | 2010-02-09 | Microsoft Corporation | Application program interface for programmable graphics pipeline |
US8970680B2 (en) * | 2006-08-01 | 2015-03-03 | Qualcomm Incorporated | Real-time capturing and generating stereo images and videos with a monoscopic low power mobile device |
US7764286B1 (en) * | 2006-11-01 | 2010-07-27 | Adobe Systems Incorporated | Creating shadow effects in a two-dimensional imaging space |
US7746352B2 (en) * | 2006-11-03 | 2010-06-29 | Nvidia Corporation | Deferred page faulting in virtual memory based sparse texture representations |
KR100818286B1 (ko) | 2006-11-23 | 2008-04-01 | 삼성전자주식회사 | 안개 효과를 고려하여 3차원 그래픽스 데이터를 렌더링하는방법 및 장치 |
WO2008066292A1 (en) * | 2006-12-02 | 2008-06-05 | Electronics And Telecommunications Research Institute | Apparatus for providing and transforming shader of 3d graphic system |
CA2683841A1 (en) * | 2007-04-04 | 2008-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Vector-based image processing |
CN101286225B (zh) * | 2007-04-11 | 2010-10-06 | 中国科学院自动化研究所 | 一种基于三维纹理硬件加速的海量数据体绘制方法 |
US7924290B2 (en) * | 2007-05-30 | 2011-04-12 | Nvidia Corporation | Method and system for processing texture samples with programmable offset positions |
US8134556B2 (en) * | 2007-05-30 | 2012-03-13 | Elsberg Nathan | Method and apparatus for real-time 3D viewer with ray trace on demand |
US8392529B2 (en) | 2007-08-27 | 2013-03-05 | Pme Ip Australia Pty Ltd | Fast file server methods and systems |
WO2009067680A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Automatic image segmentation methods and apparartus |
WO2009067675A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Client-server visualization system with hybrid data processing |
US10311541B2 (en) | 2007-11-23 | 2019-06-04 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
WO2011065929A1 (en) | 2007-11-23 | 2011-06-03 | Mercury Computer Systems, Inc. | Multi-user multi-gpu render server apparatus and methods |
US9904969B1 (en) | 2007-11-23 | 2018-02-27 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US8035641B1 (en) | 2007-11-28 | 2011-10-11 | Adobe Systems Incorporated | Fast depth of field simulation |
CN101751687B (zh) * | 2008-12-18 | 2014-03-05 | 超威半导体(上海)有限公司 | 确定纹理映射参数以定义代表像素投影足迹的方法和装置 |
US8624907B2 (en) * | 2009-06-26 | 2014-01-07 | Intel Corporation | Graphics analysis techniques |
US8581916B2 (en) * | 2009-06-26 | 2013-11-12 | Intel Corporation | Graphics analysis techniques |
US8289341B2 (en) * | 2009-06-29 | 2012-10-16 | Intel Corporation | Texture sampling |
US9082216B2 (en) * | 2009-07-01 | 2015-07-14 | Disney Enterprises, Inc. | System and method for filter kernel interpolation for seamless mipmap filtering |
US8687011B2 (en) * | 2010-10-28 | 2014-04-01 | Microsoft Corporation | Techniques for efficient sampling for image effects |
WO2012073363A1 (ja) * | 2010-12-02 | 2012-06-07 | デジタルプロセス株式会社 | 表示処理方法及び装置 |
RU2467395C1 (ru) * | 2011-07-11 | 2012-11-20 | Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации | Способ создания изображений трехмерных объектов для систем реального времени |
CN102254340B (zh) * | 2011-07-29 | 2013-01-09 | 北京麒麟网文化股份有限公司 | 一种基于gpu加速的环境光遮挡图像绘制方法及*** |
TWI470580B (zh) * | 2011-09-01 | 2015-01-21 | Univ Nat Taiwan | 無資料庫之紋理合成的超解析度系統及方法 |
US9286122B2 (en) * | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9378587B2 (en) * | 2012-06-27 | 2016-06-28 | Landmark Graphics Corporation | Systems and methods for creating a three-dimensional texture atlas |
US11183292B2 (en) | 2013-03-15 | 2021-11-23 | PME IP Pty Ltd | Method and system for rule-based anonymized display and data export |
US8976190B1 (en) | 2013-03-15 | 2015-03-10 | Pme Ip Australia Pty Ltd | Method and system for rule based display of sets of images |
US10070839B2 (en) | 2013-03-15 | 2018-09-11 | PME IP Pty Ltd | Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images |
US9183666B2 (en) * | 2013-03-15 | 2015-11-10 | Google Inc. | System and method for overlaying two-dimensional map data on a three-dimensional scene |
US9509802B1 (en) | 2013-03-15 | 2016-11-29 | PME IP Pty Ltd | Method and system FPOR transferring data to improve responsiveness when sending large data sets |
US10152820B2 (en) * | 2013-03-15 | 2018-12-11 | Intel Corporation | Texture address mode discarding filter taps |
US20140267273A1 (en) * | 2013-03-15 | 2014-09-18 | Janne Kontkanen | System and method for overlaying two-dimensional map elements over terrain geometry |
US10540803B2 (en) | 2013-03-15 | 2020-01-21 | PME IP Pty Ltd | Method and system for rule-based display of sets of images |
US9286712B2 (en) | 2013-03-15 | 2016-03-15 | Google Inc. | System and method for approximating cartographic projections by linear transformation |
US11244495B2 (en) | 2013-03-15 | 2022-02-08 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
US9355490B2 (en) | 2013-11-14 | 2016-05-31 | Intel Corporation | Minimum-maximum filtering of graphical texture data |
US9367948B2 (en) | 2013-11-14 | 2016-06-14 | Intel Corporation | Flexible filter logic for multi-mode filtering of graphical texture data |
US9355489B2 (en) | 2013-11-14 | 2016-05-31 | Intel Corporation | Land grid array socket for electro-optical modules |
GB2525636B (en) * | 2014-04-30 | 2020-08-19 | Geomerics Ltd | Graphics processing systems |
US20150379664A1 (en) * | 2014-06-27 | 2015-12-31 | Kalyan K. Bhiravabhatla | Accelerated single plane clipping of polygons in graphics processing |
US9704272B2 (en) * | 2014-11-21 | 2017-07-11 | Microsoft Technology Licensing, Llc | Motion blur using cached texture space blur |
US9779134B2 (en) * | 2014-12-26 | 2017-10-03 | Business Objects Software Ltd. | System and method of data wrangling |
JP6482283B2 (ja) * | 2015-01-13 | 2019-03-13 | 三菱プレシジョン株式会社 | 三次元映像生成装置およびキューブマップ生成方法 |
US11599672B2 (en) | 2015-07-31 | 2023-03-07 | PME IP Pty Ltd | Method and apparatus for anonymized display and data export |
US9984478B2 (en) | 2015-07-28 | 2018-05-29 | PME IP Pty Ltd | Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images |
TWI550416B (zh) * | 2015-08-18 | 2016-09-21 | 國立交通大學 | 利用高維度子空間產生取樣之方法 |
KR20170034727A (ko) | 2015-09-21 | 2017-03-29 | 삼성전자주식회사 | 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치 |
US10521517B2 (en) | 2016-02-10 | 2019-12-31 | Autodesk, Inc. | Designing objects using lattice structure optimization |
CN106023292B (zh) * | 2016-05-20 | 2018-11-06 | 浙江大学 | 一种基于数学函数的实时的大理石体纹理生成方法 |
CN108346178A (zh) | 2017-01-23 | 2018-07-31 | 微软技术许可有限责任公司 | 混合现实对象呈现 |
US10388061B2 (en) | 2017-02-22 | 2019-08-20 | Microsoft Technology Licensing, Llc | Generation of lighting data for a three-dimensional entity |
US11270502B2 (en) | 2017-08-22 | 2022-03-08 | Alibaba Group Holding Limited | Method and apparatus for image processing of three-dimensional model maps |
US10909679B2 (en) | 2017-09-24 | 2021-02-02 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
CN110570494A (zh) * | 2018-06-05 | 2019-12-13 | 艾司科软件有限公司 | 用于各向异性地修改文本属性以符合分辨率极限的方法和设备 |
CN108955897B (zh) * | 2018-08-13 | 2019-11-01 | 成都森川科技股份有限公司 | 运动货运列车测温还原方法 |
GB2583154B (en) * | 2019-10-17 | 2021-04-28 | Imagination Tech Ltd | Texture filtering |
US11158110B1 (en) * | 2021-01-06 | 2021-10-26 | Arm Limited | Graphics texture mapping |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63213079A (ja) | 1987-02-28 | 1988-09-05 | Nippon Telegr & Teleph Corp <Ntt> | 画像生成装置 |
GB2245805A (en) | 1990-06-29 | 1992-01-08 | Philips Electronic Associated | Generating an anti-aliased image |
US5307451A (en) * | 1992-05-12 | 1994-04-26 | Apple Computer, Inc. | Method and apparatus for generating and manipulating graphical data for display on a computer output device |
US5550960A (en) * | 1993-08-02 | 1996-08-27 | Sun Microsystems, Inc. | Method and apparatus for performing dynamic texture mapping for complex surfaces |
US5651104A (en) * | 1995-04-25 | 1997-07-22 | Evans & Sutherland Computer Corporation | Computer graphics system and process for adaptive supersampling |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
JPH09245179A (ja) * | 1996-03-08 | 1997-09-19 | Mitsubishi Electric Corp | コンピュータグラフィックス装置 |
US5877771A (en) * | 1996-07-12 | 1999-03-02 | Silicon Graphics, Inc. | Method and apparatus for supersampling based on the local rate of change in texture |
US5990903A (en) * | 1997-02-03 | 1999-11-23 | Micron Technologies, Inc. | Method and apparatus for performing chroma key, transparency and fog operations |
KR100603161B1 (ko) * | 1997-04-12 | 2006-12-13 | 소니 가부시끼 가이샤 | 편집시스템및편집방법 |
KR100603173B1 (ko) * | 1997-04-12 | 2006-12-15 | 소니 가부시끼 가이샤 | 편집장치및편집방법 |
GB9716251D0 (en) | 1997-08-01 | 1997-10-08 | Philips Electronics Nv | Attribute interpolation in 3d graphics |
US6300960B1 (en) * | 1997-08-04 | 2001-10-09 | Pixar Animation Studios | Realistic surface simulation in computer animation |
US6037949A (en) * | 1997-08-04 | 2000-03-14 | Pixar Animation Studios | Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation |
US6097397A (en) | 1997-11-20 | 2000-08-01 | Real 3D, Inc. | Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system |
JP2000155845A (ja) | 1998-05-29 | 2000-06-06 | Mitsubishi Electronics America Inc | 記憶装置、デ―タフォ―マッタ、デ―タにアクセスする方法、デ―タの領域をクリアする方法、デ―タを圧縮する方法、デ―タをフォ―マット化する方法、グラフィックスシステムおよびグラフィックスシステムを動作させる方法 |
EP1114400A4 (en) | 1998-07-16 | 2006-06-14 | Univ New York State Res Found | PROCESS AND ADVICE ON REAL-TIME VOLUME PROCESSING AND UNIVERSAL 3D PRESENTATION |
US6600487B1 (en) * | 1998-07-22 | 2003-07-29 | Silicon Graphics, Inc. | Method and apparatus for representing, manipulating and rendering solid shapes using volumetric primitives |
US6292193B1 (en) * | 1998-07-30 | 2001-09-18 | Compaq Computer Corporation | Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel |
GB9921777D0 (en) | 1999-09-16 | 1999-11-17 | Koninkl Philips Electronics Nv | Method and apparatus for handling translucency in 3d graphics |
JP3367509B2 (ja) | 1999-12-16 | 2003-01-14 | 株式会社セガ | 画像生成方法及びこれを用いた画像生成装置 |
EP1264281A4 (en) * | 2000-02-25 | 2007-07-11 | Univ New York State Res Found | ARRANGEMENT AND METHOD FOR PROCESSING AND PLAYING A VOLUME |
US6580425B1 (en) * | 2000-02-28 | 2003-06-17 | Mitsubishi Electric Research Laboratories, Inc. | Hierarchical data structures for surface elements |
US6509902B1 (en) * | 2000-02-28 | 2003-01-21 | Mitsubishi Electric Research Laboratories, Inc. | Texture filtering for surface elements |
US6426755B1 (en) * | 2000-05-16 | 2002-07-30 | Sun Microsystems, Inc. | Graphics system using sample tags for blur |
JP2002032779A (ja) | 2000-07-19 | 2002-01-31 | Sony Corp | データ処理装置及びデータ処理方法、並びに記憶媒体 |
US6664962B1 (en) * | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Shadow mapping in a low cost graphics system |
US6664971B1 (en) * | 2000-08-25 | 2003-12-16 | Microsoft Corporation | Method, system, and computer program product for anisotropic filtering and applications thereof |
KR100393086B1 (ko) * | 2001-05-15 | 2003-07-31 | 한국과학기술원 | 서브 텍셀 수준의 면적 점유비를 이용한 이방성 텍스춰필터링 방법 및 장치 |
US7324116B2 (en) * | 2002-06-20 | 2008-01-29 | Microsoft Corporation | Systems and methods for providing controllable texture sampling |
-
2002
- 2002-06-20 US US10/176,811 patent/US7324116B2/en not_active Expired - Fee Related
-
2003
- 2003-04-07 EP EP03007903A patent/EP1376472B1/en not_active Expired - Lifetime
- 2003-04-07 PT PT03007903T patent/PT1376472E/pt unknown
- 2003-04-07 ES ES03007903T patent/ES2279910T3/es not_active Expired - Lifetime
- 2003-04-07 BR BRPI0300983A patent/BRPI0300983B1/pt not_active IP Right Cessation
- 2003-04-07 CA CA2424705A patent/CA2424705C/en not_active Expired - Fee Related
- 2003-04-07 DE DE60311359T patent/DE60311359T2/de not_active Expired - Lifetime
- 2003-04-07 NO NO20031557A patent/NO326851B1/no not_active IP Right Cessation
- 2003-04-07 AT AT03007903T patent/ATE352827T1/de active
- 2003-04-07 DK DK03007903T patent/DK1376472T3/da active
- 2003-04-10 SG SG200302087A patent/SG119180A1/en unknown
- 2003-04-10 ZA ZA200302810A patent/ZA200302810B/xx unknown
- 2003-04-10 IL IL155337A patent/IL155337A/en active IP Right Grant
- 2003-04-10 CO CO03030413A patent/CO5450258A1/es not_active Application Discontinuation
- 2003-04-10 CN CNB031105602A patent/CN100401325C/zh not_active Expired - Fee Related
- 2003-04-10 MY MYPI20031329A patent/MY135056A/en unknown
- 2003-04-11 JP JP2003108480A patent/JP4371355B2/ja not_active Expired - Fee Related
- 2003-04-11 AU AU2003203677A patent/AU2003203677B2/en not_active Ceased
- 2003-04-11 RU RU2003110510/09A patent/RU2324978C2/ru not_active IP Right Cessation
- 2003-04-14 TW TW092108585A patent/TWI328200B/zh not_active IP Right Cessation
- 2003-04-14 KR KR1020030023297A patent/KR100863406B1/ko active IP Right Grant
- 2003-04-15 NZ NZ525338A patent/NZ525338A/en not_active IP Right Cessation
- 2003-05-20 PL PL03360236A patent/PL360236A1/xx not_active Application Discontinuation
- 2003-05-23 MX MXPA03004604A patent/MXPA03004604A/es active IP Right Grant
-
2004
- 2004-02-16 HK HK04101099A patent/HK1058420A1/xx not_active IP Right Cessation
-
2007
- 2007-11-09 US US11/938,113 patent/US7719544B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4371355B2 (ja) | 制御可能なテクスチャサンプリングを提供するためのシステムおよび方法 | |
JP4583720B2 (ja) | グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法 | |
Navarro et al. | Motion blur rendering: State of the art | |
US6943805B2 (en) | Systems and methods for providing image rendering using variable rate source sampling | |
JP4977712B2 (ja) | ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法 | |
US20040001645A1 (en) | Systems and methods for providing forward mapping with visibility for and resolution of accumulated samples | |
Yang et al. | Geometry‐aware framebuffer level of detail | |
US11804008B2 (en) | Systems and methods of texture super sampling for low-rate shading | |
Zhang et al. | Indirect illumination with efficient monte carlo integration and denoising | |
WO2022164651A1 (en) | Systems and methods of texture super sampling for low-rate shading | |
Kesten | Evaluating Different Spatial Anti Aliasing Techniques | |
Dubla et al. | Adaptive Interleaved Sampling for Interactive High‐Fidelity Rendering | |
Fahlén | Illumination for Real-Time Rendering of Large Architectural Environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090706 |
|
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: 20090731 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090803 |
|
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: 20090828 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120911 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4371355 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: 20130911 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |