JP2007213621A - 3d像のテクスチャ処理及び陰影付け方法 - Google Patents

3d像のテクスチャ処理及び陰影付け方法 Download PDF

Info

Publication number
JP2007213621A
JP2007213621A JP2007140603A JP2007140603A JP2007213621A JP 2007213621 A JP2007213621 A JP 2007213621A JP 2007140603 A JP2007140603 A JP 2007140603A JP 2007140603 A JP2007140603 A JP 2007140603A JP 2007213621 A JP2007213621 A JP 2007213621A
Authority
JP
Japan
Prior art keywords
texture
pixel
data
image data
mip map
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.)
Pending
Application number
JP2007140603A
Other languages
English (en)
Inventor
Simon James Fenney
ジェームズ フェニー シモン
Mark Edward Dunn
エドワード ダン マーク
Ian James Overliese
ジェームズ オーヴァーリーズ イアン
Peter David Leaback
ディヴィッド リーバック ピーター
Hossein Yassaie
ヤーセイ ホッセイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of JP2007213621A publication Critical patent/JP2007213621A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

【課題】スクリーンに表示するように三次元像をテクスチャ処理及び陰影付けする方法を提供する。
【解決手段】三次元像は、スクリーンの各画素領域(ピクセル)の位置と、そのピクセルに関連した像データとを含むデータを最初に受け取ることによりスクリーン上に表示するようにテクスチャ処理される。テクスチャ像データは、像データと、そのテクスチャ像データがピクセル上にマップされる適切な位置とに基づいてメモリ手段から検索される。同じ関連像データを共有するピクセルの数が決定され、そして1つのピクセル増分に対応するピクセル上のテクスチャデータのマッピングの増分変化も決定される。同じ像データを隣接ピクセルとして共有する各ピクセルの場合は、その隣接ピクセルについて既に導出されているテクスチャ像データが、テクスチャ像データの増分変化と結合されて、そのピクセルのためのテクスチャ像データが導出される。
【選択図】図4

Description

