JP2008047108A - 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体、および図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジン - Google Patents
図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体、および図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジン Download PDFInfo
- Publication number
- JP2008047108A JP2008047108A JP2007200443A JP2007200443A JP2008047108A JP 2008047108 A JP2008047108 A JP 2008047108A JP 2007200443 A JP2007200443 A JP 2007200443A JP 2007200443 A JP2007200443 A JP 2007200443A JP 2008047108 A JP2008047108 A JP 2008047108A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- vertex
- space
- product
- rasterization
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】表示用に図形オブジェクトを描画する際オブジェクト頂点を変換する方法および装置。
【解決手段】図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法はオブジェクト空間における変換される各オブジェクト頂点に積行列を掛けることを含む。積行列はモデル・ビュー行列および投影行列の積である。その結果各オブジェクト頂点は単一の積算演算経由でオブジェクト空間からクリップ空間に変換される。
【選択図】図2
【解決手段】図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法はオブジェクト空間における変換される各オブジェクト頂点に積行列を掛けることを含む。積行列はモデル・ビュー行列および投影行列の積である。その結果各オブジェクト頂点は単一の積算演算経由でオブジェクト空間からクリップ空間に変換される。
【選択図】図2
Description
本発明は一般的にグラフィックス・アプリケーションに関し、具体的には表示用に図形オブジェクトを描画する際オブジェクト頂点を変換する方法および装置に関する。
OpenGLは二次元(2D)および三次元(3D)のグラフィックス・アプリケーション向けの業界標準のグラフィックス・アプリケーション・プログラミング・インタフェース(API)である。一般的にOpenGL APIはホスト・アプリケーションから受信した描画オブジェクトを表す図形データを処理し、ユーザが閲覧できるように図形オブジェクトを表示装置上で描画する。各オブジェクトの図形データは3D座標のアレーと関連データからなり、これは通常頂点と呼ばれる。オブジェクトの頂点は4要素同次ベクトル[x,y,z,w]として表され、ここでx、y、およびzは3D空間の頂点座標でwは1である。オブジェクト頂点が受信されると、OpenGL APIはオブジェクト頂点を変換し、オブジェクト頂点の組をグループ化して点、線、三角形、および多角形を形成し図形要素を組み立てる。組み立てられた図形プリミティブは次に表示装置上に図形オブジェクトを描画するために用いられる。
オブジェクト頂点を処理する手法は多々文書化されている。例えば、テイラー他の米国特許第6552733号明細書は専用ハードウェア内でモーフィングおよびスキニング操作の双方が支援される設定可能な頂点ブレンディング回路を開示している。頂点ブレンディング回路は頂点ブレンディング操作の各部分に結びついた行列を格納するために用いられる行列アレーを含む。頂点データはモーフィング操作に結びついた複数の位置が格納できるような複数の位置バッファを含む入力頂点バッファに格納される。スキニング操作に通常結び付く単独位置は位置バッファの1つに格納できる。入力頂点バッファはさらに頂点ブレンディング操作全体に含まれる各種の要素操作に結びつくブレンディング・ウェイトを格納する。変換コントローラで設定され制御される算術演算装置が頂点ブレンディング操作全体に含まれる複数の要素操作の各々に必要な計算を実行する。これら要素操作各々の結果を次に組み合わせブレンドされた頂点を生み出す。
Mang他の米国特許第6567084号明細書は照明効果演算ブロックおよび方法を開示している。照明効果演算ブロックはビデオ図形要素用の照明効果計算を並列に実行されるが順序に依存する形で蓄積されるいくつかのより簡単な計算に分離する。個々の計算は各々別個のスレッド・コントローラによって管理される。要素の頂点に関する照明効果計算は単独の親照明スレッド・コントローラおよびいくつかのサブ照明スレッド・コントローラを用いて実行することができる。各スレッド・コントローラはその特定頂点に対する照明パラメータの決定に関する操作コードのスレッドを管理する。スレッド・コントローラは各種操作コード間の予期される待ち時間および相互依存に基づき操作コードを裁定モジュールに提出する。裁定モジュールは特定サイクルにおいてどの操作コードが実行されるかを判定し、その操作コードを演算エンジンに提供する。演算エンジンは操作コードに基づき計算を実行し、結果をメモリまたはその特定頂点照明効果ブロックに対応する蓄積バッファに格納する。順序に依存する操作が正しく実行されることを保証するため各サブ照明スレッド・コントローラは自己の操作コードを裁定モジュールに提出する前に先行するスレッドに対する蓄積操作が開始されたか判定する。
Idaszak他の米国特許第6573894号明細書はOpenGL RTMシステムのような平面形画像図形コンピュータ・システムを用い、画像データを非平面形画像データに変換して非平面形ディスプレーに表示する方法を開示している。方法において、平面形画像図形コンピュータ・システムから変換行列が取得される。画像データの複数の頂点が取得された変換行列により積算され、変換画像データを生み出す。変換画像データは非平面形歪みを補正して非平面形画像データにしたものである。単一行列のようなパススルー変換行列が平面形画像図形コンピュータ・システムに提供される。非平面形画像データは次に平面形画像図形コンピュータ・システムに入力されさらに処理される。平面形画像図形コンピュータ・システムで処理された非平面形画像データは次に非平面形ディスプレーに表示される。
Demersの米国特許第6700586号明細書は2Dおよび3D図形およびサラウンド・サウンドを生み出すカスタム図形および音声プロセッサを含む図形システムを開示している。モデル・ビュー行列演算装置に追加行列積算演算装置がカスケード状に接続され、骨格アニメーション・モデル化用にスキニングの区分的線形バージョンを支援する。カスケードされた行列積算演算装置間に接続されたノーマライザは歪んだ視覚化を避けるために正規化を提供する。追加行列積算演算装置は骨格アニメーション・モデル化以外の用途(例えば環境マッピング)に用いることができる。
Marinoの米国特許第6731303号明細書は図形データを受信する入力を含む図形システムを開示している。図形データはオブジェクトの位置座標および深度座標を含む。処理された図形データを伝送するために出力が含まれる。図形システムは処理された図形データを生成する処理要素も含む。処理要素の1つは入力に接続され、別の処理要素は出力に接続される。選ばれた処理要素が位置座標および深度座標を受信し、深度座標を反転させ、反転深度座標を位置座標に掛ける。
Kilgard他の米国特許第6894687号明細書は頂点処理中に頂点属性をエイリアス化システム、方法、および製造物品を開示している。最初に、複数の識別子が頂点データに結びついた複数のパラメータの1つにマップされる。その後、識別子を用いてパラメータを照合できる頂点プログラムを利用してパラメータをコールすることにより頂点データが処理される。
Glanville他の米国特許出願番号2003/0009748号明細書は図形処理中の性能を向上させるシステムを開示しており、アプリケーション・プログラマブルな頂点処理が係わっている。中央演算装置(CPU)はCPU上で図形処理を実施できるコード・セグメントを実行するオペレーティング・システムを含む。図形処理規格に従って図形処理を実施できるハードウェア実施の図形パイプラインを含む図形用用途向け集積回路(ASIC)がCPUに結び付いている。図形処理規格に従って書かれたソフトウェアは図形処理を実施するよう図形用ASICに指示するよう適合される。ソフトウェアの拡張子は図形用ASICで実施される図形処理の第1部分およびCPUで実施される図形処理の第2部分を特定する。図形処理の第2部分は図形用ASICでは計算できないアプリケーション・プログラマブルな頂点処理を含む。コンパイラが拡張子に従い図形処理の第1部分および図形処理の第2部分を実行するのに用いられるソフトウェアをコンパイルする。
Kaufman他の米国特許出願番号2004/0125103号明細書はリアルタイムの体積処理および汎用3D描画の装置および方法を開示している。装置は三次元(3D)メモリ装置、グローバルな水平通信を提供するピクセル・バス、描画パイプライン、ジオメトリ・バス、および制御装置を含む。円形光線積分パイプラインを有するブロック・プロセッサがボクセル・データおよび光線データを処理する。光線は一般的に画像順序で処理され、それにより柔軟性が得られる(例えば遠近法投影、グローバルな照明)。
Zuiderveldの米国特許出願番号2005/0143654号明細書は異なった区分け領域を用いたボクセルからなる3Dの体積データを視覚化するシステムおよび方法を開示している。区分けマスク・ベクトルが各ボクセルに結び付けられ、そのボクセルが属する区分け領域を定義する。視覚化の際、区分けマスクは補間され区分けマスク重みのベクトルを得る。各サンプル点に対し視覚化値のベクトルを区分けマスク重みのベクトルで掛けることにより、合成フラグメント値を生ずる。フラグメント値は合成を用いてピクセル値に組み合わされる。汎用プログラマブル・ビデオ・カードの演算効率を活用して複数区分けデータ領域のサブサンプルされた部分的寄与の重みを判定することにより色および不透明度など区分け固有の特徴をフラグメント毎に正しく組み合わせることができ、これは体積描画に適している。
上述の引用は頂点処理手法を開示しているが、オブジェクトの頂点を変換する際に生じる演算上の問題に対応できていない。表示用に描画されるオブジェクトが作成されると、オブジェクトを定義する頂点は典型的には通常オブジェクト空間と呼ばれるモデルまたはオブジェクト座標システム内にある。図形オブジェクトを表示用に描画するためには、オブジェクト空間のオブジェクト頂点は通常画面空間と呼ばれるウィンドウ座標システムに投影またはマップされる必要がある。
オブジェクト頂点をオブジェクト空間から画面空間に投影するのは通常一連の行列演算が必要となる。図1はOpenGL図形パイプラインでオブジェクト空間におけるオブジェクト頂点を画面空間におけるオブジェクト頂点に変換するために実行される演算を示す。示されるように、頂点変換プロセスの際、オブジェクト空間110における各オブジェクト頂点{Vo}は以下に従い各オブジェクト頂点{Vo}にモデル・ビュー行列[Mmv]を掛けることにより視覚空間120におけるオブジェクト頂点{Ve}に変換される。
{Ve}=[Mmv]*{Vo} (1)
または
または
視覚空間120における各オブジェクト頂点{Ve}は次に以下に従い各オブジェクト頂点{Ve}を投影行列[Mp]で掛けることによりクリップ空間におけるオブジェクト頂点に変換される。
{Vc}=[Mp]*{Ve} (2)
または
または
一旦オブジェクト頂点がクリップ空間130に入ると、オブジェクト頂点{Vc}は正規化装置座標(NDC)空間140および次に画面空間150に変換される。
理解されるように、オブジェクト空間におけるオブジェクト頂点をクリップ空間におけるオブジェクト頂点に変換することはオブジェクト頂点毎に少なくとも2つの行列ベクトル積算が必要になるため演算上高価になる。従って改良が望まれる。
そこで本発明の一目的は図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する新規な方法および装置を提供することである。
従って、一態様で図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法で、オブジェクト空間における変換される各オブジェクト頂点に積行列を掛けることで、前記積行列はモデル・ビュー行列および投影行列の積で各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換すること、を含む方法が提供される。
一実施形態で、積算の前に状態情報を確認して、積行列を使用すべきでないことを状態情報が意味しているかを判定する。確認後、積行列が使用される場合、積算が行なわれる。積行列が使用されない場合、オブジェクト空間にある各オブジェクト頂点にモデル・ビュー行列を掛け、各オブジェクト頂点を視覚空間に変換し、視覚空間に各オブジェクト頂点に投影行列を掛け、各オブジェクト頂点をクリップ空間に変換する。積行列が使用されない場合少なくとも1つのフラグが設定される。前記少なくとも1つのフラグはモデル・ビュー行列および投影行列の少なくとも1つが変化し、および/あるいは少なくとも1つの選択されたラスター化がイネーブルされた場合設定される。
別の態様で、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体が提供され、前記コンピュータ・プログラムは、変換すべきオブジェクト空間における各オブジェクト頂点に積行列で掛けるためのコンピュータ・プログラム・コードで、前記積行列はモデル・ビュー行列および投影行列の積で、それにより単一の積算演算経由で各オブジェクト頂点をオブジェクト空間からクリップ空間に変換するコンピュータ・プログラム・コード、を含む。
さらに別の態様で、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジンが提供され、モデル・ビュー行列、投影行列、および積行列を格納する行列メモリで、前記積行列は前記モデル・ビューおよび投影行列の積である行列メモリ、状態情報メモリ、および各オブジェクト頂点に前記積行列を掛け単一の積算演算で各オブジェクト頂点をオブジェクト空間からクリップ空間に変換する図形プロセッサ、を含む。
オブジェクト空間におけるオブジェクト頂点を単一のせ積算演算でモデル・ビューおよび投影行列の変化の間をぬってクリップ空間におけるオブジェクト頂点に変換することにより、またラスター化エンジンの選択された機能がイネーブルされていない時、オブジェクト頂点の変換は迅速かつ容易に実行でき、それにより演算負荷をかなり低減する。
本発明の、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法は、オブジェクト空間における変換される各オブジェクト頂点に積行列を掛けるステップで、前記積行列はモデル・ビュー行列および投影行列の積で、各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換するものを含む。また、前記積算の前に状態情報を確認するステップで、前記状態情報が前記積行列を使用すべきでないことを意味するか判定するステップと、積行列が使用される場合は前記積算を行なうステップと、積行列が使用されない場合、オブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換するステップと、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換するステップと、を含んでもよい。また、前記積行列が使用されない場合少なくとも1つのフラグが設定されてもよい。また、前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合前記少なくとも1つのフラグが設定されてもよい。また、さらに、前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合積行列を再計算するステップを含んでもよい。また、前記少なくとも1つのフラグは少なくとも1つの選択されたラスター化機能がイネーブルされた場合に設定されてもよい。また、前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択されてもよい。また、前記少なくとも1つのフラグは少なくとも1つの選択されたラスター化機能がイネーブルされた場合に設定されてもよい。また、前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択されてもよい。
本発明の、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体は、前記コンピュータ・プログラムが、オブジェクト空間における変換される各オブジェクト頂点に積行列を掛けるコンピュータ・プログラム・コードで、前記積行列はモデル・ビュー行列および投影行列の積で各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換するコンピュータ・プログラム・コードを含む。また、前記コンピュータ・プログラムはさらに、状態情報を確認し、前記状態情報が前記積行列を使用すべきでないことを意味するか前記積算の前に判定するコンピュータ・プログラム・コード、および前記積行列をいつ使用すべきでないかを判定するコンピュータ・プログラム・コードに応答して、積行列が使用されない場合オブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換し、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換するコンピュータ・プログラム・コードを含んでもよい。
本発明の、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジンは、モデル・ビュー行列、投影行列、および積行列を格納し、前記積行列は前記モデル・ビューおよび投影行列の積である、行列メモリ、状態情報メモリ、およびオブジェクト空間における変換される各オブジェクト頂点に積行列を掛け、各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換する図形プロセッサを含む。また、前記状態情報メモリは少なくとも1つの設定可能なフラグを格納し、前記状態情報メモリのフラグが設定されると前記図形プロセッサはオブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換し、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換してもよい。また、前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合前記少なくとも1つのフラグが設定されてもよい。また、前記少なくとも1つのフラグは1つの選択されたラスター化機能がイネーブルされた場合に設定されてもよい。また、前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択されてもよい。また、前記図形プロセッサはモデル・ビューおよび投影行列の少なくとも1つが変更された場合積行列を再計算するものでもよい。また、前記少なくとも1つのフラグは1つの選択されたラスター化機能がイネーブルされた場合に設定されるものでもよい。また、前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択されるものでもよい。
以下の説明において、表示用に描画する際にオブジェクト頂点を変換する方法およびラスター化エンジンが提供される。方法の際、変換されるオブジェクト空間における各オブジェクト頂点に積行列を掛ける。積行列はもでる・ビュー行列および投影行列の積である。その結果各オブジェクト頂点は単一の積算演算経由でオブジェクト空間からクリップ空間に変換される。積行列が使用されない場合、オブジェクト空間におけるオブジェクト頂点は従来の方法でクリップ空間におけるオブジェクト頂点に変換される。すなわちオブジェクト空間におけるオブジェクト頂点にモデル・ビュー行列を掛けてオブジェクト頂点を視覚空間に変換し、視覚空間におけるオブジェクト頂点に投影行列を掛けてオブジェクト頂点をクリップ空間に変換する。
次に図2において、オブジェクト頂点をオブジェクト空間からクリップ空間に変換するラスター化エンジン200が示されている。図で見られるように、ラスター化エンジン200はオブジェクト頂点変換アプリケーションを実行する図形プロセッサ202、ランダムアクセス・メモリ(以降、RAMと称する)204、ならびに行列メモリ206,208,210および状態情報メモリ212からなる非揮発性メモリ・アレー205を含む。行列メモリ206はオブジェクト空間におけるオブジェクト頂点を視覚空間におけるオブジェクト頂点に変換するために用いるモデル・ビュー行列[Mmv]を格納する。行列メモリ208は視覚空間におけるオブジェクト頂点をクリップ空間におけるオブジェクト頂点に変換する投影行列[Mp]を格納する。行列メモリ210はモデル・ビューおよび投影の各々のモデル・ビュー行列[Mmv]および投影行列[Mp]の積の結果である積行列[Mv]を格納する。状態情報メモリ212はオブジェクト頂点をオブジェクト空間からクリップ空間に変換する際どの行列を使用すべきかを判定するために図形プロセッサ202が調べるフラグを格納する。
図形データ処理の際、何百もの、さもなければ何千ものオブジェクト頂点がモデル・ビュー行列[Mmv]または投影行列[Mp]のいずれかの変化の間をぬってオブジェクト空間からクリップ空間への変換を必要とする。前述のとおり、上記方程式(1)および(2)に従ってオブジェクト頂点を処理するとオブジェクト頂点はオブジェクト空間からクリップ空間に変換する。方程式(1)および(2)を組み合わせると以下が得られる。
{Vc}=[Mp]*([Mmv]*{Vo}) (3)
方程式(3)は、次のように書き直すことができる。
{Vc}=([Mp]*[Mmv])*{Vo}
または
{Vc}=[Mx]*{Vo} (4)
ここで、{Vo}は、オブジェクト空間におけるオブジェクト頂点、{Vc}は、クリップ空間におけるオブジェクト頂点、および[Mx]は、投影行列[Mp]およびモデル・ビュー行列[Mmv]の積によりもたらされる積行列である。
{Vc}=[Mp]*([Mmv]*{Vo}) (3)
方程式(3)は、次のように書き直すことができる。
{Vc}=([Mp]*[Mmv])*{Vo}
または
{Vc}=[Mx]*{Vo} (4)
ここで、{Vo}は、オブジェクト空間におけるオブジェクト頂点、{Vc}は、クリップ空間におけるオブジェクト頂点、および[Mx]は、投影行列[Mp]およびモデル・ビュー行列[Mmv]の積によりもたらされる積行列である。
このように積行列[Mx]が利用できると、オブジェクト空間におけるオブジェクト頂点は単に1つの行列積算演算を実施することにより、すなわちオブジェクト空間におけるオブジェクト頂点に積行列[Mx]を掛けることにより、クリップ空間におけるオブジェクト頂点に変換できる。ラスター化エンジン200が積行列を行列メモリ210に格納するため、オブジェクト頂点のオブジェクト空間からクリップ空間への変換は迅速かつ容易に生成することができる。
次に図3において、オブジェクト頂点をオブジェクト空間からクリップ空間に変換する際、ラスター化エンジン200により実施される工程が示される。本考察の上で、積行列[Mx]は行列メモリ210に格納され、図形プロセッサ202によりRAM204にロードされたと想定される。図形プロセッサ202が描画される図形オブジェクトを表すオブジェクト空間におけるオブジェクト頂点を受信すると、状態情報メモリ212が確認され、オブジェクト空間におけるオブジェクト頂点をクリップ空間におけるオブジェクト頂点に変換するのに積行列[Mx]を用いるべきでないことを意味する状態情報メモリ内の1つ以上のフラグが設定されたか判定する(工程300および工程302)。このようなフラグが設定されていない場合、図形プロセッサ202はオブジェクト頂点を選択し(工程304)、選択されたオブジェクト頂点に積行列[Mx]を掛け、それにより選択されたオブジェクト頂点を1つの積行列演算でクリップ空間に変換する(工程306)。次にオブジェクト頂点のカウントが増分され(工程308)、確認がなされてさらに選択すべきオブジェクト頂点が存在するか判定される(工程310)。さらに選択すべきオブジェクト頂点が存在しない場合、オブジェクト頂点変換プロセスが完了したとみなされる(工程312)。工程310においてさらに選択すべきオブジェクト頂点が1つ以上存在する場合、プロセスは工程300に戻る。理解されるように、状態情報メモリ212におけるフラグが設定されていない場合、オブジェクト空間における各オブジェクト頂点は単一の積算演算でクリップ空間におけるオブジェクト頂点に変換される。
積行列が古くなり、および/あるいは視覚空間におけるオブジェクト頂点が必要となる事態が生じる可能性があるため状態情報メモリ212は積行列[Mx]が用いられる前に調べられる。後者の場合、OpenGLユーザ・クリップ面、OpenGL照明効果、またはOpenGL霧効果など、ラスター化エンジン200の特定機能がイネーブルされていると視覚空間におけるオブジェクト頂点が必要となる。図形プロセッサ202はこれらOpenGLの機能の状態を監視し、これらの機能の1つ以上がイネーブルされていると図形プロセッサ202はイネーブルされた各機能に対し対応フラグを状態情報メモリ212に設定する。このようなフラグが設定されると、設定されたフラグは工程300で検出され、その結果、積行列[Mx]はオブジェクト頂点の変換に使用されないことになる。
この場合、オブジェクト頂点は通常の方法でオブジェクト空間からクリップ空間に変換される(工程314)。このように、図形プロセッサ202はモデル・ビュー行列[Mmv]および投影行列[Mp]をRAM204にロードする。オブジェクト空間における各オブジェクト頂点に対し図形プロセッサ202はオブジェクト頂点にモデル・ビュー行列[Mmv]を掛け、オブジェクト頂点を視覚空間に変換する。図形プロセッサ202は次に視覚空間における各オブジェクト頂点に投影行列[Mp]を掛け、オブジェクト頂点をクリップ空間に変換する。
図形プロセッサ202はさらにモデル・ビュー行列[Mmv]および投影行列[Mp]の状態を監視し、これら行列のいずれかまたは双方が変化したか判定する。これら行列の変化は更新されたモデル・ビューおよび/あるいは投影行列をラスター化エンジン200に手動でロードした結果、拡大、翻訳、または回転変換操作の結果、現行行列スタックのポッピングおよび/あるいはビュー位置または錐台の変更の結果起こり得る。モデル・ビューまたは投影行列に変更が生じた場合、図形プロセッサ202は対応フラグを状態情報メモリ212に設定する。このようなフラグが設定された場合、設定されたフラグは工程300で検出され、その結果積行列がオブジェクト頂点変換の際用いられない結果となる。モデル・ビューおよび/あるいは投影行列に変更があると、一旦現行オブジェクト頂点変換タスクが完了した後、図形プロセッサ202は更新されたモデル・ビュー行列[Mmv]および投影行列[Mp]をRAM204にロードし、積行列[Mx]を再計算し、今後の使用に向け新しい積行列[Mx]を行列メモリ210に格納する。
説明されないが、一旦オブジェクト頂点がクリップ空間に変換されると、オブジェクト頂点は図形プロセッサ202によりNDC空間に変換することができ、その後従来の方法で画面空間に変換することができる。
ラスター化エンジン200はパソコン(PC)等々の中央演算装置(CPU)に具現されることができ、またはパソコン等々にインストールされる別個の図形処理装置に具現されることができる。
オブジェクト頂点変換ソフトウェアは図形プロセッサなどの処理装置で実行されるコンピュータ実行可能な命令を含む。ソフトウェア・アプリケーションはルーチン、プログラム、オブジェクト・コンポーネント、データ構造等々を含むプログラム・モジュールからなることができ、コンピュータ読み取り可能な媒体に格納されるコンピュータ読み取り可能なプログラムとして具現されることができる。コンピュータ読み取り可能な媒体は後でコンピュータ・システムにより読み取ることができるデータを格納できる任意の記憶装置である。コンピュータ読み取り可能な媒体の例は例えば読み取り専用メモリ、フラッシュ・メモリ、ランダムアクセス・メモリ、ハードディスク・ドライブ、磁気テープ、CD−ROMおよび他の光データ記憶装置を含む。コンピュータ読み取り可能なプログラム・コードは、コンピュータ読み取り可能なプログラム・コードが分散的な形で格納され実行されるよう、連結コンピュータ・システムを含むネットワーク上に分散されることができる。
一実施形態が説明されたが、当業者であれば添付クレームに定義される精神および範囲から逸脱することなく変更や修正が可能であることを理解しよう。
110…オブジェクト空間、120…視覚空間、130…クリップ空間、140…NDC空間、150…画面空間、204…RAM、205…図形プロセッサ、206…行列メモリ、208…行列メモリ、210…行列メモリ、212…状態情報メモリ。
Claims (19)
- 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法で、
オブジェクト空間における変換される各オブジェクト頂点に積行列を掛けるステップで、前記積行列はモデル・ビュー行列および投影行列の積で、各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換するもの、を含む方法。 - 請求項1に記載される方法で、さらに、
前記積算の前に状態情報を確認するステップで、前記状態情報が前記積行列を使用すべきでないことを意味するか判定するステップと、
積行列が使用される場合は前記積算を行なうステップと、
積行列が使用されない場合、オブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換するステップと、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換するステップと、を含む方法。 - 前記積行列が使用されない場合少なくとも1つのフラグが設定される、請求項2に記載される方法。
- 前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合前記少なくとも1つのフラグが設定される、請求項3に記載される方法。
- さらに、
前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合積行列を再計算するステップを含む、請求項4に記載される方法。 - 前記少なくとも1つのフラグは少なくとも1つの選択されたラスター化機能がイネーブルされた場合に設定される、請求項3に記載される方法。
- 前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択される、請求項6に記載される方法。
- 前記少なくとも1つのフラグは少なくとも1つの選択されたラスター化機能がイネーブルされた場合に設定される、請求項5に記載される方法。
- 前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択される、請求項8に記載される方法。
- 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体で、前記コンピュータ・プログラムは、
オブジェクト空間における変換される各オブジェクト頂点に積行列を掛けるコンピュータ・プログラム・コードで、前記積行列はモデル・ビュー行列および投影行列の積で各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換するコンピュータ・プログラム・コード、を含む、コンピュータ読み取り可能な媒体。 - コンピュータ・プログラムはさらに、
状態情報を確認し、前記状態情報が前記積行列を使用すべきでないことを意味するか前記積算の前に判定するコンピュータ・プログラム・コード、および
前記積行列をいつ使用すべきでないかを判定するコンピュータ・プログラム・コードに応答して、積行列が使用されない場合オブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換し、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換するコンピュータ・プログラム・コード、を含む、請求項10に記載されるコンピュータ読み取り可能な媒体。 - 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジンで、
モデル・ビュー行列、投影行列、および積行列を格納し、前記積行列は前記モデル・ビューおよび投影行列の積である、行列メモリ、
状態情報メモリ、および
オブジェクト空間における変換される各オブジェクト頂点に積行列を掛け、各オブジェクト頂点を単一の積算演算でオブジェクト空間からクリップ空間に変換する図形プロセッサ、を含むラスター化エンジン。 - 前記状態情報メモリは少なくとも1つの設定可能なフラグを格納し、前記状態情報メモリのフラグが設定されると前記図形プロセッサはオブジェクト空間における各オブジェクト頂点に前記モデル・ビュー行列を掛けて各オブジェクト頂点を視覚空間に変換し、視覚空間における各オブジェクト頂点に前記投影行列を掛けて各オブジェクト頂点をクリップ空間に変換する、請求項12に記載されるラスター化エンジン。
- 前記モデル・ビューおよび投影行列の少なくとも1つが変更された場合前記少なくとも1つのフラグが設定される、請求項13に記載されるラスター化エンジン。
- 前記少なくとも1つのフラグは1つの選択されたラスター化機能がイネーブルされた場合に設定される、請求項14に記載されるラスター化エンジン。
- 前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択される、請求項15に記載されるラスター化エンジン。
- 前記図形プロセッサはモデル・ビューおよび投影行列の少なくとも1つが変更された場合積行列を再計算する、請求項14に記載されるラスター化エンジン。
- 前記少なくとも1つのフラグは1つの選択されたラスター化機能がイネーブルされた場合に設定される、請求項13に記載されるラスター化エンジン。
- 前記少なくとも1つの選択されたラスター化機能は照明効果、霧効果、およびクリップ面からなるグループから選択される、請求項18に記載されるラスター化エンジン。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/465,017 US20080043019A1 (en) | 2006-08-16 | 2006-08-16 | Method And Apparatus For Transforming Object Vertices During Rendering Of Graphical Objects For Display |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008047108A true JP2008047108A (ja) | 2008-02-28 |
Family
ID=39095148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007200443A Withdrawn JP2008047108A (ja) | 2006-08-16 | 2007-08-01 | 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体、および図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジン |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080043019A1 (ja) |
JP (1) | JP2008047108A (ja) |
KR (1) | KR20080015705A (ja) |
CN (1) | CN101127124A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100919236B1 (ko) * | 2007-05-22 | 2009-09-30 | 한국전자통신연구원 | 병렬 프로세서를 이용한 3차원 그래픽 기하 변환 방법 |
US9785839B2 (en) * | 2012-11-02 | 2017-10-10 | Sony Corporation | Technique for combining an image and marker without incongruity |
CN112035934B (zh) * | 2020-09-04 | 2024-05-10 | 国网山西省电力公司经济技术研究院 | 一种基于变电站的数字化设计模型进行施工管理控制的方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104405A (en) * | 1997-02-26 | 2000-08-15 | Alternate Realities Corporation | Systems, methods and computer program products for converting image data to nonplanar image data |
JPH1166271A (ja) * | 1997-08-11 | 1999-03-09 | Sony Computer Entertainment:Kk | 画像合成方法および画像合成装置 |
US6097395A (en) * | 1998-04-28 | 2000-08-01 | Hewlett Packard Company | Dynamic selection of lighting coordinates in a computer graphics system |
US6509905B2 (en) * | 1998-11-12 | 2003-01-21 | Hewlett-Packard Company | Method and apparatus for performing a perspective projection in a graphics device of a computer graphics display system |
AU2001239926A1 (en) * | 2000-02-25 | 2001-09-03 | The Research Foundation Of State University Of New York | Apparatus and method for volume processing and rendering |
US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
US6552733B1 (en) * | 2000-04-20 | 2003-04-22 | Ati International, Srl | Configurable vertex blending circuit and method therefore |
US6731303B1 (en) * | 2000-06-15 | 2004-05-04 | International Business Machines Corporation | Hardware perspective correction of pixel coordinates and texture coordinates |
US6567084B1 (en) * | 2000-07-27 | 2003-05-20 | Ati International Srl | Lighting effect computation circuit and method therefore |
US6700586B1 (en) * | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6697064B1 (en) * | 2001-06-08 | 2004-02-24 | Nvidia Corporation | System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline |
US7162716B2 (en) * | 2001-06-08 | 2007-01-09 | Nvidia Corporation | Software emulator for optimizing application-programmable vertex processing |
US6894687B1 (en) * | 2001-06-08 | 2005-05-17 | Nvidia Corporation | System, method and computer program product for vertex attribute aliasing in a graphics pipeline |
US6774895B1 (en) * | 2002-02-01 | 2004-08-10 | Nvidia Corporation | System and method for depth clamping in a hardware graphics pipeline |
EP1531322A3 (en) * | 2003-11-13 | 2007-09-05 | Matsushita Electric Industrial Co., Ltd. | Map display apparatus |
WO2005055148A1 (en) * | 2003-11-29 | 2005-06-16 | Vital Images, Inc. | Segmented volume rendering using a programmable graphics pipeline |
JP2006190049A (ja) * | 2005-01-05 | 2006-07-20 | Fujitsu Ltd | 頂点削減図形描画方法および装置 |
-
2006
- 2006-08-16 US US11/465,017 patent/US20080043019A1/en not_active Abandoned
-
2007
- 2007-03-12 KR KR1020070023949A patent/KR20080015705A/ko not_active Application Discontinuation
- 2007-08-01 JP JP2007200443A patent/JP2008047108A/ja not_active Withdrawn
- 2007-08-16 CN CNA2007101422335A patent/CN101127124A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20080015705A (ko) | 2008-02-20 |
CN101127124A (zh) | 2008-02-20 |
US20080043019A1 (en) | 2008-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6309620B2 (ja) | 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること | |
KR101240815B1 (ko) | 그래픽 렌더링을 위한 멀티-스테이지 테셀레이션 | |
US9202303B2 (en) | System and method for compositing path color in path rendering | |
CN107492065B (zh) | 用于经改进图形流水线中的镶嵌的系统和方法 | |
US11657560B2 (en) | VRS rate feedback | |
US7420557B1 (en) | Vertex processing when w=0 | |
US7843463B1 (en) | System and method for bump mapping setup | |
CN115147579B (zh) | 一种扩展图块边界的分块渲染模式图形处理方法及系统 | |
JP7122396B2 (ja) | グラフィックスパイプラインにおけるメモリ使用削減のためのコンパイラ支援技法 | |
JP2015515059A (ja) | シーンにおける不透明度レベルを推定する方法とそれに対応する装置 | |
US7466322B1 (en) | Clipping graphics primitives to the w=0 plane | |
KR20220100877A (ko) | 대역폭 테셀레이션 팩터 감소 | |
JP2017062789A (ja) | グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法 | |
US8004515B1 (en) | Stereoscopic vertex shader override | |
Valdetaro et al. | Understanding shader model 5.0 with directx11 | |
US20150084952A1 (en) | System, method, and computer program product for rendering a screen-aligned rectangle primitive | |
US20210358174A1 (en) | Method and apparatus of data compression | |
JP2008047108A (ja) | 図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換する方法、図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するコンピュータ・プログラムを具現するコンピュータ読み取り可能な媒体、および図形オブジェクトを表示用に描画する際にオブジェクト頂点を変換するラスター化エンジン | |
US11030791B2 (en) | Centroid selection for variable rate shading | |
US11941741B2 (en) | Hybrid rendering mechanism of a graphics pipeline and an effect engine | |
US20100277488A1 (en) | Deferred Material Rasterization | |
US20180232938A1 (en) | Method for Rendering Data, Computer Program Product, Display Device and Vehicle | |
GB2545457A (en) | Graphics processing systems | |
WO2022120800A1 (zh) | 一种图形处理方法、装置、设备及介质 | |
Falk et al. | GPU-based Glyph Ray Casting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101005 |