説明

3次元画像のレンダリングにおける早期Zテスト方法およびシステム

【課題】タイルごとの3次元レンダリングにおいて、ユーザからは見えない3次元モデルの部分に対するラスタライズをタイル単位で省略可能にすることで、レンダリングに必要な演算を簡単化できる早期Zテスト方法およびシステムを提供する。
【解決手段】まず、画面を複数のタイルに分割する。次に、レンダリング対象の3次元モデルを構成する複数の三角形の中から一つを選択し、選択された三角形の最小Z値よりタイルZ値が小さい第1タイルを複数のタイルの中から選別する。続いて、第1タイルを除く残りのタイルにおいて、選択された三角形のレンダリングを行う。各三角形の最小Z値は好ましくは、その三角形の3つの頂点のZ値の中で最も小さい値に等しい。各タイルのタイルZ値は好ましくは、そのタイルを完全に含む三角形それぞれの最大Z値の中で最も小さい値に等しい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は3次元画像のレンダリングに関し、特に、隠面消去に利用される早期Zテスト方法およびシステムに関する。
【背景技術】
【0002】
近年、携帯電話、PDA、またはナビゲーションシステムなどのモバイル機器の高性能化に伴い、それらの機器の出力に3次元グラフィックが用いられる場合が増えている。3次元グラフィックは2次元グラフィックより表現力が高いので、例えば、操作画面のデザインの更なる多様化や、3次元画像のリアリティを利用した情報伝達力の更なる強化に適している。
【0003】
3次元グラフィックでは、まず、表現対象の3次元画像が、(モバイル機器等の)画面に表現されるべき仮想的な3次元空間の中にモデル化される(モデリング)。次に、各3次元モデルが、ユーザの視点からの位置に基づき、仮想的な3次元空間から2次元画面に投影され、得られた2次元画像が画面に再現される(レンダリング)。ここで、3次元モデルは一般にベクトルデータで表されている。従って、3次元モデルを2次元画面に投影する過程では、ベクトルデータが画面の各ピクセルの輝度データとZ値(そのピクセルに投影された3次元モデルの一点の、視点からの仮想的な距離)とに変換される(この変換処理をラスタライズと称する)。各ピクセルの輝度データとZ値とはフレームバッファに格納される。ここで、フレームバッファのうち、輝度データの格納部分をカラーバッファと称し、Z値の格納部分をZバッファと称する。
【0004】
3次元モデルが複数の三角形で表現されている場合、従来のレンダリングでは、まず、ラスタライズがそれらの三角形の全てについて行われ、その後、画面への描画が開始される。従って、カラーバッファとZバッファとのそれぞれのサイズが画面の解像度と同じでなければならない。そのように大きなサイズのフレームバッファを3次元グラフィックの処理回路と同じチップの内部に埋め込むことは決して容易ではない。それ故、従来のグラフィックシステムでは一般に、フレームバッファが外部メモリに設定されている。その場合、一つのピクセルについて輝度データとZ値とが決定されるごとに外部メモリがアクセスされる。ここで、外部メモリへのアクセスはチップ内部のメモリへのアクセスに比べて約10倍の電力を消耗する。特にモバイル機器では更なる省電力化が強く望まれているので、モバイル機器における3次元グラフィックシステムの利用では、外部メモリへのアクセスの効率化が大きな課題となっている。
【0005】
外部メモリへのアクセスを効率良く行うための技術としては、タイルごとの3次元画像のレンダリング方法が開発されている。その方法では、まず、画面が複数のタイルに分割される。次に、3次元モデルを表す三角形のいずれかと一部でも重なっているタイルが選択される。続いて、選択されたタイルごとにラスタライズが行われる。このとき、各ピクセルの輝度データとZ値とは一旦、3次元グラフィックシステムの処理回路が実装されたチップの内部に埋め込まれているメモリに保持される。ここで、そのメモリのサイズはタイル一枚当たりの解像度と等しければ良い。一枚のタイルに対するラスタライズが完了するごとに、そのメモリに保持されているデータがバーストモードで外部のフレームバッファに一挙に送信される。このように、外部メモリへのアクセス(書き込み)をタイル単位で行うことで、3次元グラフィックシステムの消費電力を更に低減できる。
【0006】
ラスタライズによって画面の同じ位置(ピクセル)に複数の輝度データが設定された場合、ユーザから見て画面のその位置で複数の三角形が重なっている。その場合、それらの三角形を画面に表示するとき、ユーザの視点に最も近い三角形の部分だけを画面に表示し、その部分に重なっている他の三角形の部分を隠さねばならない(隠面消去)。例えば図1に示されているように、仮想的な3次元空間に、ユーザの視点110から近い順に4つの三角形131〜134が存在しているときを想定する。第1三角形131はユーザの視点110に最も近いので、その全体が視点110から見える。第2三角形132の上の部分は第1三角形131によって隠されているので、第2三角形132の下の部分だけが視点110から見える。第3三角形133は第1三角形131および第2三角形132によって完全に隠されているので、第3三角形133は視点110からは見えない。第4三角形134は、他の三角形131〜133によって隠されていない上の部分だけが視点110から見える。
【0007】
このような隠面消去には、次のようなZテスト方法が利用される。まず、仮想的な3次元空間内での各三角形131〜134の視点110からの距離(深さ)をZ値として表わす。ここで、仮想的な3次元空間には一般に、画面に平行な方向にX軸とY軸とが設定され、画面と直交する方向にZ軸が設定される。その場合、Z値はZ軸方向の座標値を表す。図1にはZ軸が破線120で示されている。図1では、第1三角形131から第4三角形134の順にZ値が大きくなっている。次に、それらの三角形131〜134が重なっている画面の領域に含まれている各ピクセルのZ値を、そのピクセルに投影された各三角形131〜134のZ値のうち、最小のものに設定する。更に、各ピクセルの輝度データを、そのピクセルのZ値の示す三角形に基づいて決定する。こうして、各ピクセルの輝度データが、視点110から最も近い三角形に基づいて決定される。それにより、ユーザから見えるべきではない三角形の部分が画面には表示されない。
【発明の開示】
【発明が解決しようとする課題】
【0008】
レンダリング対象の3次元モデルを表すベクトルデータが全て2次元画面(又は、その中の一枚のタイル)の各ピクセルの輝度データに変換された後に、すなわち、レンダリング対象の3次元モデル全てのラスタライズが終わった後に、従来のZテスト方法は行われる。しかし、その場合、最終的には他の3次元モデル(三角形)に隠されて見えない3次元モデル(三角形)の部分に対してもラスタライズが行われる。それにより、グラフィック処理全体の演算量の更なる削減、及びそれによるグラフィック処理の更なる高速化が困難である。
【0009】
本発明は、複数の三角形で表現される3次元モデルをタイルごとにレンダリングする方法において、他の三角形によって隠されてユーザからは見えない三角形の部分に対するラスタライズをタイル単位で省略可能にすることで、レンダリングに必要な演算を更に簡単化し、それによる更なる省電力化及び更なる高速化を共に実現できる早期Zテスト方法およびシステムの提供を目的とする。
【課題を解決するための手段】
【0010】
本発明による早期Zテスト方法は、複数の三角形で表現される3次元画像のレンダリングを行うための方法であり、以下の段階を順に有する:画面を複数のタイルに分割する段階;複数の三角形の中から一つを選択し、選択された三角形の最小Z値よりタイルZ値が小さい第1タイルを複数のタイルの中から選別する段階;及び、第1タイルを除く残りのタイルにおいて、上記の選択された三角形のレンダリングを行う段階。ここで、各三角形の最小Z値は好ましくは、その三角形の3つの頂点のZ値の中で最も小さい値に等しい。一方、各タイルのタイルZ値は、そのタイルに含まれている各ピクセルに共通に与えられたZ値であり、好ましくは、そのタイルを完全に含む三角形それぞれの最大Z値の中で最も小さい値に等しい。
【0011】
本発明によるこの早期Zテスト方法は好ましくは、次のような早期Zテストシステムによって実行される。そのシステムは、画面を複数のタイルに分割するタイル分割部;複数の三角形の中から一つを選択し、選択された三角形の最小Z値よりタイルZ値が小さい第1タイルを選別するタイル選別部;及び、第1タイルを除く残りのタイルにおいて上記の選択された三角形のレンダリングを行うレンダリング実行部;を有する。このシステムは更に好ましくは、次のようなタイルZ値更新部を更に有する。タイルZ値更新部は、タイル選別部によって選択された三角形に完全に含まれる第2タイルを複数のタイルの中から選別し、第2タイルのタイルZ値より上記の選択された三角形の最大Z値が小さい場合、その第2タイルのタイルZ値を上記の選択された三角形の最大Z値に更新する。
【発明の効果】
【0012】
本発明による早期Zテスト方法では、各三角形のレンダリング(特にラスタライズ)の前に第1タイルが選別され、第1タイルについてはその三角形のレンダリングが省略される。それにより、レンダリングに必要な演算量が低減するので、レンダリングに伴う消費電力が削減され、かつレンダリングが高速化される。従って、本発明による早期Zテスト方法は特に、モバイル機器での利用や3次元グラフィックによる動画処理に適している。
【発明を実施するための最良の形態】
【0013】
以下、添付の図面に基づき、本発明の好適な実施の形態を詳細に説明する。
本発明の一実施形態による早期Zテスト方法は、複数の三角形で表現される3次元モデルをタイルごとにレンダリングを行う場合に、ユーザの視点からは他の三角形に隠されて見えない三角形の部分をタイル単位でレンダリングの対象から除くことを可能にする。例えば図2の(a)に示されているように、画面上で、第2三角形212と重なっているタイル213が第1三角形211に完全に含まれている場合、第2三角形212が第1三角形211の後ろに位置するときは、タイル213においては第2三角形212のレンダリングが省略される。タイル213に重なっている第2三角形212の部分は、それよりも前に存在する第1三角形211に隠されてユーザの視点からは見えないので、タイル213において第2三角形212のレンダリングが省略されても、画面に実際に表示される画像は影響を受けない。このように、実際には画面に表示されない三角形の部分をレンダリングの対象から予め排除することにより、レンダリングの作業効率を高めることができる。
【0014】
一方、図2の(b)に示されている画面では、第1三角形221にタイル223の一部のみが重なっている。すなわち、図2の(a)に示されているタイル213とは異なり、タイル223の全体が第1三角形221に含まれてはいない。その場合、第2三角形222が第1三角形221の後ろに位置するときでも、「タイル223に重なっている第2三角形222の部分がユーザの視点からは第1三角形221に隠されて見えない」という保証はない。実際、図2の(b)では、タイル223と重なっている第2三角形222の一部には、第1三角形221に隠されている部分と第1三角形221に隠されていない部分とがいずれも存在する。従って、画面に投影されたある三角形の内部に全体が含まれているタイルに限り、そのタイルに重なっている、その三角形より後に位置する他の三角形のレンダリングを省略することができる。
【0015】
図3に、本発明の一実施形態による早期Zテスト方法のフローチャートを示す。図3に示されているように、第1段階S301では、画面を複数のタイルに分割する。各タイルは好ましくは所定のサイズ及び所定の形状(更に好ましくは矩形)に統一されている。3次元モデルのレンダリングはタイルごとに行う。例えば、解像度640×480の画面を解像度32×32のタイルに分割する場合、20×15=300枚のタイルのそれぞれでレンダリングを行う。特にレンダリングの対象のサイズが画面より小さい場合、その対象が重なっているタイルについてのみ、その対象のレンダリングが行われれば十分である。その結果、画面全体でレンダリングを行う場合より、レンダリングに必要な演算量を大幅に節減できる。
【0016】
第2段階S302においては、まず、複数の三角形の中から一つを選択する。次に、複数のタイルの中から、選択された三角形の最小Z値よりタイルZ値が小さいタイル(以下、第1タイルという)を選別する。
ここで、三角形の最小Z値は、その三角形の3つの頂点のZ値のうち、最も小さなZ値に等しい。すなわち、三角形の3つの頂点のうち、ユーザの視点に最も近い頂点のZ値がその三角形の最小Z値として採用される。三角形は平面であり、その各辺はいずれも直線である。従って、三角形に含まれている各点のZ値は必ず、その三角形の最小Z値以上である。
【0017】
各タイルのタイルZ値は好ましくは、そのタイルを完全に含む三角形それぞれの最大Z値の中で最も小さい値に等しい。ここで、三角形の最大Z値は、その三角形の各頂点のZ値のうち最も大きい値に等しい。すなわち、ユーザの視点から最も遠い頂点のZ値がその三角形の最大Z値として採用される。三角形に含まれている各点のZ値は必ず、その三角形の最大Z値以下である。従って、各タイルのタイルZ値は、そのタイルを完全に含む各三角形に含まれているユーザの視点から最も遠い点の中で、ユーザの視点に最も近い点のZ値に等しい。あるタイルが、画面に投影されたある三角形に完全に含まれている場合、そのタイル内においては、その三角形の最大Z値より大きいZ値の点が、ユーザの視点からはその三角形に隠されて見えない。一方、画面上でそのタイルを完全に含む三角形が複数個存在する場合、そのタイル内では、最大Z値の最も小さい三角形の部分がユーザの視点に最も近い。従って、ユーザの視点からは他の三角形の部分がその三角形の部分に隠されて見えない。第1タイルでは、選択された三角形の最小Z値(すなわち、その三角形に含まれている点の中で、ユーザの視点に最も近い点のZ値)よりタイルZ値が小さい。それ故、第1タイルを完全に含む三角形の中に、選択された三角形を第1タイルの内部では隠す三角形が存在する。
【0018】
第2段階S302では好ましくは、各タイルのタイルZ値を次のように更新する。まず、選択された三角形(より正確には、それから画面に投影された三角形。以下、同様。)に完全に含まれているタイル(以下、第2タイルという)を選別する。その三角形に完全に含まれていないタイルでは、「その三角形が、その三角形の最大Z値より最大Z値が大きい他の三角形を隠している」という保証はないからである。次に、各第2タイルのタイルZ値を選択された三角形の最大Z値と比較する。そのタイルZ値がその最大Z値より大きい場合、そのタイルZ値をその最大Z値に更新する。
【0019】
第2タイルの選別では好ましくは、まず、ハーフプレーンエッジ関数を用い、各タイルのタイルノードの判別値を決定する。ここで、各タイルのタイルノードは好ましくは、そのタイルの頂点である。タイルノードの判別値は、画面に投影された三角形に対するそのタイルノードの位置を表す。好ましくは、各タイルノードの判別値は、第1判別値、第2判別値、および第3判別値を含む。第1判別値、第2判別値、および第3判別値はそれぞれ、三角形の第1辺、第2辺、および第3辺のそれぞれに対するハーフプレーンエッジ関数値の符号に基づいて決められる。好ましくは、ハーフプレーンエッジ関数値が正数である場合には各判別値が1に決められ、負数または0である場合には0に決められる。尚、この場合分けとは異なる場合分けが行われても良い。
【0020】
ハーフプレーンエッジ関数は、2次元画面上での直線と点との間の位置関係を表わす関数である。好ましくは、対象の直線の始点と終点との各座標を(x0、y0)、(x1、y1)とし、対象の点の座標を(x、y)とすると、ハーフプレーンエッジ関数値E(x、y)は次式によって定義される。
【0021】
E(x、y)=(x−x0)×Δy−(y−y0)×Δx。ここで、Δx=x1−x0、Δy=y1−y0。
【0022】
ハーフプレーンエッジ関数値E(x、y)は、点が直線の左側にある場合には負であり、直線の右側にある場合には正である。第2タイルの選別においては、2次元画面に投影された三角形の各辺が上記の直線として設定され、タイルノードが上記の点として設定される。ここで、ユーザの視点から見て、その三角形の周に沿って時計回りに回転する方向をその三角形の各辺の方向とし、その方向に基づいて各辺の始点と終点とを決める。尚、各辺の方向はその他にも変更可能である。しかし、三角形の内部に存在するタイルノードの第1判別値、第2判別値、および第3判別値に同じ値を持たせるには、三角形の各辺の方向が循環するように決められねばならない。
【0023】
第2タイルの選別では次に、各タイルのタイルノードの判別値を以下のように用い、「そのタイルが選択された三角形の内部に完全に含まれているかどうか」を確認する。図6に示されているように、その三角形の各辺の方向が時計回りに設定されている場合、各辺に対するハーフプレーンエッジ関数値は、三角形の内部610に含まれている点ではいずれも正である。一方、三角形の外部620、630、および640に含まれている点では、少なくともいずれか一つの辺に対するハーフプレーンエッジ関数値が負である。従って、あるタイルノードの第1判別値、第2判別値、および第3判別値がいずれも1である場合、対応するハーフプレーンエッジ関数値の符号がいずれも正であるので、「そのタイルノードは三角形の内部に含まれている」と判別される。更に、タイルノードが矩形状のタイルの4つの頂点である場合、全てのタイルノードが三角形の内部に含まれていれば、「そのタイルの全体がその三角形の内部に含まれている」と判別できる。
【0024】
尚、各タイルのタイルノードのハーフプレーンエッジ関数値を用いると、画面に投影されたある三角形と一部でも重なっているタイルを識別できる(タイルビニング(tile binning))。従って、第2タイルの選別段階で計算されたハーフプレーンエッジ関数値をタイルビニングにも利用することで、レンダリング全体での計算量を低減し、かつレンダリングの処理時間を短縮できる。
【0025】
第3段階S303においては、第2段階S302で選択された三角形のレンダリングを、第1タイルを除く残りのタイルでのみ行う。第1タイルではその三角形が他の三角形に隠されて見えないので、第1タイルではその三角形のレンダリングが行われなくても、画面に実際に表示される画像には影響がない。こうして、第1タイルでのレンダリングを省略することにより、選択された三角形のレンダリングをより効率よく行うことができる。
【0026】
尚、第1タイルとは異なるタイルでも、第2段階S302で選択された三角形の部分が他の三角形に隠されて見えないことがある。従って、従来のレンダリング方法と同様に、選択された三角形のレンダリングの終了時にZテストを行う必要がある。しかし、従来のレンダリング方法とは異なり、確実に除去可能なタイルが第1タイルとして予め除去されている。それ故、レンダリングの終了時のZテストに必要な演算量は従来のレンダリング方法での演算量より顕著に少ない。
【0027】
例えば、仮想的な3次元空間内に、図4に示されている、第1三角形410、第2三角形430、および第3三角形440しか存在しない場合、上記の方法では、それらのレンダリングを以下のように行う。
【0028】
まず、第1三角形410に対してタイルごとのレンダリングを、第2段階S302、第3段階S303の順で行う。第2段階S302では、第1三角形410と重なっているタイルをすべて選別し、選別された各タイルのタイルZ値を第1三角形410の最小Z値と比較する。ここで、レンダリング済みの三角形がまだないので、第3段階S303では、第2段階S302で選別されたすべてのタイルにおいて第1三角形410のレンダリングを行うべきである。従って、好ましくは、各タイルのタイルZ値の初期値がZ値の上限(すなわち、仮想的な3次元空間内でユーザの視点から最も遠い点のZ値)に設定されている。その他に、「まだ一度も更新されたことがない」という旨を示す特定の値が初期値として設定されていても良い。それにより、第2段階S302で選別されたすべてのタイルでタイルZ値が第1三角形410の最小Z値以上である。従って、第1三角形410については第1タイルが一枚も選別されない。それ故、第3段階S303では、第2段階S302で選別されたすべてのタイルで第1三角形410のレンダリングが行われる。
第2段階S302では更に、第1三角形410に完全に含まれている第2タイル群420が選別され、それらの各タイルZ値が第1三角形410の最大Z値に更新される。
【0029】
次に、第2三角形430に対してタイルごとのレンダリングを、第2段階S302、第3段階S303の順で行う。第2段階S302では、第2三角形430と重なっているタイルを選別し、それらのタイルZ値を第2三角形430の最小Z値と比較する。ここで、図4に示されているように、画面上では第2三角形430が第1三角形410の内部に完全に含まれている。従って、第2三角形430の最小Z値が第1三角形410の最大Z値より大きい場合、ユーザの視点からは第2三角形430は第1三角形410に隠されて見えない。実際、この場合、第3段階S303では第2三角形430のレンダリングが次のように省略される。第2段階S302で選別される、第2三角形430と重なっているタイルはいずれも、第1三角形410に対する第2タイル群420に含まれている。従って、それらのタイルのタイルZ値はいずれも第1三角形410の最大Z値と等しいので、第2三角形430の最小Z値より小さい。その結果、それらのタイルはいずれも第1タイルとして選別されるので、第3段階S303ではそれらのタイルにおける第2三角形430のレンダリングが省略される。
【0030】
最後に、第3三角形440に対してタイルごとのレンダリングを、第2段階S302、第3段階S303の順で行う。第2段階S302では、第3三角形440と重なっている7枚のタイルA〜Gを選別し、それらのタイルZ値を第3三角形440の最小Z値と比較する。ここで、図4に示されているように、画面上では第3三角形430の一部が第1三角形410に重なり、更に第1三角形410に対する第2タイル群420に含まれている3つのタイルA、B、Cに重なっている。それらのタイルA〜CではタイルZ値が更新されているが、残りのタイルD〜GではタイルZ値が初期値のままである。従って、第3三角形430の最小Z値が第1三角形410の最大Z値より大きい場合、第3三角形440の最小Z値よりタイルZ値が、前者のタイルA〜Cでは小さく、後者のタイルD〜Gでは大きい。その結果、第3段階S303では第3三角形430のレンダリングが、第2タイル群420に含まれているタイルA〜Cについては省略され、その他のタイルD〜Gについてのみ行われる。
【0031】
例えば図5に示されているように、4×4のタイルのマトリックスについて三角形510のレンダリングを行う場合は以下の通りである。ここで、図5では、マトリックスの縦横にタイルの行番号1〜4と列符号a〜dとが付記され、各タイルの中に各タイルのタイルZ値が示されている。更に、三角形510の最小Z値を5とする。
【0032】
第2段階S302では、まず、三角形510と重なっているタイルを選別する。これにより、2−c、2−d、3−b、3−c、3−d、4−b、4−c、4−dの8枚のタイルが選別される。次に、選別された各タイルのタイルZ値を三角形510の最小Z値と比較し、タイルZ値が三角形510の最小Z値より小さいタイルを第1タイルとして選別する。これにより、3枚のタイル3−b、3−c、4−bが第1タイルとして選別される。第1タイルでは、タイルZ値が三角形510の最小Z値より小さいので、三角形510が別の三角形に隠されて画面には表示されない。第3段階S303では、3枚の第1タイル3−b、3−c、4−bを除く残り5枚のタイル2−c、2−d、3−d、4−c、4−dに対してのみ三角形510のレンダリングを行う。こうして、ユーザの視点からは見えない部分を除いて効率よくレンダリングを行うことができる。
尚、「5枚のタイル2−c、2−d、3−d、4−c、4−dに重なっている三角形510の部分のいずれもが必ず画面に表示される」とは限らないので、レンダリングの終了時には、ピクセル単位のZテストを別に行うことが好ましい。
【0033】
以上のように、本発明の上記の実施形態による早期Zテスト方法では、ある三角形に完全に含まれているタイルでその三角形に隠されている別の三角形の部分のレンダリングがそのタイルについては省略される。それにより、レンダリングを効率よく行うことができる。
【0034】
本発明の上記の実施形態による早期Zテスト方法は好ましくは、図7に示されているシステムによって行われる。図7に示されているように、本発明の一実施形態による早期Zテストシステム701は、タイル分割部710、タイル選別部720、レンダリング実行部730、およびタイルZ値更新部740を備えている。ここで、各構成要素は、ソフトウェア、ハードウェア、または、それらの組み合わせのいずれによっても実現可能である。
【0035】
タイル分割部710は、上記の第1段階S301で画面を複数のタイルに分割する。
タイル選別部720は、上記の第2段階S302で、複数のタイルの中から、特定の三角形の最小Z値よりタイルZ値が小さいタイル(すなわち、第1タイル)を選別する。
レンダリング実行部730は、上記の第3段階S303で、タイル選別部720によって選別された第1タイルを除く残りのタイルにおいて、特定の三角形に対するレンダリングを行う。
タイルZ値更新部740は、上記の第2段階S302で、まず、複数のタイルの中から特定の三角形に完全に含まれているタイル(すなわち、第2タイル)を選別する。次に、各第2タイルのタイルZ値を選択された三角形の最大Z値と比較する。そのタイルZ値がその三角形の最大Z値より大きい場合、そのタイルZ値をその三角形の最大Z値に更新する。
【0036】
本発明の上記の実施形態による早期Zテスト方法は好ましくは、コンピュータにより所定のプログラムに従って実行される。更に好ましくは、コンピュータがそのプログラムに従い、図7に示されている各構成要素として機能する。そのプログラムは好ましくは、コンピュータ読み取り可能な記録媒体に保管されている。ここで、その記録媒体は、プログラム命令、データファイル、データ構造などを含む。更に、そのプログラムは、その全体が特別に設計されたものでも良く、当業者にとって公知なモジュール等の組み合わせから構成されたものであっても良い。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク(登録商標)、および磁気テープのような磁気媒体、CD−ROMやDVDのような光記録媒体、フロプティカルディスク(登録商標)のような光磁気記録媒体、並びに、ROM、RAM、フラッシュメモリなどのような半導体メモリが含まれる。プログラム命令の例としては、コンパイラによって生成される機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0037】
以上、本発明の好ましい実施形態を説明した。しかし、当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明の上記の実施形態を多様に修正し、又は変更可能であろう。従って、本発明の技術的範囲は上記の実施形態にのみ制限されるべきではなく、特許請求の範囲に基づき、上記の修正や変更を受けた実施形態をも含むように定められるべきである。
【図面の簡単な説明】
【0038】
【図1】仮想的な3次元空間内に配置された4つの三角形のZ軸方向での配置を示す模式図
【図2】レンダリング対象の2つの三角形とタイルとの間の、画面上での位置関係を例示する模式図
【図3】本発明の一実施形態による早期Zテスト方法のフローチャート
【図4】本発明の一実施形態による早期Zテスト方法において、画面に投射されたレンダリング対象の3つの三角形と、その画面にマトリックス状に配置されたタイルとの間の位置関係を示す模式図
【図5】本発明の一実施形態による早期Zテスト方法において、画面に投射されたレンダリング対象の別の三角形と、その画面にマトリックス状に配置されたタイルとの間の位置関係を示す模式図
【図6】本発明の一実施形態による早期Zテスト方法において、画面に投射された三角形の内外の領域別に、その三角形の各辺に対するハーフプレーンエッジ関数値の符号を示す模式図
【図7】本発明の一実施形態による早期Zテストシステムのブロック図
【符号の説明】
【0039】
701 早期Zテストシステム
710 タイル分割部
720 タイル選別部
730 レンダリング実行部
740 タイルZ値更新部

