JP2006127556A - シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 - Google Patents
シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2006127556A JP2006127556A JP2006031713A JP2006031713A JP2006127556A JP 2006127556 A JP2006127556 A JP 2006127556A JP 2006031713 A JP2006031713 A JP 2006031713A JP 2006031713 A JP2006031713 A JP 2006031713A JP 2006127556 A JP2006127556 A JP 2006127556A
- Authority
- JP
- Japan
- Prior art keywords
- data
- platform
- hardware
- compiler
- shader
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
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)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】幾何データは、関連シェーディングプログラムの知識を用いて、コンパイル処理において処理される。データは、対象ハードウェアプラットフォームを直接の対象とするデータ構造に変換され、これらのデータ構造を描画するのに必要な動作を記述するコードストリームがアセンブルされる。コンパイラは、プラットフォームとは独立した形態のシェーダおよび三次元モデリングパッケージから出力された幾何データおよび属性(アートアセット)を読み取ってプラットフォームから独立した最適化を行うように構成されたフロントエンド(図1,番号20)と、プラットフォーム固有の最適化を行ってプラットフォームを対象としたデータ構造およびコードストリームを生成するように構成されたバックエンド(図1,番号40)とを含む。
【選択図】図1
Description
本出願は、2002年3月8日出願の米国仮出願番号60/363,049の利益を主張するものであり、その内容はすべて、あらゆる目的のために、本願に包含される。
本発明は、一般的には描画システムに関し、より特定的には、シェーダ駆動によるコンパイル方法に基づくアートアセット描画に関する。
シェーディング言語は、クックのシェードツリー(R・L・クック(Cook,R.L)著、1984年、「シェードツリー(Shade Trees)」、コンピュータグラフィックス(Computer Graphics)(1984年米国コンピュータ学会コンピュータグラフィックス分科会(SIGGRAPH)議事録)、第18巻、223〜231)およびパーリンの画素ストリーム言語(K.パーリン(Perlin,K)著、1985年、「イメージシンセサイザ(An Image Synthesizer)」、コンピュータグラフィックス(Computer Graphics)(1985年SIGGRAPH議事録)、第19巻、287〜296)の成果である。これらは現在最も一般的に用いられており、レンダーマン・シェーディング言語(RenderMan Shading Language)という形態を取る(P.ハンラハン(Hanrahan,P)およびJ.ローソン(Lawson,J)著、1990年、「シェーディングおよびライティング計算のための言語(A Language for Shading and Lighting Calculations)」、コンピュータグラフィックス(Computer Graphics)(1990年SIGGRAPH議事録)、第24巻、287〜296、ISBN0−201−50933−4およびA.A.アポダカ(Apodaca,A.A)およびM.W.マントル(Mantle,M.W)、1990年、「レンダーマン:グラフィックスの将来を追求して(Renderman:Pursuing the Future of Graphics)」、米国電気・電子通信学会(IEEE)コンピュータグラフィックスおよびアプリケーション10(IEEE Computer Grapshics & Applications 10),4(7月)、44〜49)。シェーディング言語は、リアルタイム描画グラフィックスハードウェアアプリケーションに近年採用されるようになっている。
on Graphics Hardware:The Pixelflow Shading System)」、1998年SIGGRAPH議事録、エーシーエム(ACM)SIGGRAPH/アディソン・ウェズリー(Addison Wesley)、フロリダ州オーランド、コンピュータグラフィックス議事録、年次総会シリーズ、159〜168、ISBN0−89791−999−8)が、特定のグラフィックスハードウェアを対象としたコンパイルを行うレンダーマンのような言語を説明した最初であり、その対象とは、彼らの場合はピクセルフロー(PixelFlow)システムであった(S.モルナー(Molnar,S)、J.バイルズ(Byles,J)、およびJ.プルトン(Poulton,J)著、1992年、「ピクセルフロー:画像構成を用いた高速描画(Pixelflow:High−Speed Rendering Using Image Composition)」、コンピュータグラフィックス(Computer Graphics)(1992年SIGGRAPH議事録)、第26巻、231〜240、ISBN0−201−51585−7)。ピクセルフローは、プログラム可能なシェーディングに元来十分に適してはいるが、今日の一般消費者レベルのハードウェアとは非常に異なるものである。
.S)、M.オラーノ(Olano,M)、J.エアリー(Airey,J)、およびP.J.アンガー(Ungar,P.j)著、「インタラクティブ・マルチパス・プログラマブル・シェーディング(Interactive Multi−Pass Programmable Shading)」、2000年(7月)SIGGRAPH議事録、425〜432、ISBN1−58113−208−5)。
アートアセットは、典型的には、3次元モデリングおよび動画パッケージにおいて作成される。これらのパッケージは、通常、幾何データおよび結果オブジェクトのオフライン描画のインタラクティブな操作に向けられている。これらは、典型的には、幾何、トポロジー、シェーディング、および動画の操作のための一連の豊かな特徴を有する。しかしながら、未処理の出力モデルは、一般消費者レベルのハードウェアに適していることは稀である。アセットは、リアルタイムの一般消費者レベルのアプリケーションにおける最終的な利用を意識して製作されなければならない。アセットは、パッケージに格納された豊かな記述から変換されるだけではなく、アプリケーションのハードウェアおよびソフトウェアのアーキテクチャに向けて最適化されなければならない。このような前処理の範囲は、単純なデータ変換から、複雑な再順序付けおよび最適化タスクまでに及ぶ。
本発明は、シェーダ駆動のコンパイル手法を用いることによってアートアセット描画動作を最適化するシステムおよび方法を提供する。
−固定されたトポロジーオブジェクトを固定されたシェーディング効果を用いて効率的に描画すること
−描画したオブジェクトに対するランタイム修正に対応していること、但し、必ずしもトポロジー図形を修正するものではないこと、
−頂点プログラムおよび画素合成器などのハードウェア機能を活用すること、および
−ユーザコードおよびアートアセットが、互いに異なるハードウェアプラットフォームに渡って移植可能とすることである。
テクスチャの集合体を含む。アセットの記述が十分になされているので、プログラマを介在させずに、最終的な利用において表現されるようにオブジェクトを描画することができる。
本発明のシステムの一実施例を、図1に示す。図示のように、アートアセット10と、シェーダ入力変数およびオフライン計算の宣言を含みかつこれらの変数をアートアセットから生成する描画メソッドと称されるシェーダの仕様の拡張機能15とが、アートアセットコンパイラのフロントエンド20に具備される。コンパイラのフロントエンド20は、例えばポリゴン幾何データおよびモデル変数といった、アートアセット10および描画メ
ソッド15を入力とし、描画メソッドの個別呼び出しを表すセグメント化され幾何学的に最適化されたパケットと称されるアセット断片30を作成する。本発明の教示を用いて、スプライン表面や粒子システムとしての非幾何図形データに対応するために、他のフロントエンドが構築されてもよいことが理解されるべきである。アセットコンパイラのバックエンド40は、フロントエンドで生成されたパケット30を用いて、最適化されたコードおよびデータストリーム50、ハードウェア固有のデータ構造55、ならびにランタイムでアセットを描画するために用いられるシェーダ60を生成する。
アートアセットコンパイラに関する考察を具体的なものとするために、対象のランタイム環境について、以下に簡単に説明する。図6は、本発明が有用なハードウェアプラットフォーム100の典型的な構成要素を示す。図示のように、プラットフォーム100はCPU110を含み、CPU110は、GPU120にシステムバス130を介して接続されている。CPU110およびGPU120は、それぞれ、典型的には、ローカル・オンチップ・メモリ、例えばCPU RAMキャッシュ115およびGPU RAMキャッシュ125を含む。また、プラットフォーム100は、典型的には、ハードドライブまたはたのメモリなどのメモリ部140と、1以上の既知のCD、DVD、およびフロッピー(登録商標)ディスク媒体などの様々な媒体155を収容するように構成された媒体装置150とを含む。1以上のユーザ入力装置160をプラットフォーム100に接続することができる。ユーザインターフェイス装置の例としては、キーボード、ジョイスティック、マウスなどがある。プラットフォーム100およびその様々な構成要素は、典型的には、動作することによって画像を生成または描画して、モニタ、テレビジョン画面、LCDディスプレイなどのディスプレイ装置170に表示させる。ディスプレイ170との通信のために、ディスプレイドライバ165が典型的には具備される。
コンパイラが対象とする環境は、特定のハードウェア描画プラットフォームを含むと共に、そのプラットフォーム上でのランタイムライブラリも含む。本発明のランタイムライブラリおよびコンパイラは、様々なプラットフォーム上で実施可能であり、例えば、ソニーのPlayStation2(商標)(PS2)、マイクロソフト社のXBOX(商標)、任天堂のGameCube(商標)(NGC)、およびDirectX8のパーソナルコンピュータプラットフォームなどがある。これらのアーキテクチャは実質的に互いに異なるが(例えば、M.スズオキ、K.クタラギ、T.ヒロイ、H.マゴシ、S.オカモト、M.オカ、A.オオバ、Y.ヤマモト、M.フルハシ、M.タナカ、T.ユタカ、T.オカダ、M.ナガマツ、Y.ウラカワ、M.フニュウ、A.クニマツ、H.ゴトウ、K.ハシモト、N.イデ、H.ムラカミ、Y.オオタグロ、およびA.アオノ著、1990年、「128ビットCPUを有するマクロプロセッサ、10浮動小数点マックの4浮動小数点デバイダ、およびMPEG−2デコーダ(A Microprocessor with 128−Bit CPU,Ten Floating−Point Mac‘s,Four−Floating−Point Dividers,and an MPEG−2 Decoder)」,固体回路IEEEジャーナルの1999年ISSCC固体回路協会:デジタル、メモリおよび信号処理に関する特別号(IEEE Journal of Solid−State Circuits:Special Issue on 1999 ISSCC:Digital,Memory and Signal Processing)、1608、およびE.リンドルム(Lindholm,E)、M.J.キルガード(Kilgard,M.J)、およびH.モレトン(Moreton,H)著、2001年、「ユーザ・プログラマブル頂点エンジン(A User−Programmable Vertex Engine)」,2001年SIGGRAPH議事録、エーシーエムプレス(ACM Press)/ACM SIGGRAPH、コンピュータグラフィックス議事録、年次総会シリーズ、149〜158、ISBN1−58113−292−1参照)、いくつかの基本的な特徴を共有する。この特徴に含まれるのは、以下のとおりである。
−CPUおよびGPUが別個のプロセッサであり、比較的幅の狭いバスで接続されていること(なお、XBOXは、統合メモリアーキテクチャを有してはいるが、GPUに対するバス帯域には制限がある)。
−GPUが、ユーザがプログラム可能であること(これは、任天堂のGameCubeにつては、厳密に言えば正確ではないが、所定の計算要素の組が豊富に利用可能である)。−プラットフォームはテクスチャ合成を支援するの様々なレベルを有しているが、すべてのテクスチャ合成は、GPUの次の段階として生じ、GPUまたはCPUへのフィードバックはない(このようなフィードバックは可能であり、プラットフォームによっては、本発明のシェーダによって活用することもできるが、アートアセットコンパイル処理の外で管理されなければならない)。
本発明のランタイム環境は、モデルを基本オブジェクトとして描くための例えば小規模C++APIのようなAPIをユーザに提示する。モデルは、所定の効果を伴って描画するために必要なシェーダと結びつけた幾何図形の基本形状(例えば、三角形、b−スプライン、点など)および状態オブジェクト(描画状態、テクスチャなど)の集合体である。モデルは、幾何図形にセグメント化され、各幾何図形は、それぞれ独立してオンまたはオフできる。幾何図形およびモデルは、コンパイラに入力されたアートアセットに直接マッピングされる。各一連のアートアセットコンパイラは、1つ以上の幾何図形を含む単一のモデルを生成する。モデルは、制御変数の組をユーザに公開する(下記の変数部を参照)。必要な制御変数を設定して、モデルのverb+Draw+メソッドを呼び出す。制御変数を設定することが必要なのは、システムがその値を保持しているうちにその値が変化した場合のみである。これは、動画および他の動的描画効果を制御するのに利用される機構である。
描画メソッドは、変数一式の仕様と、これら変数を用いるシェーダプログラムとを含む。描画メソッドは、十分に抽象的なので、幅広いアートアセットに対して同じ描画メソッドを用いることができる。逆に、描画メソッドの中には、特定のアートアセットでの問題に対処するために書かれたものもある。本発明のコンパイラアーキテクチャにより、描画メソッドを、シェーダ入力変数を満足するのに必要なデータを有するいずれのアートアセットに対しても適用することができる。
描画メソッドは任意の幾何図形データをシェーダに結合するために用いられるので、入力部および変数部の両方における変数は、タイプされている。これにより、シェーダに与えられたデータは必要な形式であることが保証される。型はユーザが拡張可能で、描画メソッド仕様で与えられている。型定義は、プラットフォームに固有であり、CPUメモリ内のオブジェクトのサイズ、GPUメモリ内のサイズ、型をCPUからGPUへ転送するのに必要なハードウェア状態などの特性を含む。型についての情報により、コンパイラは、アートアセットの要素を仮定に基づくことなく操作することができる。本発明は、一実施例において、すべてのプラットフォームに対して基礎となる型の同一の組を提供する。
入力部は、描画メソッドに必要なデータ要素の型を宣言する。これらは入力変数と称される。この例では、座標入力変数は、Coordinate4と宣言される。その後、この変数は、例えばコンバータまたは変数部のデータ画像を構築するために実行される他のデータ操作プログラムで参照することができる。入力宣言は、アートアセットがそのような入力を与えるものではない場合に用いられる変数に割り当てる明示値を伴うことができる。アートアセットからの入力データは、それぞれの入力変数に名前で結合される。コンパイラによって与えられた変数には、アートアセットからの頂点および素材データとともに、ユーザが頂点および素材に付与した任意のデータが含まれる。これにより、ユーザデータを描画メソッド入力に結合する簡易な名前付け表記法によって、コンパイラの機能を容易に拡張することができる。
変数部は、計算に利用可能なデータを宣言する。変数は、アレイ仕様としての特定の型および多数の要素をタグ付けされる。アレイ仕様がない場合には、1の長さが想定される。簡易制約システムがハードウェアの制約内で要素の数を最大限にするには、特別のアレイ長nElemが有用である。
う正式な宣言をし、修正可能なキーワードを用い、そのようにフラグ付けされていないデータの修正を禁止することが必要である。辞書は、変数の修正可能である状態を示すフラグを保持し、例えばC++のconstメカニズムを用いて、修正に対して制限を行う。修正可能なフラグの使用は、一時的なフラグに対して直交する。これは、適切な場合(大きなデータ構造に対する頻度の低い変更)には、エクスポートされた修正可能なデータの参照による使用が可能であり、必要な場合(互いに異なるパラメータ設定で同一のフレーム内のモデルの再使用および頻度の高い変更)には、コピーによる使用が可能であるので、有用である。この修正機構は、パラメータ化された表示リストと同等で、コンパイラ内でオフラインで構築されかつ適切に最適化された機能性を提供する。
新たなシェーダ言語を導入するよりはむしろ、本発明の一実施例においては、各対象のプラットフォーム上の固有のシェーディング言語およびマクロ拡張システムを用いて、変数をシェーダプログラムに結合する。描画メソッドをより簡単に書くには、複雑なシェーダを再利用可能なパラメータ化されたマクロに分解する。マクロは、外部ファイルで定義され、マシン固有のシェーダプログラムに連結およびアセンブルされる。パラメータの受け渡し規則は、変数および該当の型情報をマクロのパラメータに結合する。これにより、ユーザは、既存のプログラム断片を用いて、迅速に新しい効果を試験的に生み出すことができる。しかしながら、高度に最適化されたシェーダは、手作業によって作成されたシェーダプログラムが必要である。プラウドフット他またはピアーシー他のようなシェーダコンパイラは、このアーキテクチャにこのレベルで採用される。
図1を再度参照して、アセットコンパイラのフロントエンド20は、アートアセット10および描画メソッド15を取り込み、アートアセットを描画するのに必要な一連のパケット30を構築する。一局面において、この例のフロントエンド20は、ポリゴンからなるアートアセットに限って取り扱うが、本発明の教示を用いて、例えばスプライン面、粒子システム、特定用途向けの地形メッシュ、および特定用途向けの都市描画システムなどの他の種類のデータを取り扱うための他のフロントエンドを作成することも可能である。
たデータ要素の組を含む頂点の集合、および頂点からなるポリゴンの集合を含む。一実施例において、描画メソッドは、当該クラスで利用可能なデータによって満足することができる未定義の入力がある描画メソッドを見つけるまで、利用可能な描画メソッドのリストを繰り返すことによって選択される。より細かな制御を提供するためには、要求された描画メソッドで素材をタグ付けすることもできる。要求された描画メソッドの未定義の入力を利用可能なデータで満足させることができない場合には、デフォルトのメカニズムが適用され、警告が出される。
ランタイムで解釈されたパケットのリストの放出により、ランタイム性能が悪くなる場合がある。そのような方法を最適化するための2つの取り組みがある。第1の取り組みは、ランタイム環境を最適化して、ハードウェア状態の修正を最小限化したり、描画に対してテクスチャを用いて再順序付けをしたり、計算結果をキャッシングして再利用したりするといった方策を実行することである。しかしながら、描画すべきデータが事前にわかっているので、このような最適化の多くはオフラインで行われる。
ットだけではなく、任意のデータセットをコンパイルするためにも利用できる。
パス2:変数データの構築
パス3:蓄積データのエクスポート
パス6:データ構造の生成
パス5:コードの生成
パス6:データ構造およびコードの一括最適化
パス7:コードおよびデータの放出
(パス1―パケットの順序付け)
基本となるハードウェアを効率的に利用するには、パケットに対して再順序付けを行って、ハードウェアの状態についてのコストの多大な変更を最小限にする。最順序付けにより、ユーザは、描画順序に対する制御を保持することができる。特に、モデルの幾何図形がアートアセットで現れる順番で描画されることが保証される。一実施例では、簡易な発見法が実施されて、コストの多大な状態変更を最小限にしている。パケットはまず幾何図形毎にグループ化され、その後、描画メソッド、テクスチャ、そして最後にマトリックスパレットによってグループ化される。一局面では、例えば、より高性能のコンパイラが生成されたコードストリームを調査して、その動作のコストをモデリングし、最良のデータ順序付けを決定する。
フロントエンドは、パケットとのリストを提供し、各パケットは、関連付けられた描画メソッドと、入力データのセットとを有する。入力データは、最終的にシェーダに与えられるもののようにはなっていないので、パケットに関連付けられた描画メソッドの変数部に定義されたデータに変換されなければならない。これは、描画メソッドによって特定されたコンバータ機能を実行することによって達成される。結果生じるのは、インスタンス化されたパケットである。インスタンス化されたパケットにおいては、各変数のデータが既知か、またはランタイムで当該データのメモリ位置がわかる外部の記号参照が既知である。参照は、ハードデータとして完全に既知のデータ内容を有する変数のために作成される。外部宣言(インポートされたデータ)によって定義されるだけの変数は、ソフトデータと称される。この段階で、コンパイラは、記号名をすべての変数データに割り当てる。
このような記号名は、データを包含するメモリ位置を参照するために用いられ、データの直接の参照を生成しなければならない場合にはいつでも、残りのパス内に作成される。ソフトデータの場合は、記号名は、描画メソッド内の外部宣言によって定義された名称を用いる。
このパスは、ランタイムで利用可能なモデルに関連付けられた辞書データ構造を蓄積して、エクスポートされた変数を見つける。前のパスでデータに割り当てられた記号名はここで用いられて、結果生じた辞書内に充填される。
このパスでは、インスタンス化されたパケットによって参照されるハードおよびソフトデータを保持する描画データ構造を作成する。対処となるプラットフォームの多くにおいて、基礎となる描画ハードウェアをできる限り直接与えるのが望ましい。これにより、有利なことに、デバイスドライバのオーバヘッドおよびデータの不必要な操作を回避することができる。これは、データ構造をできるだけ元の形式のままで構築することによって達成される。
コード生成パスにおいて、パケットに包含されるデータを描画するのに必要なCPU動作のセットを行うインスタンス化された各パケットに対して、バイトコードプログラムが生成される。次のパスにおいて、バイトコードプログラムは連結されて、一括最適化が、結果のプログラムに対して行われる。
このパスにおいて行われる特定の最適化は、対象となるプラットフォームの性質に依存する。このような最適化は、2つの種類、すなわち、データ転送最適化および冗長コード除去である。
デルであり、テクスチャまたはライティングなし、テクスチャおよびライティングあり、およびテクスチャおよびライティングありでスキニングされて描かれた。ウサギのモデルは、69451個のポリゴンを含む(ウサギのモデルはスタンフォード・コンピュータ・グラフィックス・ラボラトリ(Stanford Computer Graphics
Laboratory)提供。PCは、ATIラデオン(Radeon)8500グラフィックスアクセレレータを用いた1.4GHxzのAMDアスロン(Athlon)である)。
PU110および/またはGPU120)を制御するための命令を含み、本願明細書で教示したコンパイルの局面および描画の局面を含む本発明の様々な特徴および局面のいくつかまたは全体を実施する。
Claims (1)
- アートアセットをランタイムでコンピュータにおいて描画するための最適化されたコードを生成する方法であって、
アートアセットと、アートアセットに関連付けられた1つ以上の描画メソッドとを、コンパイラのフロントエンドに提供することと、
アートアセットの断片と、1つ以上の描画メソッドのうちの1つに対する個別の呼び出しとをそれぞれ表す1つ以上のパケットをコンパイラのフロントエンドで生成することと、
最適化されたコードと、データストリームとを、コンパイラのバックエンドで生成することとを含み、最適化されたコードおよびデータストリームは、アートアセットをランタイムでディスプレイに描画するために用いられる、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36304902P | 2002-03-08 | 2002-03-08 | |
US10/384,371 US7159212B2 (en) | 2002-03-08 | 2003-03-07 | Systems and methods for implementing shader-driven compilation of rendering assets |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003575274A Division JP2005520235A (ja) | 2002-03-08 | 2003-03-10 | シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006127556A true JP2006127556A (ja) | 2006-05-18 |
Family
ID=27807986
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003575274A Pending JP2005520235A (ja) | 2002-03-08 | 2003-03-10 | シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 |
JP2006031713A Pending JP2006127556A (ja) | 2002-03-08 | 2006-02-08 | シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003575274A Pending JP2005520235A (ja) | 2002-03-08 | 2003-03-10 | シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7159212B2 (ja) |
EP (1) | EP1483664A1 (ja) |
JP (2) | JP2005520235A (ja) |
KR (1) | KR100742419B1 (ja) |
CN (1) | CN100342331C (ja) |
AU (1) | AU2003218084B2 (ja) |
WO (1) | WO2003077125A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8624894B2 (en) | 2010-09-20 | 2014-01-07 | Samsung Electronics Co., Ltd | Apparatus and method of early pixel discarding in graphic processing unit |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US6809732B2 (en) * | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US6839062B2 (en) * | 2003-02-24 | 2005-01-04 | Microsoft Corporation | Usage semantics |
US6975321B1 (en) * | 2003-05-05 | 2005-12-13 | Nvidia Corporation | System and method for generating multiple outputs in a single shader processing pass in a hardware graphics pipeline |
US7533371B1 (en) * | 2003-09-22 | 2009-05-12 | Microsoft Corporation | User interface for facilitating performance analysis for processing |
US7095416B1 (en) * | 2003-09-22 | 2006-08-22 | Microsoft Corporation | Facilitating performance analysis for processing |
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 |
US8134561B2 (en) * | 2004-04-16 | 2012-03-13 | Apple Inc. | System for optimizing graphics operations |
US8704837B2 (en) * | 2004-04-16 | 2014-04-22 | Apple Inc. | High-level program interface for graphics operations |
US8427490B1 (en) * | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US7821516B2 (en) * | 2004-05-17 | 2010-10-26 | Pixar | Automatic pre-render pinning of change isolated assets methods and apparatus |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US7746347B1 (en) | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US8044951B1 (en) * | 2004-07-02 | 2011-10-25 | Nvidia Corporation | Integer-based functionality in a graphics shading language |
US7958498B1 (en) | 2004-07-02 | 2011-06-07 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US7257462B2 (en) * | 2004-09-14 | 2007-08-14 | Ugs Corp. | System, method, and computer program product for localized cavity milling design |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US20060071933A1 (en) * | 2004-10-06 | 2006-04-06 | Sony Computer Entertainment Inc. | Application binary interface for multi-pass shaders |
US20060082577A1 (en) * | 2004-10-20 | 2006-04-20 | Ugs Corp. | System, method, and computer program product for dynamic shader generation |
US8416251B2 (en) | 2004-11-15 | 2013-04-09 | Nvidia Corporation | Stream processing in a video processor |
US20060177122A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
US8004515B1 (en) * | 2005-03-15 | 2011-08-23 | Nvidia Corporation | Stereoscopic vertex shader override |
US7636126B2 (en) * | 2005-06-22 | 2009-12-22 | Sony Computer Entertainment Inc. | Delay matching in audio/video systems |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
KR100817920B1 (ko) * | 2005-12-23 | 2008-03-31 | 엠텍비젼 주식회사 | 임베디드 시스템, 정점 프로세싱 장치 및 디코더 |
US8171461B1 (en) | 2006-02-24 | 2012-05-01 | Nvidia Coporation | Primitive program compilation for flat attributes with provoking vertex independence |
US8006236B1 (en) * | 2006-02-24 | 2011-08-23 | Nvidia Corporation | System and method for compiling high-level primitive programs into primitive program micro-code |
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 |
US7965859B2 (en) | 2006-05-04 | 2011-06-21 | Sony Computer Entertainment Inc. | Lighting control of a user environment via a display device |
US7692660B2 (en) * | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
US8111260B2 (en) | 2006-06-28 | 2012-02-07 | Microsoft Corporation | Fast reconfiguration of graphics pipeline state |
US8954947B2 (en) * | 2006-06-29 | 2015-02-10 | Microsoft Corporation | Fast variable validation for state management of a graphics pipeline |
US20080007563A1 (en) * | 2006-07-10 | 2008-01-10 | Microsoft Corporation | Pixel history for a graphics application |
US7750913B1 (en) | 2006-10-24 | 2010-07-06 | Adobe Systems Incorporated | System and method for implementing graphics processing unit shader programs using snippets |
KR100898991B1 (ko) * | 2006-12-02 | 2009-05-27 | 한국전자통신연구원 | 3차원 그래픽 시스템의 쉐이더 제공 및 변환 장치 |
US8843881B2 (en) * | 2007-01-12 | 2014-09-23 | Microsoft Corporation | Transporting and processing foreign data |
KR100856211B1 (ko) | 2007-02-06 | 2008-09-03 | 삼성전자주식회사 | 그래픽 가속기 기반의 고속 영상 처리 방법 및 그 장치 |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US9024957B1 (en) * | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US8689194B1 (en) | 2007-08-20 | 2014-04-01 | The Mathworks, Inc. | Optimization identification |
US8189004B2 (en) * | 2007-11-09 | 2012-05-29 | Lucasfilm Entertainment Company Ltd. | Translating Renderman shading language code |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8581912B2 (en) | 2008-06-27 | 2013-11-12 | Microsoft Corporation | Dynamic subroutine linkage optimizing shader performance |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
DE102009011643A1 (de) * | 2009-03-04 | 2010-09-16 | Siemens Aktiengesellschaft | Verfahren und Programmprodukt für ein Erstellen von medizinischen Befunden anhand von medizinischen Bilddaten |
US8624898B1 (en) | 2009-03-09 | 2014-01-07 | Pixar | Typed dependency graphs |
US9038034B2 (en) * | 2009-12-22 | 2015-05-19 | Intel Corporation | Compiling for programmable culling unit |
US10786736B2 (en) | 2010-05-11 | 2020-09-29 | Sony Interactive Entertainment LLC | Placement of user information in a game space |
US8756590B2 (en) | 2010-06-22 | 2014-06-17 | Microsoft Corporation | Binding data parallel device source code |
US9082229B1 (en) * | 2011-05-10 | 2015-07-14 | Lucasfilm Entertainment Company Ltd. | Transforming animations |
US9342817B2 (en) | 2011-07-07 | 2016-05-17 | Sony Interactive Entertainment LLC | Auto-creating groups for sharing photos |
CN102509339B (zh) * | 2011-10-10 | 2014-04-02 | 武汉大学 | 一种带纹理约束的三维模型顶点聚类简化方法 |
US9558533B2 (en) | 2014-05-30 | 2017-01-31 | Apple Inc. | 3D asset performance enhancement |
US10403025B2 (en) * | 2015-06-04 | 2019-09-03 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
US9535763B1 (en) | 2015-11-30 | 2017-01-03 | International Business Machines Corporation | System and method for runtime grouping of processing elements in streaming applications |
CN106997610B (zh) * | 2016-01-26 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 一种图像渲染方法、装置及电子设备 |
US9928046B2 (en) * | 2016-02-12 | 2018-03-27 | International Business Machines Corporation | System and method for dynamic runtime merging of real time streaming operator environments |
GB2579113B (en) * | 2019-05-31 | 2021-04-21 | Imagination Tech Ltd | Rendering optimisation |
US11461115B2 (en) * | 2020-01-28 | 2022-10-04 | Sap Se | Third party executable asset bundle deployment |
CN112835621B (zh) * | 2021-01-13 | 2024-04-02 | 西安飞蝶虚拟现实科技有限公司 | 跨平台虚拟现实资源处理方法及处理系统 |
CN114004925B (zh) * | 2021-09-16 | 2022-11-22 | 北京城市网邻信息技术有限公司 | 基于WebGL的模型渲染方法、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555201A (en) * | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
US5566353A (en) * | 1994-09-06 | 1996-10-15 | Bylon Company Limited | Point of purchase video distribution system |
US5781184A (en) * | 1994-09-23 | 1998-07-14 | Wasserman; Steve C. | Real time decompression and post-decompress manipulation of compressed full motion video |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6359619B1 (en) * | 1999-06-18 | 2002-03-19 | Mitsubishi Electric Research Laboratories, Inc | Method and apparatus for multi-phase rendering |
-
2003
- 2003-03-07 US US10/384,371 patent/US7159212B2/en not_active Expired - Lifetime
- 2003-03-10 WO PCT/US2003/007420 patent/WO2003077125A1/en active Application Filing
- 2003-03-10 EP EP03714067A patent/EP1483664A1/en not_active Withdrawn
- 2003-03-10 CN CNB038080826A patent/CN100342331C/zh not_active Expired - Lifetime
- 2003-03-10 KR KR1020047014072A patent/KR100742419B1/ko not_active IP Right Cessation
- 2003-03-10 AU AU2003218084A patent/AU2003218084B2/en not_active Ceased
- 2003-03-10 JP JP2003575274A patent/JP2005520235A/ja active Pending
-
2006
- 2006-02-08 JP JP2006031713A patent/JP2006127556A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8624894B2 (en) | 2010-09-20 | 2014-01-07 | Samsung Electronics Co., Ltd | Apparatus and method of early pixel discarding in graphic processing unit |
Also Published As
Publication number | Publication date |
---|---|
CN1647034A (zh) | 2005-07-27 |
CN100342331C (zh) | 2007-10-10 |
AU2003218084A1 (en) | 2003-09-22 |
US7159212B2 (en) | 2007-01-02 |
JP2005520235A (ja) | 2005-07-07 |
US20040003370A1 (en) | 2004-01-01 |
KR20040086481A (ko) | 2004-10-08 |
WO2003077125A1 (en) | 2003-09-18 |
KR100742419B1 (ko) | 2007-07-24 |
AU2003218084B2 (en) | 2008-08-21 |
EP1483664A1 (en) | 2004-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006127556A (ja) | シェーダ駆動による描画アセットの編集を実施するためのシステムおよび方法 | |
Kessenich et al. | OpenGL Programming Guide: The official guide to learning OpenGL, version 4.5 with SPIR-V | |
CA2631639C (en) | A method to render a root-less scene graph with a user controlled order of rendering | |
US7619630B2 (en) | Preshaders: optimization of GPU pro | |
EP2289050B1 (en) | Shader interfaces | |
Olano et al. | A shading language on graphics hardware: The PixelFlow shading system | |
US10395410B2 (en) | System and method for real-time pose-based deformation of character models | |
US8203558B2 (en) | Dynamic shader generation | |
US20110316871A1 (en) | Fast reconfiguration of graphics pipeline state | |
Hu et al. | Parallel view-dependent level-of-detail control | |
Pulli et al. | Designing graphics programming interfaces for mobile devices | |
Movania | OpenGL Development Cookbook | |
He et al. | A system for rapid exploration of shader optimization choices | |
Liu et al. | Function-defined shape metamorphoses in visual cyberworlds | |
Lalonde et al. | Shader-driven compilation of rendering assets | |
Kosarevsky et al. | 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan | |
Krasnoproshin et al. | Graphics pipeline evolution based on object shaders | |
US20110032258A1 (en) | Source code generator for a graphics card | |
Trapp et al. | Automated Combination of Real-Time Shader Programs. | |
Austin | Renaissance: A functional shading language | |
Middendorf et al. | A programmable graphics processor based on partial stream rewriting | |
Ragan-Kelley | Practical interactive lighting design for RenderMan scenes | |
Kilgard | Cg in Two pages | |
Souza | An Analysis Of Real-time Ray Tracing Techniques Using The Vulkan® Explicit Api | |
Revie | Designing a Data-Driven Renderer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070906 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071206 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071211 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080501 |