本発明は、スクリーンに表示するために3D像をテクスチャ処理及び陰影付けする方法に係る。
テクスチャ処理されそして陰影付けされたリアルタイムの3D像を発生するために商業用システムによって最も一般的に使用される方法は、Zバッファシステムを使用するものである。これは、ソフトウェア又はハードウェアのいずれかで実施するための最も簡単な可視表面アルゴリズムの1つであり、シリコングラフィックス、イベンツ&サザーランド、及びヒューレットパッカードのような会社で使用されている。
これは、カラー値が記憶されるフレームバッファを入手できるだけでなく、各ピクセルごとにz値が記憶される同じ入力数のZバッファも入力できることが必要である。多角形、通常は三角形が、任意の順序でフレームバッファにレンダリングされる。走査−変換の間に、多角形の点がバッファに既にある点よりも視聴者から離れない場合に、新たな点のテクスチャ処理及び陰影付けされたカラーが評価されて、z値が古い値に置き換えられる。予めの分類は不要であり、オブジェクト−オブジェクトの比較も不要である。
「テクスチャマッピング」という用語は、ピクセルの2Dアレーをピクセルの別の2Dアレーに変換するプロセスを指す。この変換は全く任意であるが、ここでは、遠近マッピングを考える。遠近マッピングは、実際には、ピクセルの2Dアレーを取り上げ、それらを回転して3Dに変換し、そしてそれらを表示のためのz−n平面に投射する。
テクスチャマッピングは、コンピュータグラフィックにおいて、実物の表面細部の模擬を試みるのに使用される。遠近マッピングを用いると、画(例えば、木の表面)を3D物体(例えば、テーブル)上に配置することができる。その結果として、テーブルは見掛けが木のようになる。
遠近マッピングの式は、次の通りである。
u=(ax+by+c)/(px+qy+r)
v=(dx+ey+f)/(px+qy+r)
u及びvは、テクスチャスペースにおける2D座標であり、
x及びyは、スクリーンスペースにおける2D座標であり、そして
a、b、c、d、e及びfは、マッピングプロセスに使用される係数である。
サンプリング率の半分より上の周波数をもつ信号をサンプリングすると、エイリアシングを引き起こす。テクスチャマッピングは、エイリアシングを引き起こし易い再サンプリングプロセスである。エイリアシングを生じないテクスチャマッピングされた像を形成するために、テクスチャスペースの像をマッピングのサンプリング率の半分までローパスフィルタしなければならない。この状態に対する複雑さは、スクリーンスペース内の位置に基づいてサンプリング率が変化することである。
像を正しくフィルタするために、大量の処理を必要とする。数学的に簡単な演算で正しいフィルタ動作を近似する方法は多数ある。最も簡単な方法は、MIPマッピングであり、MIPは、MULTIM IMPARVOの省略形である。
MIPマッピングは、メモリに記憶されたテクスチャマップをフィルタしそして半分の解像度に減少する前処理段階である。これは、得られる像のサイズが1ピクセルになるまで繰り返される(これは、テクスチャが方形で、2の累乗であると仮定する)。図1は、煉瓦のテクスチャの例を128x128の解像度及びそれに関連した低いMIPマップレベルで示している。
MIPマップは、像のピラミッドとして考えることができる。MIPマップは3つの変数u、v及びDを介してアクセスされる。変数u及びvは、アンチエリアシングする必要のあるテクスチャスペースにおけるピクセルの座標である。変数Dは、フィルタされたそのピクセルがいかに必要とされるか、即ちピラミッドがいかに高いかの尺度である。値D=1は、全解像度の像が使用されることを意味する。値D=2は、半分の解像度の像が使用されることを意味し、等々となる。Dの値が2の累乗でないときには、2つの最も近いMIPマップレベルを混合したものが、良く知られたように線型補間を用いて計算される。
理想的に、Dは、テクスチャスペースへと変換されるときにスクリーンピクセルがカバーする面積の平方根である。不都合なことに、これは、ピクセルごとのベースで計算するには非常に経費がかかる。
P.S.ヘクバート氏(Comm ACM 18(6)、1975年6月)はDに対し次の近似式を用いることを示唆している。
2 =MAX(du2 /dx)+(dv2 /dy)、
(du2 /dy)+(dv2 /dy)
この方法は、理想的なものよりは遙に簡単であるが、依然として平方根を必要とすると共に、ピクセル当たり2つの付加的なマッピングを必要とする。
陰影付け(シェーディング)は、コンピュータグラフィックに使用される用語で、特定のスクリーン位置における面のカラーを評価するプロセスの一部分を指す。面が陰影付けされる場合には、その面と光源がいかに相互作用するかをモデリングするのに、面の位置、向き及び特徴が使用される。
コンピュータで形成される像の現実感は、この照明モデルの質によって大きく左右される。不都合なことに、精度のよい照明モデルは、リアルタイムのレンダリングシステムに使用するのに高価であり過ぎる。それ故、照明計算において近似を用いて妥協を図る必要がある。
最も一般的な近似の形態は、材料の艶消し成分から反射される光を模擬する拡散又はランバートシェーディングである。これは、図2に示されており、次の式で表される。
LS(cosθ) (cosθ)≧0の場合
I(L、S、θ)=
0 (cosθ)<0の場合
図2は、目又はカメラから発生され(特定のシーンピクセルを通過する)そして表面の所与の点Pに当たる光線を示している。又、Pにおいて表面に垂直な直角のベクトル及び光源からPへの光線も示されている。
上記式によれば、Pにおける拡散照明の輝度(又はカラー)Iは、光の輝度Lと、表面の拡散反射率Sと、光線と法線との角度θのコサインとの積である。
この計算は、表面全体に対して一定と仮定する(フラットシェーディングとして知られている)か、又は曲面を模擬するように多角形の小面にわたって種々の仕方で補間することができる。例えば、ゴーラウドシェーディング(CommACM 18(60)、第311−17ページ、1971年)は、多角形の小面にわたる拡散カラーの線型補間である。
別の補間方法は、上記式において表面の法線を線型補間することである。この方法は、ブイ・スオング・フォンにより提案されている(Comm ACM 18(6)、1975年6月)。不都合なことに、この計算は、比較的経費がかかる。又、ビショップ及びウエイマによって効果的な近似が提案されており(コンピュータグラフィックス、20(4)、第103−6ページ、1975年)、これは、二次元のテイラー級数近似を使用している。これらの近似は、差の方程式を用いて効果的に評価することができる。僅かな前計算オーバーヘッドはさておき、cosθは、ピクセル当たり2つの加算のみを犠牲にして近似することができる。
模擬される次に最も一般的な照明特徴は、光沢のある又は鏡のようなハイライトである。これらは、シーンにおける光の反射である。鏡のようなハイライトは表面に反射の見掛けを与え、像の現実感を相当に改善する。これらも、ブイ・スオング・フォンにより述べられた方法によって最も一般的に近似され、これは、図3に示され、次の式で表される。
LS(cosθ)n (cosθ)≧0の場合
I(L、S、θ、n)=
0 (cosθ)<0の場合
図3は、目又はカメラから発生されて、特定のピクセルを通過し、所与の点Pにおいて表面に当たる光線を示している。この光線は、次いで、通常のミラー角度を用いて図示された方向に反射される。表面は完全に滑らかではないから、反射光線は、ある程度分散すると仮定され、これは表面の粗面さによって左右される。更に、図3は、明るい光線として見える光源からの光線も示している。反射方向が光線に近いほど、ハイライトは明るく見える。
上記式は、ハイライトIの輝度を、光の輝度Lと、表面の反射率Sと、反射方向と光の間の角度θと、表面の滑らかさnとの関数として示している。この関数は、反射方向が光線方向に近いほど(即ち、θが小さいほど)、ハイライトの輝度が最大に接近し、他の領域において減少することを意味する。nの値が大きいほど、減少は速くなり、ハイライトは小さくなり、ひいては、表面の見掛けは滑らかになる。最も効果的であるためには、この計算を累乗関数と称する必要がある。nの典型的な値は、1から1000の範囲である。
又、ビショップ及びウエイマ氏は、二次元テイラー級数近似(拡散シェーディング参照)を使用すると共に、累乗関数を計算するためにルックアップテーブルを使用した上記式の計算部分の提案している。
DRAMは、ダイナミックランダムアクセスメモリの頭文字である。「ページモード」DRAMの構造は、バンク、ページ及び位置に分割することができる。位置とは、アトミックアドレスメモリ素子である。多数の隣接する位置がページを作り上げ、そして多数のページがバンクを作り上げる。
装置が位置の内容を要求したときには、その位置を含むページがオープンされそしてデータがフェッチされる。次に要求されたページが同じページ内に入る場合には、データをフェッチするまでページを再オープンする必要はない。ページをオープンするのに要する時間は著しいものであるから、ページ内のランダムな位置を要求することは、ページ外のランダムな位置を要求するよりも相当に速いものとなる。「ページブレーク」という用語は、オープンしていないページ内の位置の内容をフェッチすることを指す。
多数のバンクを有するメモリ構成においては、一度に2つ以上のページをオープン状態に保持することができる。オープンしたページは異なるバンクになければならないという制約がある。
SRAMは、スタティックランダムアクセスメモリの頭文字である。SRAMの構造は、DRAMより簡単である。装置内のいかなる位置も単一のクロックサイクル内でフェッチすることができる。この簡単化の欠点は、シリコン上のメモリ素子の密度がDRAMよりも相当に低いことである。その結果、DRAMよりも相当に高価なものになる。
霧の雰囲気効果は、発生される3Dシーンに、ある次元の現実性を付加する。霧のように見えるシーンは単に有用ではなく、全ての屋外シーンは霧を必要とする。屋外シーンにおいて、遠くにある物体は、あまり刺激的な色をしていない。この効果は霧と同じであり、物体は距離と共に「灰色化」する。
霧の密度が変化しないと仮定すれば、光は、1m当たりある割合で減衰する。例えば、光が1m当たり1%で減衰する場合には、1mで光は0.99になる。2mでは、元の光の0.99*0.99=0.992 =0.98となる。「n」mでは、光は元の0.99n となる。
Zバッファシステムに関連したテクスチャ処理及び陰影付けに伴う問題は、各シーンピクセルがそのカラーを何回も評価されることである。これは、表面がランダムに処理され、目に最も近い面が、シーンの処理中に何回も変化するからである。
本発明の1つの特徴を用いた据え置きテクスチャ処理及び陰影付けアーキテクチャは、各スクリーンピクセルごとに単一のカラーを処理するだけで計算浪費を排除する。シーン内の各面には、独特の「タグ」が関連される。ピクセルを処理するために、隠れた面の除去が行われ、そのピクセルに最も近い面のタグが計算される。このタグの値を用いて、そのピクセルを正しくテクスチャ処理及び陰影付けする命令がフェッチされる。
ここに述べる実施形態は、据え置きテクスチャ処理及び陰影付けを必要とするシステムに特に適した非常に効率的で且つ最適なアーキテクチャを提供する。ここに述べるような複雑なシステムの場合には、複雑さ(ハードウェアサイズ/シリコン面積)と機能性との間の最良のバランスを入念に達成するよう確保することが非常に重要である。これは、主たるブロック間の相互作用と、各ブロックに使用される低レベル方法の細部とを含む全システムアーキテクチャーを選択時に入念に設計しなければならないことを意味する。特に重要なものは、次の通りである。
1.障害を確実に最小にするデータ編成及びメモリアーキテクチャ;
2.種々の機能ブロック、メモリキャッシュ要求及びそれらの相互作用に関するリソースの区分化;
3.数値の精度についての複雑さレベル、及び各ブロックに必要とされる機能を実施するのに用いる方法に使用される近似の程度;
4.ハードウェア/シリコン予算内での充分な融通性レベルのサポート。
ここに述べる実施形態は、上記の事柄についてバランスをとるために入念なアルゴリズム及びシュミレーション分析を使用する。
MIPマッピングを実行するシステムの率決定段階の1つは、メモリからテクスチャピクセルをフェッチすることである。帯域巾を広く保つために、ある設計では、高速SRAMを使用する。これは、所望の性能を与えることができるが、このような解決策のコストは、甚だしいものとなる。
本発明の好ましい実施形態において提案されたアーキテクチャーは、MIP−MAPデータをページモードDRAMに記憶する。最高のデータスループットを得るために、ページブレークの数を最小に減少しなければならない。MIPマップを記憶する最も簡単な方法は、Dレベルを隣接配置し、そしてマップ内でピクセルが走査順序で記憶されるようにすることである。MIPマップへのアクセスの性質により、この記憶方法は、ほぼアクセスごとにページをブレークする。メモリ構造は、ページブレークの数を最適なものにする。
上記のテクスチャ処理方程式の係数は、潜在的に境界のないものである。分かり易い境界が実施されても、必要とされる値は広い範囲に及ぶ。純粋な固定小数点演算を用いて方程式を解く場合は、高精度の乗算器及び除算器が必要となる。このようなハードウェアは、大型で低速であり、従って、システムの価格及び性能に影響を及ぼす。本発明の別の特徴による混合浮動及び固定小数点方法は、2つの利点を有する。第1に、乗算器及び除算器のサイズを縮小することができ、そして第2に、全浮動小数点演算を実施する複雑さが回避される。
テクスチャマッピング方程式は、ピクセル当たり1つの除算を必要とする。殆どのハードウェア除算アーキテクチャーは、次々に近似する方法を使用し、これは、所望の精度に対し繰り返しを必要とする。この繰り返しは、時間的に行わねばならない(多数のクロックサイクル)か、又はスペース的に行わねばならない(シリコン領域)。次々の近似を伴わずに所望の精度の逆数を評価するための本発明の更に別の特徴による新規な方法及びアーキテクチャーを以下に述べる。
変数「D」は、テクスチャ処理されたピクセルをいかにフィルタすることが必要かの尺度である。「D」に対するヘクバート氏の近似は、計算的にかなり経費がかかり、平方根を必要とすると共に、及びピクセル当たり2つの付加的なマッピングを必要とする。「D」を計算する更に簡単な新規な方法について以下に説明する。
テクスチャ処理及び陰影付けプロセスに使用されるパラメータをフェッチする場合には、ピクセルを処理できる率に影響が及ぶ。パラメータが必要とされる順序は、完全にランダムではなく、基準の位置を利用することができる。ここに述べるアーキテクチャーはパラメータキャッシュを含み、これは、全設計の性能を著しく改善する。
鏡のようなハイライトのサイズの輝度を制御するために、累乗関数が一般的に使用される。これは、実施に経費がかかり、大きなROMルックアップテーブルによる近似又は正確な累乗関数の明確な実施の2つが考えられる。ハイライトの方程式は近似に過ぎないので、この関数は、完全に正確な累乗関数である必要はない。
cosθを計算又は近似する方法が存在すると仮定すれば、累乗関数は単に次の計算となる。
n 、但し、0≦x≦1
又、nの粒度について微細な制御を行う必要はなく、若干の整数値で充分である。次の式に注目されたい。
(1−y)2n ∝(1−2y)2n-1
yが小さいときには、次の近似を使用し、xが上記範囲内のときに、xを累乗nまで上昇させる。
n ≒(1−max(1、(1−x)、2k ))2
但し、kは、(log2 n)−1の整数部分である。値kは、表面特性の一部分として値nに効果的に置き代わる。
2つの減算の計算は、比較的安価である。ある値に2進表示で2k を乗算することは、単にk個の場所だけ左にシフトすることであり、最大値の計算も平凡な演算である。平方演算は、値それ自身の乗算である。
この方法は、ハードウェア及びファームウェアの両方の実施形態に適用可能である。
シーンを霧の状態にするときに減衰係数を計算するには、霧の濃度を、物体と観察者との間の距離の累乗まで上昇させる必要がある。この関数を近似する効率的な方法は、以下に説明する。
本発明の種々の特徴は、特許請求の範囲に規定する。以下、添付図面を参照して本発明の好ましい実施形態を詳細に説明する。
図4は、システムを通る主なデータの流れを示す図である。システムへの入力は、本出願人の英国特許出願第9414834.3号に開示されたシステムで発生できる形式の「x、y」座標、タグ(Tag)及びある任意の「ピクセル特定データ」である。入力ピクセルデータは、「走査順序」又は「タイル順序」で受け取られる。走査及びタイル順序は、図5及び6に示されている。
「タイル順序」でデータを受け取る利点は、「走査順序」の場合よりも、像のローカルピクセルが互いに接近して送信されることである。基準の位置は、パラメータキャッシュの性能を改善する。
上記したTagは、シーンにおける各々の潜在的に見える面に関連した独特の識別子である。
「ピクセル特性データ」は、システムの外部で評価されたピクセルの属性である。これらの属性は、ピクセルカラーの評価に使用される。例えば、「三次元像の陰影付け(Shading Three-Demensional Image) 」と題する特許出願(出願第9414834.3号)に開示されたシステムでは、各ピクセルに、影が投じられるかどうか記述するデータが関連される。この情報は、ピクセルカラーを評価するときに加味することができる。
ピクセルTagは、パラメータメモリ2へのインデックスとして使用される。これは、各ピクセルにおいて見える面を定めるパラメータを記憶する。インデックスされた位置に記憶されるデータは、ピクセルカラーの評価に使用される(例えば、テクスチャマッピング方程式の係数)。
Tagが2つ以上のピクセル位置に現れるときには、そのTagに関連したデータが2回以上必要となる。というのは、目に見える同じ面を表示するのに多数のピクセルが使用されるからである。それ故、パラメータキャッシュ4をデータ経路に挿入することによりフェッチパラメータの性能を改善することができる。シュミレーションにおいては、2方セット連想キャッシュが最良の複雑さ/性能比を与えている。
テクスチャメモリ6は、MIPマップデータを含むDRAMの多数のバンクで構成される。入力ピクセルの「u、v」座標が評価されると、それに関連したテクセル(Texel)(テクスチャメモリの画素領域)がテクスチャメモリからフェッチされる。
テクスチャマッピング方程式は、2つの段即ち前計算段及び繰り返し段に分割される。前計算ユニット8では、パラメータがフェッチされ、次いで、「ax+by+c」、「dx+ey+f」及び「px+qy+r」が評価される。又、このユニットは、いかに多くの隣接ピクセルが同じTag値を共有するかをカウントする。このカウントは、上記の値と共に、テクスチャ繰り返しユニット10へ転送される。
テクスチャ繰り返しユニット10は、前計算ユニット8から値を取り上げて、2つの除算を実行し、「u、v」評価を完了する。前計算からのカウント値が0より大きい場合には、現在ピクセルと次のピクセルとの間の差(即ち、「a」、「d」及び「p」)が、前計算された値(「ax+by+c」、「dx+ey+f」及び「px+qy+r」)に加算され、そして2つの除算が繰り返される。この段階は、「カウント」で指定された回数だけ繰り返される。
テクスチャ繰り返しユニットからのカラーが計算されると、それが陰影付けユニット12へ通される。ピクセルTagにより指示されたパラメータは、単なるテクスチャ処理係数ではなく、それらは、陰影付けユニットにより最終ピクセルカラーを評価するのに使用する情報も含んでいる。
行われる陰影付け計算の最も簡単な形態は、一次及び二次関数陰影付けのような「x、y」スクリーン位置の関数である。
一次陰影付けは、次の式を計算する。
I(x、y)=T2 x+T1 y+T0
但し、Iは輝度(又はカラー)であり、x及びyはスクリーンピクセル座標であり、T2 、T1 、T0 は定数である。これは、テクスチャ処理と同様に前計算部分及び繰り返し部分に分割することができる。
出力は、範囲0...1内に存在するように制約される。
二次陰影付けは、関数の良好な近似を与えるが、実施のコストを高める。これは、次の式の関数によって実施される。
I(x、y)=T52 +T4 xy+T32 +T2 x+T1 y+T0
但し、Iは輝度(又はカラー)であり、x及びyはスクリーンピクセル座標であり、そしてT5 、T4 、T3 、T2 、T1 、T0 は定数である。これは、テクスチャ処理と同様に前計算部分及び繰り返し部分に分割することができる。
出力は、範囲0...1内に存在するように制約される。
二次関数は、前記の累乗関数を用いて、ある累乗まで高めることができる。
ピクセルは、テクスチャ処理され、陰影付けされた後に、フレーム記憶装置へ出力される。次いで、フレーム記憶装置からピクセルがフェッチされて表示装置へ送られる。
本発明の好ましい実施形態である非常に最適化されたアーキテクチャが図11に示されている。
システムへの入力データ20は、ピクセルデータではなくタグをその出力として記憶する隠れた面の除去及び深さの分類装置から導出される。このようなシステムは、英国特許出願第9414834.3号に開示されている。入力データは、シーンの各面に対して独特の表面タグと、システムへ入力されるピクセルの現在ブロックのスタートアドレスであるブロックx、yアドレスと、現在入力されているピクセルの深さである深さ(Z)値と、現在ピクセルが1つ以上の陰影ライトの影にあるかどうかを指示する陰影フラグとを備えている。
所与のブロックに対する表面タグは、<表面タグ:スパン長さ(パラメータが同じに保たれるところのピクセルの数)>としてコード化されてタグバッファ22に記憶されるラン長さである。他の入力パラメータは、ピクセルごとのベースで入力ブロックバッファ24に記憶される。
スパンは、パラメータキャッシュ26に対して比較される。ブロックはタイル状のフォーマットで入力され、従って、所与のシーンの垂直及び水平のコヒレンスがキャッシュにより利用できるのが望ましい。キャッシュの連想性の程度は、個々のシステムコスト/性能の兼ね合いについて残されている問題である。キャッシュがヒットする場合に、それに対応する表面パラメータリストは、前計算ユニット8へ直接通される。キャッシュがミスする場合には、パラメータリストがシステムメモリからフェッチされ、記憶されそして前計算ユニットへ送られる。キャッシュは、高いヒット率で設計されているので、システムメモリバスの帯域巾におけるその後のミスのペナルティは小さく、個別のパラメータメモリの必要性は否定される。
前計算ユニットは、ブロックスタートアドレス(ここからスピンスタートアドレスが導出される)を現在パラメータリストと共に取り上げ、パラメータリストに指定されたようにテクスチャ/陰影付け繰り返し装置28、30のいずれか又は全てに対する初期値を計算する。このようにする際に、上記の走査線テクスチャアドレス及び陰影付け輝度アルゴリズムを実施する。これは、典型的に、マイクロシーケンサによって制御される乗算アキュムレータのアレーより成る。
前計算バッファ32は、キャッシュミスのペナルティ及び前計算オーバーヘッドをテクスチャ及び陰影付け繰り返しプロセスにオーバーラップさせ、これにより、システムスループットを増加できるようにする。
テクスチャ繰り返し装置は、以下に述べるように、u、v及びMIPマップの「D」計算において双曲線補間を実行する。テクスチャ繰り返し装置の出力は、テクスチャメモリ6のアドレスの対より成り、2つの適切なMIPマップからのテクスチャ値がフェッチされてピクセル処理ユニット34へ送られる。
陰影付け繰り返し装置28、30の数は、陰影付け機能に必要とされる並列の程度によって左右される。例えば、2つのユニットは、滑らかに陰影付けされた面に対し全体的な照明輝度と影の光輝度とを同時に評価することができる。或いは又、これらユニットは、フォングの陰影付けされた面の拡散成分及び鏡状成分を並列に計算するのに使用できる。繰り返し装置は、以下のアルゴリズムを実施する。陰影付けパイプラインの出力は、1組の輝度値を含み、これらは、ピクセル処理ユニットへ送られる。
霧付与ユニット36は、入力ブロックバッファから記憶された深さ値を取り上げ、そして以下に述べるように、霧付与の擬似指数関数を解く。これらの値は、ピクセル処理ユニットへ送られ、そこで、計算されたピクセルカラーと霧カラーとの間を補間するのに使用される。
ピクセル処理ユニット32は、各スクリーンピクセルの最終的なR、G、Bカラー評価を行う。基本カラー又はテクスチャカラーが入力され、そして陰影ビットにより指示された陰影付け繰り返し装置からの全ての当該光源輝度値の条件和で乗算される。ハイライトのオフセットも加算される。次いで、ピクセルは霧が付与され、ブロック累積バッファ38へ転送される。
ここに述べるアーキテクチャは、多数の進歩した特徴をサポートすることができる。これは、英国特許出願第9414843.3号に開示されたような互換性のある隠れた面の除去及び深さ分類システムを必要とすることに注意されたい。
1)半透明の面:半透明のオブジェクトは、マルチパス技術を用いてレンダリングすることができる。先ず第1に、ブロックの不透明な面が処理され、そして上記のように累積バッファへ転送される。次いで、半透明の面が同様に処理されるが、全ての半透明の面は、それらのパラメータリスト又はテクスチャデータの一部分として「アルファ」成分を有し、これを用いて、現在ピクセルと、累積バッファに記憶された対応するバックグランドピクセルとの間で混合が行われる。全ての半透明ピクセルが処理されたときに、累積バッファの内容がフレームバッファから流出される。
2)アンチエリアシング:これは、マルチパス技術を用いて達成することができる。この方法においては、各ブロックがX及びYのサブピクセル増分で何回も通される。それにより得られるピクセルカラーは、ブロック累積バッファに累積される。パスが完了すると、ピクセルがパスの回数によって分割され、フレームバッファへ送られる。
3)動きのぼけ:これは、時間的にぼけさせるべきオブジェクトを過剰サンプリングし、次いで、上記のようにブロック累積バッファを用いてサンプルを平均化することにより達成される。
4)ソフト陰影:この効果は、マルチパス技術を用いて模擬することができ、陰影光源がパス間でジッタ状にされ、次いで、上記2)で述べたブロック累積バッファを用いてサンプルが平均化される。
5)サーチライト効果:これは、シーンの領域に光束を投射するトーチビーム又はヘッドライトの効果である。これは、陰影ボリューム及び光ボリュームの両方を表すことができるように陰影ビットを適当にセットすることにより実施できる。ソフトなエッジは、上記のように模擬することができる。
テクスチャマップを走査順序で記憶する問題及びそれにより生じるページブレークの問題は、上記で述べた。これについて、以下に、より詳細に説明する。
所与のシーンピクセルをテクスチャ処理するときには、必要なテクスチャピクセル又はテクセル、或いはMIPマッピングの場合には、スクリーンピクセルへとマップされる多数のテクセルを得るために、テクスチャマップをアクセスしなければならない。
メモリにおける正しいテクセルをアクセスするために、次の式の関数を計算して、テクセルの位置を見つけなければならない。
Texel address=Texture base address
+Offset Func(u、v)
Texture base addressは、テクスチャメモリにおけるMIP mapレベルの所与のテクスチャのスタート位置であり、そしてu、vは、計算された整数テクスチャ座標である。Offset Funcは、u、v座標をテクスチャマップのオフセットに対してマップする。
テクスチャが走査線順序で記憶される場合には、オフセット関数が次のようになる。
Offset Func(u、v)=u+size*v
但し、sizeは、u次元のテクスチャマップである。テクスチャマップの次元は2の累乗であるから、上記乗算は、2進表示での単なる左シフト動作であり、そして加算は、ビットの単なる連鎖である。それにより128x128テクスチャマップに対して得られる関数が図7に走査順序で示されている。(vx は、vのx番目のビットを指し、最下位ビットは0で番号付けされていることに注意されたい。)
これに伴う問題は、vインデックスが何らかの量だけ変化するや否や、それによりオフセットが急激に変化することである。これらの急激な変化は、非常に多数のページブレークを生じ、これは、テクスチャ処理性能に悪影響を及ぼす。一般に、テクスチャ座標は徐々に変化する。しかしながら、これらはu及び/又はv方向に同等に変化する傾向がある。
テクスチャマップを構成する更に効率的な方法は、u及びvインデックスビットをインターリーブすることである。最下位ビットにv0 を有する1つのこのような方法が、最適な関数のもとで図7に示されている。(Uでスタートすることもできる。)
この構成は、多数の隣接ピクセル(u及びvの両方向に隣接する)をテクスチャメモリにおいて比較的接近して保持し、それ故、ページブレークを減少する。図8は、テクスチャマップの左上の角を示している。各ピクセルの番号は、ピクセルが記憶されるオフセットを示している。
この構造は、フラクタルとして最も良好に説明される。このパターンは、それ自身で同様に回転された「Z」であり、即ちジグザグがピクセルレベルでスタートし、ピクセルのグループが更に大きくなるのと共に続けられる。
MIPマッピングの要求に伴い更に別の問題が生じる。MIPマッピングのプロセスは、通常、各スクリーンピクセルの計算のたびにMIPマップの2つの隣接レベルをアクセスする必要がある。MIPマップレベルが隣接して記憶される場合には、2つのレベルからのピクセルフェッチが、1つのDRAMページ内に留まるにはあまりに離れ過ぎ、従って、各ピクセルアクセスにおいてページブレークが生じる。
このオーバーヘッドを回避するには、DRAMバンクを使用する必要がある。多数のバンクを有するメモリ構成では、一度に2つ以上のページをオープン状態に保持することができる。オープンしたページは異なるバンクになければならないという制約がある。それ故、連続するMIPマップレベルが個別のバンクに記憶される場合には、各ピクセルフェッチのたびにページブレークが生じない。
以下の説明においては、次のようなネーミング規定を使用する。MIPマップレベルは0から番号付けされ、0は1x1解像度マップを指し、1は2x2マップを指し、等々となる。図9は、全ての奇数番号のMIPマップレベルを1つのバンクにおける隣接ブロックとして示し、そして全ての偶数レベルを別のバンクにおける隣接ブロックとして示している。
この構成は、更なるMIPマップテクスチャをメモリに追加するときに問題を生じさせる。バンクYにおけるメモリ要求は、バンクXのほぼ4倍である。バンクが同じサイズであるときには、バンクYは、バンクXよりかなり前にいっぱいになる。この問題は、奇数MIPマップレベルが記憶されるバンクをトグルすることにより回避できる。不都合なことに、この構成は、奇数及び偶数のデータブロックに対して個別のベースアドレスを必要とする。
更に優れた解決策は、図10に示すように、MIPマップの対をインターリーブすることである。テクスチャAは、バンクXのベースアドレスに最低解像度のマップ(1x1)を有する。次のマップ(2x2)は、バンクYの連続アドレスにある。テクスチャBは、バンクYのベースアドレスに1x1マップを有し、そしてバンクXの連続アドレスに2x2マップを有する。
上記のテクスチャマッピング方程式は、テクスチャ処理される各スクリーンピクセルごとに、6つの乗算と、6つの加算と、2つの除算とを必要とする。必要な計算を減少するために、差の式が使用される。
入力ピクセル流は、走査順序で送られるので、同じテクスチャ処理関数を共有するピクセルの水平方向スパンがある。X次元における数1の差の式は、そのスパン内の必要な計算を減少する。
Figure 2007213621
スパンのスタートは、完全な計算を必要とするが、その後のピクセルは、3つの加算と、2つの除算しか必要としない。
テクスチャマッピング計算に対するアーキテクチャーは、2つのユニット即ち前計算ユニット及び繰り返しユニットに分割される。前計算ユニットは、ax+by+c、dx+ey+f及びpx+qy+rを評価する。繰り返しユニットは、「a」、「d」及び「p」の除算及び加算を実行する。
テクスチャの異なる領域における演算精度の目に見える効果を詳細に検査した後に、混合浮動及び固定小数点方法が最も適当であると判断された。
係数「p」、「q」及び「r」は整数であり、従って、「px+qy+r」の評価は、整数乗算及び整数加算しか必要としない。
係数「a」、「b」、「c」、「d」、「e」及び「f」は、単一のべき指数2を共有し、これは、他のテクスチャ処理係数と共に記憶される。「ax+by+c」及び「dx+ey+f」の評価は、「px+qy+r」の評価と同じであるが、べき指数係数も除算ユニットへ送られる。
除算は、浮動小数点で行われる。評価される項「ax+by+c」、「dx+ey+f」及び「px+qy+r」は、仮数及びべき指数2を伴う浮動小数点数へと換算される。除算の結果は、アドレス発生に用いるための整数へと換算される。
現在の設計は、16ビットの係数と、14ビットの逆数の仮数とを使用する。
2つの除算は、単一の逆数化及び2つの乗算によって行われる。逆数化ユニットへの入力は、0.5ないし0.9999の固定小数点数であり、出力は、2ないし1の範囲である。
この関数を解く最も適した方法は、圧縮ルックアップテーブルによるものである。関数は、14ビットまでの精度であることが必要とされる。これは、0.5が0x2000(16進)として表され、0.9999が0x3fffであることを意味する。データを完全に非圧縮状態で記憶するためには、各々14ビットの8192の位置が必要である(14KB)。逆数の最上位ビットは、常に1であるから除去することができる。これは、記憶量を各々13ビットの8192の位置(13KB)まで減少する。
データを圧縮する方法は、逆数の差を記憶することである。オペランドが0.707より大きい場合には、逆数は1又は0だけ変化する。それ故、これらの差は、1ビットの記憶しか必要としない。0.707より小さければ、逆数は、2又は1だけ変化し、これも1ビットで記憶できる。この圧縮方法は、必要なメモリを1.375KBまで減少する。以下のテーブルは、幾つかの逆数とそれらの差を示す。
オペランド 逆数
0x3FFF 0x2000 -
0x3FFE 0x2001 1
0x3FFD 0x2001 0
0x3FFC 0x2002 1
0x3FFB 0x2002 0
0x3FFA 0x2003 1
0x3FF9 0x2003 0
0x3FF8 0x2004 1
0x3FF7 0x2004 0
データを圧縮解除するために、差の加算が行われる。例えば、0x3FFBの逆数を計算するために、0x3FFFないし0x3FFBに対する差のビットが加算され、次いで、0x2000(1+0+1+0+0x2000≒0x2002)に加算される。オペランドが0.707より下がったときは、差が2又は1となる。これらの差は、単一ビットとして記憶されるが、差を加算するときには2及び1として解釈される。
この圧縮/圧縮解除方法は、非常に多数の加算を必要とするので、少数のクロックサイクルで行うことは不可能である。若干効率の悪い圧縮方法は、加算の数を大巾に減少することができる。32ごとの逆数値が、介在する31の数字の差と共にいっぱいに記憶される。以下のテーブルは、このデータの最初の幾つかのエントリーを示す。
オペランド 逆数 介在する差
0x3FFF 0x2000 1010101010101010101010101010101
0x3FDF 0x2010 1010101010101010101010101010101
0x3FFF 0x2020 1010101010101010101010101010101
例えば、0x3FDAの逆数を見つけるために、オペランドは、先ず、それに関連した全逆数をもつ最も近い数(0x3FDF)に丸められる。これらの値の差は、加算されるべき差の数(0x2010+1+0+1+0+1=0x2013)である。
ここに提案する方法は、一連の基本値及びオフセットを記憶する。nビットの到来するオペランドは、次のように2つの部分において2つの個別の番号として考えられる。
a.番号Kと称する最上位ビット、及び
b.番号Lと称する最下位ビット。
基本値は、KをROMアドレスとして用いてROMから読み取られ、そしてオフセットは、同じアドレスにおいて別のROM(「デルタROM」と称する)から読み取られる。
次いで、この方法は、デルタROMからのデータの最初のLビットに生じる1の数をカウントし、これは、この基本値からのオフセットを与え、逆数に到達するためにはこのオフセットを基本値に加えなければならない。オフセット値が上記ケース1に対応する場合には、次のようになる。
(i)オフセット=(デルタROMの最初のLビットにおける1の数の和)。
上記のケース2に対応する場合には、次のようになる。
(ii)オフセット=(デルタROMの最初のLビットにおける1の数の和+L)。この第2のケースは、1又は2を表すデルタROMからの値を効果的に補正するが、それらは、2進で「0」又は「1」として表される。
ハードウェアの構成が図13に示されている。px+qy+rの値(「pqr積」として示された)は、1.0ないし2.0の値に正規化される(40)。仮数は、上記のように、2つの部分、即ち最上位部分及び最下位部分において考えられる。最上位部分は、ROM42、44をアクセスするアドレスとして使用される。
最下位部分は、マスク46を発生するのに使用され、これは、デルタROM44からの値と論理的にアンドされる(48)。これは、デルタROMから最初のLビットを分離し、それらをカウントできるようにする(50)。ユニットから出て来るカウントされた1の数は、52Lをこれに加算することにより計算される。次いで、√2の元の数を比較する比較器によって正しいオフセットが選択され、式(i)又は(ii)から適切な結果が選択される。
このオフセット値は、次いで、「メインROM」からの基本値に加えられ(56)、「pqr積」の逆数が与えられる。
この図は、ax+by+c(「abc積」)によって与えられる逆数を乗算し(58)そして正規化解除する(60)ことにより、次の数2の式をいかに行うかを示している。
Figure 2007213621
Vは、dx+ey+f(「def積」)を用いて同様に計算される。
「D」を計算する計算経費を回避するために、精度は低いが効率の良い方法は次の数3である。
Figure 2007213621
「pz+qy+r」はテクスチャマッピング方程式の下半分である。「n」は、レンダリングの前に評価されて他のテクスチャ処理パラメータと共に記憶される定数である。「n」を計算する方法は多数あり、例えば、次の数4がある。
Figure 2007213621
「a」、「b」、「c」、「d」、「e」、「f」、「p」、「q」及び「r」は、テクスチャマッピング係数である。
上記の数4は、ピクセル座標(0、0)においてヘクベルトの近似を使用して「D」を評価し、次いで、数3の式をその値に等しくする。これは理想的なものではない。というのは、「D」の最良の近似は、テクスチャ処理面が見えるところでなければならないからである。それ故、良好な方法は、数3の式を、見える面のピクセル座標においてヘックバートの近似に等しくすることである。
図11に示した累乗関数近似のハードウェア実施について説明する。これは、固定小数点表示で表された0≦X≦2の範囲の値Xと、小さな正の係数Kを入力として受け取り、そして固定小数点の結果を再び0≦X≦2の範囲で出力する。
ビットXの数(即ち、図の点Aにおける関数への入力)は、ハイライトの所要濃度によって左右されるが、通常は、典型的に、約16ビットである。この説明においては、これがmである。
kのビット数は、通常、3又は4であり、これも、ハイライトの所要濃度によって左右される。これは、nと称する。
結果のビット数は、所要の精度に基づいている。pビットの出力精度が必要とされると仮定する。
図11のプロセスは、次の通りである。
ステップ
1.固定小数点xが、最初に、1の固定小数点定数値から減算される。出力のビット数は、入力と同じに保たれ、即ちmビットである。
2.次いで、値は、k位置だけ左へシフトされる。点Bの巾は、m+(2π−1)ビットであって、0...2πの範囲の固定小数点数を表している。
3.次いで、値は、最大関数により1にクランプされる。これは、上位の2πビットを検査し、いずれかがセットされている場合には、その値を1以上にしなければならない。この例では、出力を固定点1.0にセットすることができる。上位の2πビットがどれもセットされていない場合には、出力値は入力と同じである。必要とされる結果の質に基づいて、点Cにおいて最大関数から出力されるビットの数は、p又はp+1ビットに限定される。選択されるビットは、下位mの上位p又はp+1ビットである。即ち、値の出力は、依然として、0≦x≦1の範囲の固定小数点数であるが、精度はp又はp+1に過ぎない。
4.必要とされる結果の質に基づいて、点Cにおいて最大関数から出力されるビットの数は、p又はp+1ビットに限定される。選択されるビットは、下位mの上位p又はp+1ビットである。即ち、値の出力は、依然として、0≦x≦1の範囲の固定小数点数であるが、精度はp又はp+1に過ぎない。
5.次いで、値は、固定小数点フォーマットにおいて1から減算される。精度のビット数は、依然として、p又はp+1に保たれる。
6.次いで、値は、それ自身を乗算することにより平方される。オペランドのサイズ、即ちp又はp+1ビットに基づいて、これは、p2 又は(p+1)2 ビットをもつ値を与える。いずれにせよ、上位のpビットが取り出され、0≦結果≦1の範囲の固定小数点の値を与える結果として出力される。
陰影付けハードウェアユニットは、標準的な差動技術である前計算及び繰り返しユニットに対してはテクスチャ処理ユニットと相違しない。フラット、一次関数、二次関数の2つの陰影付けモードについて以下に説明する。
以下の説明上、陰影付け関数をx及びyのピクセル位置について説明する。これらは、絶対的なスクリーンピクセル位置であるが、陰影付けされる面の中心に対する位置にするのが更に効果的である。このようにすると、以下に述べる種々のTn パラメータを表すのに必要な精度が相当に低減される。
フラットな陰影付けの場合には、前計算も繰り返しも行う必要がなく、定数値が直接使用されるか、又はテクスチャ処理パイプラインの結果により乗算されるかのいずれかである。
一次関数陰影付けは、次の式の前計算を必要とする。
I(x、y)=T2 x+T1 y+T0
従って、繰り返し部分は、T2 を繰り返し加算するだけでよい。というのは、次の通りだからである。
I(x+1、y)=T2 (x+1)+T1 y+T0
=I(x、y)+T2
二次関数陰影付けも、差の方程式を用いて行われる。二次関数陰影付けの式は次の通りである。
I(x、y)=T52 +T4 xy+T32 +T2 x+T1 y+T0
従って、ピクセル(x、y)とピクセル(x+1、y)との間のIの差は、次の式で与えられる。
ΔI(x、y)=I(x+1、y)−(x、y)
=T2 (x+1)2 −T22 +T4 (x+1)y−T4 xy
+T2 (x+1)−T2
=T2 (2x+1)+T4 y+T2
それ故、ピクセルxyにおける差の間の差は、次の通りである。
ΔΔI(x、y)=ΔI(x+1、y)−ΔI(x、y)
=T5 (2(x+1)+1)+T4 y+T2
−T5 (2x+1)−T4 y−T2
=T5 (2x+3)−T5 (2x+1)
=2T5
従って、前処理ユニットは、Iで始まる初期値と、初期デルタ値を計算することが必要である。即ち、
I(x、y)=T52 +T4 xy+T32 +T2 x+T1 y+T0
ΔI(x、y)=T5 (2x+1)+T4 y+T2
繰り返しを行うために、デルタ値を加算することにより次のI値が得られ、デルタの差において加算することにより新たなデルタが発生される。即ち、
I(x+1、y)=I(x、y)+ΔI(x、y)
ΔI(x+1、y)=ΔI(x、y)+ΔΔI(x、y)
=ΔI(x、y)+2T5
ピクセルごとに2回の加算を行うだけでよい。出力値は固定小数点であり、範囲0...1にクランプされる。ハイライトを計算する場合には、この値を上記のように累乗関数に入れることができる。
上記したように、霧付与の減衰係数は、次の式によって計算される。
A=dn
但し、Aは減衰係数であり、dは霧の濃度であり、そしてnはレンダリングされるオブジェクトと観察者との間の距離である。この式は、次のように書き直すことができる。
A=2n.log2(d)
これは、乗算及び2-x関数に対する演算を簡単化する。この関数をルックアップテーブルで具現化する場合には、必要とされる精度に対して甚だしく大規模なものとなり、従って、情報の圧縮方法が提案される。
関数2-xは、便利なことに、2の累乗ごとに「自己類似」である。0と1との間の2-xは,1と2との間の2-x*2と同じであり、且つ2と3との間の2-x*4と同じである。それ故、この関数は、2の分数累乗のルックアップテーブルと出力に対する演算シフト回路とによって具現化することができる。提案された関数への入力の一例を以下に示す。
ビット0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16 17 18 19 20 21 22 23 24 25・・・・
ビット0−6は、累乗テーブルへのインデックスである。
ビット7−9は、ルックアップの答えをシフトダウンするのに使用される。
10より上のビットがセットされた場合には、結果が0である。
上記特許出願「三次元像の陰影付け」(出願第9414834.3号)に開示されたアーキテクチャーは、レンダリングされるオブジェクトと観察者との間の距離の逆数に比例する数字を与えることができる。霧付与関数は、2log2(d)/n に変更しなければならない。不都合なことに、この関数を容易に評価する関数はない。この関数に対する受け入れられる近似は、A=1−2n.log2(d) である。
MIPマップデータの種々の解像度を示す図である。 拡散陰影付けの図である。 鏡状ハイライトの図である。 陰影付けに使用されるシステムアーキテクチャーのブロック図である。 メモリアドレスの従来の走査と、アドレスビットをインターリーブした走査とを比較するための図である。 メモリアドレスの従来の走査と、アドレスビットをインターリーブした走査とを比較するための図である。 ビットが実際にいかにインターリーブされるかを示す図である。 物理的なメモリ位置がインターリーブされたアドレスビットでアドレスされる順序を詳細に示す図である。 2つのメモリバンク内の1組のMIPマップデータの記憶を示す図である。 2つのメモリバンク内の2組のMIPマップデータの記憶を示す図である。 累乗霧付与関数を具現化するブロック図である。 図4の詳細な実施を示す図である。 除算演算を実行する改良された回路のブロック図である。
符号の説明
4 パラメータキャッシュ
6 テクスチャメモリ
8 前計算ユニット
10 テクスチャ繰り返しユニット
12 陰影付けユニット
20 入力データ
22 タグバッファ
26 パラメータキャッシュ
28、30 テクスチャ/陰影付け繰り返し装置
32 前計算バッファ
34 ピクセル処理ユニット
36 霧付与ユニット
38 ブロック累積バッファ