【特許請求の範囲】
【請求項1】
複数の三角形で表現される3次元画像のレンダリングを行うための方法であり、
画面を複数のタイルに分割する段階、
前記複数の三角形の中から一つを選択し、選択された三角形の最小Z値よりタイルZ値が小さい第1タイルを前記複数のタイルの中から選別する段階、及び、
前記第1タイルを除く残りのタイルにおいて前記選択された三角形のレンダリングを行う段階、
を有する早期Zテスト方法。
【請求項2】
各三角形の最小Z値が、その三角形の3つの頂点のZ値の中で最も小さい値に等しい、請求項1に記載の早期Zテスト方法。
【請求項3】
各タイルのタイルZ値が、そのタイルを完全に含む三角形それぞれの最大Z値の中で最も小さい値に等しい、請求項1に記載の早期Zテスト方法。
【請求項4】
各三角形の最大Z値が、その三角形の3つの頂点のZ値の中で最も大きい値に等しい、請求項3に記載の早期Zテスト方法。
【請求項5】
前記第1タイルを選別する段階が、
前記選択された三角形に完全に含まれる第2タイルを前記複数のタイルの中から選別する段階、及び、
前記第2タイルのタイルZ値より前記選択された三角形の最大Z値が小さい場合、前記第2タイルのタイルZ値を前記選択された三角形の最大Z値に更新する段階、
を含む、請求項3に記載の早期Zテスト方法。
【請求項6】
前記第2タイルを選別する段階が、
前記複数のタイルのそれぞれのタイルノードについて判別値を決定する段階、及び、
前記判別値に基づいて前記第2タイルを選別する段階、
を含む、請求項5に記載の早期Zテスト方法。
【請求項7】
前記判別値を決定する段階が、
各タイルのタイルノードごとに、前記選択された三角形の第1辺、第2辺、及び第3辺のそれぞれに対するハーフプレーンエッジ関数値の符号に基づいて、第1判別値、第2判別値、及び第3判別値を決める段階、
を含む、請求項6に記載の早期Zテスト方法。
【請求項8】
前記判別値に基づいて前記第2タイルを選別する段階が、
一つのタイルに含まれるタイルノードの全てで、第1判別値、第2判別値、及び第3判別値がいずれも、対応するハーフプレーンエッジ関数値の符号が正であることを示す場合、そのタイルを前記第2タイルとして選別する段階、
を含む、請求項7に記載の早期Zテスト方法。
【請求項9】
請求項1から請求項8までのいずれか一項に記載の早期Zテスト方法をコンピュータに実行させるためのプログラム。
【請求項10】
請求項1から請求項8までのいずれか一項に記載の早期Zテスト方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項11】
複数の三角形で表現される3次元画像のレンダリングを行うためのシステムであり、
画面を複数のタイルに分割するタイル分割部、
前記複数の三角形の中から一つを選択し、選択された三角形の最小Z値よりタイルZ値が小さい第1タイルを前記複数のタイルの中から選別するタイル選別部、及び、
前記第1タイルを除く残りのタイルにおいて前記選択された三角形のレンダリングを行うレンダリング実行部、
を有する早期Zテストシステム。
【請求項12】
前記選択された三角形に完全に含まれる第2タイルを前記複数のタイルの中から選別し、前記第2タイルのタイルZ値より前記選択された三角形の最大Z値が小さい場合、前記第2タイルのタイルZ値を前記選択された三角形の最大Z値に更新するタイルZ値更新部、
をさらに有する、請求項11に記載の早期Zテストシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−77627(P2008−77627A)
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願番号】特願2007−93766(P2007−93766)
【出願日】平成19年3月30日(2007.3.30)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】SAMSUNG ELECTRONICS CO.,LTD.
【住所又は居所原語表記】416,Maetan−dong,Yeongtong−gu,Suwon−si,Gyeonggi−do 442−742(KR)
【Fターム(参考)】