Claims (4)

  1. スクリーンに表示するために三次元像をテクスチャ処理する方法において、スクリーン上の各画素領域(ピクセル)の位置を含むデータを受け取り、各ピクセルについて隠面消去を実行してそのピクセルに最も近い面に関連したタグを生成し、選択したピクセルについて上記タグに基づいてメモリ手段からテクスチャ像データを検索し、上記タグに基づいて上記テクスチャ像データの適切な部分を上記ピクセルにマッピングし、同じタグを共有するピクセルの数を決定し、1スクリーンピクセル増加に対応する上記テクスチャデータのスクリーンピクセルへのマッピングにおける増分変化を決定し、そして隣接スクリーンピクセルと同じタグを共有する各スクリーンピクセルに対し、その隣接スクリーンピクセルに対して既に導出されたテクスチャ像データを、テクスチャ像データの上記増分変化と結合して、その隣接スクリーンピクセルに対するテクスチャ像データを導出するという段階を備えたことを特徴とする方法。
  2. 像をテクスチャ処理するのに使用するMIPマップデータをu及びvオフセットアドレスビットを用いてダイナミックランダムアクセスメモリ(DRAM)に記憶し、テクスチャMIPマップのu及びvアドレスビットをインターリーブし、これにより、物理的に隣接するMIPマップピクセルのテクスチャが同じDRAMページに入る最大の確率を有するようにする請求項1に記載の三次元像をテクスチャ処理する方法。
  3. 第1のMIPマップデータの連続する解像度レベルを2つのDRAMバンクに交互に記憶し、第1のDRAMバンクのメモリページは、所与のテクスチャに対するMIPマップデータの解像度の全ての偶数レベルを含み、そして第2のDRAMバンクのメモリページは、そのテクスチャに対するMIPマップデータの解像度の全ての奇数レベルを含むようにする請求項2に記載の方法。
  4. 第1のDRAMバンクのメモリページにおける第1のテクスチャに対する第1のMIPマップデータの解像度の偶数レベルは、第2のテクスチャに対する第2のMIPマップデータの解像度の奇数レベルとインターリーブされ、そして第2のDRAMバンクにおける第1のテクスチャに対する第1のMIPマップデータの奇数レベルは、第2のテクスチャに対する第2のMIPマップデータの偶数レベルとインターリーブされる請求項3に記載の方法。
JP2007140603A 1995-01-31 2007-05-28 3d像のテクスチャ処理及び陰影付け方法 Pending JP2007213621A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB9501832.1A GB9501832D0 (en) 1995-01-31 1995-01-31 Texturing and shading of 3-d images

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003389383A Division JP2004103039A (ja) 1995-01-31 2003-11-19 3d像のテクスチャ処理及び陰影付け方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008012767A Division JP4249796B2 (ja) 1995-01-31 2008-01-23 3d像のテクスチャ処理及び陰影付け方法

Publications (1)

Publication Number Publication Date
JP2007213621A true JP2007213621A (ja) 2007-08-23

Family

ID=10768838

Family Applications (4)

Application Number Title Priority Date Filing Date
JP01419296A Expired - Lifetime JP3510950B2 (ja) 1995-01-31 1996-01-30 3d像のテクスチャ処理及び陰影付け方法
JP2003389383A Pending JP2004103039A (ja) 1995-01-31 2003-11-19 3d像のテクスチャ処理及び陰影付け方法
JP2007140603A Pending JP2007213621A (ja) 1995-01-31 2007-05-28 3d像のテクスチャ処理及び陰影付け方法
JP2008012767A Expired - Lifetime JP4249796B2 (ja) 1995-01-31 2008-01-23 3d像のテクスチャ処理及び陰影付け方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP01419296A Expired - Lifetime JP3510950B2 (ja) 1995-01-31 1996-01-30 3d像のテクスチャ処理及び陰影付け方法
JP2003389383A Pending JP2004103039A (ja) 1995-01-31 2003-11-19 3d像のテクスチャ処理及び陰影付け方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008012767A Expired - Lifetime JP4249796B2 (ja) 1995-01-31 2008-01-23 3d像のテクスチャ処理及び陰影付け方法

Country Status (6)

Country Link
US (2) US6330000B1 (ja)
EP (1) EP0725366B1 (ja)
JP (4) JP3510950B2 (ja)
DE (1) DE69610341T2 (ja)
ES (1) ES2153077T3 (ja)
GB (2) GB9501832D0 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724561A (en) * 1995-11-03 1998-03-03 3Dfx Interactive, Incorporated System and method for efficiently determining a fog blend value in processing graphical images
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
JP2000115558A (ja) * 1998-10-08 2000-04-21 Mitsubishi Electric Corp 色特性記述装置および色管理装置および画像変換装置ならびに色補正方法
GB2343600B (en) * 1998-11-06 2003-03-12 Videologic Ltd Depth sorting for use in 3-dimensional computer shading and texturing systems
JP3687945B2 (ja) * 1998-12-11 2005-08-24 ソニー株式会社 画像処理装置およびその方法
US6417861B1 (en) * 1999-02-17 2002-07-09 Sun Microsystems, Inc. Graphics system with programmable sample positions
US6674922B1 (en) * 1999-03-26 2004-01-06 Canon Kabushiki Kaisha Image processing method, image processing apparatus, and storage medium
US7098925B1 (en) * 2000-03-10 2006-08-29 Intel Corporation Shading of images using texture
US20020012472A1 (en) * 2000-03-31 2002-01-31 Waterfall Andrew E. Method for visualization of time sequences of 3D optical fluorescence microscopy images
US6766281B1 (en) * 2000-05-12 2004-07-20 S3 Graphics Co., Ltd. Matched texture filter design for rendering multi-rate data samples
IL136430A0 (en) * 2000-05-29 2001-06-14 Zviaguina Natalia Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes
JP3527196B2 (ja) * 2000-11-16 2004-05-17 株式会社ソニー・コンピュータエンタテインメント テクスチャ描画方法、エンタテインメント装置および記録媒体
US6940504B1 (en) 2000-11-21 2005-09-06 Microsoft Corporation Rendering volumetric fog and other gaseous phenomena using an alpha channel
US7046243B1 (en) 2000-11-21 2006-05-16 Microsoft Corporation Rendering volumetric fog and other gaseous phenomena
CA2329104C (en) * 2000-12-20 2005-05-24 Sicon Video Corporation Method and apparatus for calculating a reciprocal
GB2372188B (en) 2001-02-08 2005-07-13 Imagination Tech Ltd Volume clipping in computer 3-D Graphics
US20030107572A1 (en) * 2001-07-02 2003-06-12 Smith Joshua Edward Method and apparatus for reducing the polygon count of a textured, three dimensional model of an object
US7007058B1 (en) * 2001-07-06 2006-02-28 Mercury Computer Systems, Inc. Methods and apparatus for binary division using look-up table
US20030081849A1 (en) * 2001-07-16 2003-05-01 Smith Joshua Edward Method and system for creating seamless textured three dimensional models of objects
US6753875B2 (en) * 2001-08-03 2004-06-22 Hewlett-Packard Development Company, L.P. System and method for rendering a texture map utilizing an illumination modulation value
US6781594B2 (en) * 2001-08-21 2004-08-24 Sony Computer Entertainment America Inc. Method for computing the intensity of specularly reflected light
EP1442390B1 (en) * 2001-10-10 2017-09-13 Sony Computer Entertainment America LLC System and method for environment mapping
GB0128888D0 (en) 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
GB2383248B (en) * 2001-12-14 2005-12-07 Imagination Tech Ltd 3-dimensional computer graphics system
US6847372B2 (en) * 2002-03-11 2005-01-25 Sun Microsystems, Inc. Magnified texture-mapped pixel performance in a single-pixel pipeline
DE10246122B4 (de) * 2002-10-01 2006-04-20 Audi Ag Verfahren und Vorrichtung zur Darstellung eines computermodellierten Gegenstands
WO2004047426A2 (en) 2002-11-15 2004-06-03 Esc Entertainment, A California Corporation Reality-based light environment for digital imaging in motion pictures
US7019744B2 (en) * 2003-04-30 2006-03-28 Pixar Method and apparatus for rendering of translucent objects using volumetric grids
US7443394B2 (en) * 2003-04-30 2008-10-28 Pixar Method and apparatus for rendering of complex translucent objects using multiple volumetric grids
US7864176B2 (en) * 2003-04-30 2011-01-04 Pixar Translucent object rendering methods and apparatus
US7859530B2 (en) * 2003-04-30 2010-12-28 Pixar Subsurface rendering methods and apparatus
US8133115B2 (en) 2003-10-22 2012-03-13 Sony Computer Entertainment America Llc System and method for recording and displaying a graphical path in a video game
JP4547906B2 (ja) * 2003-12-19 2010-09-22 ソニー株式会社 描画装置および描画方法、プログラム、並びに記録媒体
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8711155B2 (en) * 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8687010B1 (en) * 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
GB0411880D0 (en) * 2004-05-27 2004-06-30 Imagination Tech Ltd Method and apparatus for efficient evaluation of "table-based" mathematical functions
US20060071933A1 (en) 2004-10-06 2006-04-06 Sony Computer Entertainment Inc. Application binary interface for multi-pass shaders
KR20060116916A (ko) * 2005-05-11 2006-11-16 삼성전자주식회사 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법
US7636126B2 (en) 2005-06-22 2009-12-22 Sony Computer Entertainment Inc. Delay matching in audio/video systems
KR100648293B1 (ko) * 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법
US7965859B2 (en) 2006-05-04 2011-06-21 Sony Computer Entertainment Inc. Lighting control of a user environment via a display device
US7880746B2 (en) 2006-05-04 2011-02-01 Sony Computer Entertainment Inc. Bandwidth management through lighting control of a user environment via a display device
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8207980B2 (en) * 2007-05-01 2012-06-26 Vivante Corporation Coordinate computations for non-power of 2 texture maps
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
DE102008023269A1 (de) 2008-05-13 2009-11-19 Rheinmetall Waffe Munition Gmbh Optisches System bzw. Verfahren zur verbesserten Zielerkennung
GB2470611B (en) * 2009-06-25 2011-06-29 Tv One Ltd Apparatus and method for processing data
US10786736B2 (en) 2010-05-11 2020-09-29 Sony Interactive Entertainment LLC Placement of user information in a game space
US9342817B2 (en) 2011-07-07 2016-05-17 Sony Interactive Entertainment LLC Auto-creating groups for sharing photos
US9213639B2 (en) * 2012-09-25 2015-12-15 Teradata Us, Inc. Division of numerical values based on summations and memory mapping in computing systems
KR102066659B1 (ko) 2013-08-13 2020-01-15 삼성전자 주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템 및 이의 동작 방법
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
KR102651126B1 (ko) * 2016-11-28 2024-03-26 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
GB2560336B (en) * 2017-03-07 2020-05-06 Imagination Tech Ltd Address generators for verifying integrated circuit hardware designs for cache memory
JP2018114328A (ja) * 2018-03-30 2018-07-26 株式会社ユニバーサルエンターテインメント 遊技機
US10503473B1 (en) * 2018-05-30 2019-12-10 Apple Inc. Floating-point division alternative techniques
WO2020115520A1 (en) * 2018-12-02 2020-06-11 Playsight Interactive Ltd. Ball tracking in sport events
US11823318B2 (en) * 2021-06-04 2023-11-21 Nvidia Corporation Techniques for interleaving textures

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615013A (en) * 1983-08-02 1986-09-30 The Singer Company Method and apparatus for texture generation
EP0256455B1 (de) 1986-08-11 1991-05-02 Siemens Aktiengesellschaft Verfahren zur schnellen Division langer Operanden in Datenverarbeitungsanlagen und Schaltungsanordnung zur Durchführung des Verfahrens
US4823301A (en) * 1987-10-22 1989-04-18 Tektronix, Inc. Method and circuit for computing reciprocals
GB2240015A (en) 1990-01-15 1991-07-17 Philips Electronic Associated Texture memory addressing
GB2240017A (en) 1990-01-15 1991-07-17 Philips Electronic Associated New, interpolated texture values are fed back to texture memories
GB2240016A (en) 1990-01-15 1991-07-17 Philips Electronic Associated Texture memories store data at alternating levels of resolution
US5222205A (en) * 1990-03-16 1993-06-22 Hewlett-Packard Company Method for generating addresses to textured graphics primitives stored in rip maps
GB2245460B (en) * 1990-06-18 1994-04-06 Link Miles Ltd Apparatus for generating a visual display
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
US5490240A (en) 1993-07-09 1996-02-06 Silicon Graphics, Inc. System and method of generating interactive computer graphic images incorporating three dimensional textures
US5550960A (en) 1993-08-02 1996-08-27 Sun Microsystems, Inc. Method and apparatus for performing dynamic texture mapping for complex surfaces
CA2144914A1 (en) 1994-04-01 1995-10-02 Raymond L. Fitzgerald Computer graphics texture paging system with fragmentary mip map selection
US5745118A (en) 1995-06-06 1998-04-28 Hewlett-Packard Company 3D bypass for download of textures
US6016151A (en) 1997-09-12 2000-01-18 Neomagic Corp. 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation

Also Published As

Publication number Publication date
GB9501832D0 (en) 1995-03-22
EP0725366A3 (en) 1996-11-06
ES2153077T3 (es) 2001-02-16
JPH08255264A (ja) 1996-10-01
JP2004103039A (ja) 2004-04-02
DE69610341D1 (de) 2000-10-26
DE69610341T2 (de) 2001-04-05
GB9601965D0 (en) 1996-04-03
US6330000B1 (en) 2001-12-11
EP0725366A2 (en) 1996-08-07
EP0725366B1 (en) 2000-09-20
GB2297886B (en) 2000-02-02
JP4249796B2 (ja) 2009-04-08
GB2297886A (en) 1996-08-14
JP2008112468A (ja) 2008-05-15
JP3510950B2 (ja) 2004-03-29
US6313846B1 (en) 2001-11-06

Similar Documents

Publication Publication Date Title
JP4249796B2 (ja) 3d像のテクスチャ処理及び陰影付け方法
US7348977B2 (en) Subsurface scattering approximation methods and apparatus
US7233332B2 (en) Method and apparatus for rendering shadows
US5870097A (en) Method and system for improving shadowing in a graphics rendering system
US7167181B2 (en) Deferred shading graphics pipeline processor having advanced features
US5856829A (en) Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands
Kontkanen et al. Ambient occlusion fields
US5977977A (en) Method and system for multi-pass rendering
US6326964B1 (en) Method for sorting 3D object geometry among image chunks for rendering in a layered graphics rendering system
US6674430B1 (en) Apparatus and method for real-time volume processing and universal 3D rendering
US7808503B2 (en) Deferred shading graphics pipeline processor having advanced features
US6480205B1 (en) Method and apparatus for occlusion culling in graphics systems
CA2337530C (en) Apparatus and method for real-time volume processing and universal 3d rendering
Heidrich High Quality Shading and Lighting for Hardware Accelerated Rendering
US10600232B2 (en) Creating a ray differential by accessing a G-buffer
EP2057605A2 (en) System and methods for real-time rendering of deformable geometry with global illumination
US20090006046A1 (en) Real-Time Rendering of Light-Scattering Media
Batagelo et al. Real-time shadow generation using bsp trees and stencil buffers
Pajarola et al. DMesh: Fast depth-image meshing and warping
Nowrouzezahrai et al. Fast global illumination on dynamic height fields
US6677947B2 (en) Incremental frustum-cache acceleration of line integrals for volume rendering
Jansson Ambient Occlusion for Dynamic Objects and Procedural Environments
GB2338096A (en) Arithmetic division method
Szirmay-Kalos et al. Specular Effects With Rasterization
Chaudhari Real-time multiple refractions through deformable objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070723

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071023

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080728