JP6230702B2 - 頂点シェーダ演算を実行するフラグメントシェーダ - Google Patents

頂点シェーダ演算を実行するフラグメントシェーダ Download PDF

Info

Publication number
JP6230702B2
JP6230702B2 JP2016519563A JP2016519563A JP6230702B2 JP 6230702 B2 JP6230702 B2 JP 6230702B2 JP 2016519563 A JP2016519563 A JP 2016519563A JP 2016519563 A JP2016519563 A JP 2016519563A JP 6230702 B2 JP6230702 B2 JP 6230702B2
Authority
JP
Japan
Prior art keywords
vertex
shader
pixel shader
parameter value
accessing
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.)
Active
Application number
JP2016519563A
Other languages
English (en)
Other versions
JP2016524241A (ja
Inventor
ツェルニー、マーク、エヴァン
シンプソン、デイヴィッド
スカンリン、ジェイソン
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
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 Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JP2016524241A publication Critical patent/JP2016524241A/ja
Application granted granted Critical
Publication of JP6230702B2 publication Critical patent/JP6230702B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Description

本開示の態様は、コンピュータグラフィックに関する。特に、本開示は、グラフィック処理装置における頂点シェーダ及び画素シェーダの使用に関する。
グラフィック処理は通常、中央処理装置(CPU)及びグラフィック処理装置(GPU)の2つのプロセッサの協働を伴う。GPUは、ディスプレイへの出力のためのフレームバッファにおける画像の作成を加速するように設計された専用電子回路である。GPUは、組込みシステム、タブレットコンピュータ、可搬ゲーム機器、携帯電話、パーソナルコンピュータ、ワークステーション及びゲームコンソールにおいて使用される。GPUは通常、コンピュータグラフィックを操作する際に効率的となるように設計される。GPUは、大きなブロックのデータの処理が並列に行われるアルゴリズムのために、GPUを汎用CPUよりも効果的なものとする高度に並列化された処理アーキテクチャを有することが多い。
CPUは、特定のグラフィック処理タスクを実行し、例えば、画像の直前フレームに対して変化した特定のテクスチャをレンダリングするようにコマンドをGPUに送ることができる。これらの描画コマンドは、特定のアプリケーションの仮想環境の状態に対応するグラフィックレンダリングコマンドを送出するために、グラフィクス・アプリケーション・インターフェイス(API)とともにCPUによって調整される。
特定のプログラムについてテクスチャをレンダリングするために、GPUは、「グラフィックパイプライン」における一連の処理タスクを実行して、仮想環境における映像を、ディスプレイ上にレンダリングされる画像に変換する。通常のグラフィックパイプラインは、仮想空間での仮想オブジェクトに対する所定のレンダリングまたはシェーディング操作、ディスプレイへの出力に適した形式の画素データを生成する、シーンにおける仮想オブジェクトの変換及びラスター化、並びにレンダリングされた画像をディスプレイに出力する前のピクセル(またはフラグメント)に対する追加のレンダリングタスクを実行すること含む。
画像の仮想オブジェクトは、プリミティブとして知られる形状に関して仮想空間において記述されることが多く、これは仮想シーンにおけるオブジェクトの形状を併せて構成する。例えば、レンダリングされる3次元仮想世界におけるオブジェクトは、3次元空間におけるそれらの座標に関して規定された頂点を有する一連の個別の三角形プリミティブに縮小され、これにより、これらの多角形がオブジェクトの表面を構成する。各多角形は、所与の多角形を他の多角形から区別するように、グラフィック処理システムによって使用される対応のインデックスを有する。同様に、各頂点は、所与の頂点を他の頂点から区別するのに使用される対応のインデックスを有する。グラフィックパイプラインは、これらのプリミティブに対する所定の操作を実行して、仮想シーンに対する映像を生成し、このデータをディスプレイの画素による再生に適した2次元形式に変換する。ここで使用するグラフィックプリミティブ情報(または単に「プリミティブ情報」)という用語は、グラフィックプリミティブを表すデータのことをいうのに用いられる。そのようなデータは、以下に限定されないが、頂点情報(例えば、頂点位置または頂点インデックスを表すデータ)及び多角形情報、例えば、特定の頂点を特定の多角形に対応付ける多角形インデックス及び情報を含む。
GPUは、一般にシェーダとして知られるプログラムを実行することによってグラフィックパイプラインのレンダリングタスクを実行することができる。通常のグラフィックパイプラインは、頂点ごとにプリミティブの特定のプロパティを操作できる頂点シェーダ(「フラグメントシェーダ」としても知られる)、及びグラフィックパイプラインにおける頂点シェーダからのダウンストリームを操作し、画素データをディスプレイに送信する前に画素ごとに所定の値を操作することができる画素シェーダを含む。パイプラインはまた、パイプラインの種々の段階において、頂点シェーダの出力を用いて新たな組のプリミティブ(または対応するプリミティブ情報)を生成する幾何シェーダ、GPUによって実行されて他の所定の一般的演算タスクを実行する演算シェーダ(CS)などといった他のシェーダを含むことができる。
パイプラインにおいてグラフィックを処理することに関する1つの課題は、データがパイプラインにおける種々のシェーダに対して入出力されるにつれて特定のボトルネックが発生して性能を低下させることである。さらに、映像を実行する特定のアプリケーションの開発者がレンダリング処理を最適化できるようにするために、シェーダが種々の視覚パラメータ及び内在データを利用する態様に関して、より多い制御方法を開発者に与えることが望ましい。
この状況の中で、本開示の態様が生じている。
本開示の態様によると、コンピュータグラフィック処理方法は、頂点インデックス出力を頂点シェーダからキャッシュに書き込むこと、画素シェーダによって、キャッシュに書き込まれた頂点インデックスにアクセスすること、及び画素シェーダによって、頂点インデックスに対応付けられた頂点パラメータ値にメモリ部でアクセスすることを含む。
本開示のある実施例では、コンピュータグラフィック処理方法は、画素シェーダによって頂点パラメータ値に対して頂点シェーダ演算を実行することを更に含む。
ある実施例では、コンピュータグラフィック処理方法は、画素シェーダによって頂点パラメータ値を補間することを更に含む。
ある実施例では、頂点インデックスにアクセスすることは、頂点インデックスをキャッシュからGPUのローカルメモリ部に複製すること、及び画素シェーダによってローカルメモリ部でインデックスにアクセスすることを含む。
ある実施例では、頂点シェーダ演算は、3次元仮想空間におけるプリミティブの頂点の視覚効果を操作することを含む。
ある実施例では、頂点パラメータ値にアクセスすることは、三角形プリミティブの全3頂点のパラメータ値にアクセスすることを含む。
ある実施例では、方法は、頂点パラメータ値にアクセスすることの後に、画素シェーダによって頂点パラメータ値に対して頂点シェーダ演算を実行すること、画素シェーダによってパラメータ値を補間すること、及び画素シェーダによって、補間されたパラメータ値に対して画素シェーダ演算を実行することを更に含む。
ある実施例では、頂点シェーダ出力は頂点位置及び頂点インデックスに制限され、画素シェーダは、頂点インデックスにアクセスすることの後に、残余の頂点シェーダ演算を実行する。
ある実施例では、メモリ部はシステムの主メモリである。
ある実施例では、パラメータ値は主メモリにおける頂点バッファに記憶される。
本開示の態様によると、グラフィック処理システムは、グラフィック処理装置(GPU)、メモリ部及びキャッシュを含み、システムは、GPUによって頂点シェーダ及び画素シェーダを実装すること、頂点インデックス出力を頂点シェーダからキャッシュに書き込むこと、画素シェーダによって、キャッシュに書き込まれた頂点インデックスにアクセスすること、及び画素シェーダによって、頂点インデックスに対応付けられた頂点パラメータ値にメモリ部でアクセスすることを含むグラフィック処理方法を実施するように構成される。
ある実施例では、メモリ部はシステムの主メモリ部である。
ある実施例では、GPUは複数の演算部及び複数のローカルメモリ部を含み、ローカルメモリ部の各々は演算部の各1つに対応付けられている。
ある実施例では、頂点インデックスにアクセスすることは、頂点インデックスをキャッシュからローカルメモリ部に複製すること、及び画素シェーダによってローカルメモリ部から頂点インデックスにアクセスすることを含む。
ある実施例では、キャッシュはGPUに集積される。
本開示の態様によると、非一時的コンピュータ可読媒体は、そこに具現されるコンピュータ可読命令を有し、コンピュータ可読命令は、実行される場合にグラフィック処理方法を実施するように構成され、グラフィック処理方法は、頂点インデックス出力を頂点シェーダからキャッシュに書き込むこと、画素シェーダによって、キャッシュに書き込まれた頂点インデックスにアクセスすること、及び画素シェーダによって、メモリ部から頂点インデックスに対応付けられた頂点パラメータ値にアクセスすることを含む。
本開示の教示は、添付図面との関係において以下の詳細な説明を検討することによって直ちに理解できる。
図1A−1Cは、種々のグラフィック処理手法を説明する三角形プリミティブの模式図である。 図1D−1Eは、従来的なグラフィック処理手法のフロー図である。 図2Aは、図1Eの実施例との類似性を有する従来的なグラフィック処理手法の説明図である。 図2Bは、本開示の態様によるグラフィック処理手法の説明図である。 図3は、本開示の態様によるグラフィック処理手法のフロー図である。 図4は、本開示の態様によるグラフィック処理手法を実施するためのシステムの説明図である。
以降の詳細な説明は、説明の目的で多数の具体的詳細を含むが、当業者であれば、以降の詳細に対する多数の変形例及び変更例が発明の範囲内にあることを理解するはずである。したがって、以下に記載される発明の例示的実施形態は、特許請求の範囲に記載される発明に対して、いかなる一般性の喪失もなく、限定を加えることもなく詳述される。
序論
本開示の態様によると、頂点シェーダ出力は出力位置及び頂点インデックスだけに縮小され、画素シェーダは通常の画素シェーダ演算と同様に残余の頂点シェーダ演算を実行し、オブジェクトの加速されたレンダリングがもたらされる。
本開示の態様によると、頂点シェーダ演算を頂点の素のパラメータ値に対して実行するために、画素シェーダはパラメータ値にシステムメモリで直接アクセスする。そして、画素シェーダは、パラメータ値を補間し、レンダリングされた画素が画素シェーダからフレームバッファに出力される前に画素シェーダ演算を実行する。スループット及びパラメータ値の複製に関連するボトルネックは、頂点インデックス、及び頂点シェーダからの全部ではない出力パラメータを出力し、これらのインデックスを用いてメモリにおけるパラメータ値を画素シェーダで識別することによって軽減される。
図1A−1Cは、グラフィック処理手法の種々の態様、及びどのように頂点パラメータの補間が使用されてグラフィックを処理し、画像における仮想オブジェクトをレンダリングするかを示す。表示される仮想オブジェクトの種々の位置におけるパラメータ値を規定するために、グラフィック処理手法は重心補間処理を利用する。例として、そして限定ではなく、パラメータ値は、仮想空間に位置するプリミティブの各頂点における位置、色、テクスチャ座標、発光などであり、これらの頂点パラメータの重心補間はプリミティブ内の任意の位置におけるパラメータ値を特定するのに使用される。例えば、任意数の画素が、仮想シーンをディスプレイの画素にレンダリングするのに用いられる場合にプリミティブ内に位置し、プリミティブ内の画素位置において対応のパラメータ値を特定するのに上記の頂点パラメータ値の補間が使用される。
重心座標系を用いる補間処理の説明に係る態様を図1Aに示す。図1Aに、GPUによってグラフィックを処理するためのプリミティブとして利用される多角形(例えば、三角形)102を示す。なお、三角形は、最小頂点数(3点)を有する2次元形状であり、各三角形が平面となることが保証されているので、グラフィック処理におけるプリミティブとして一般に使用される。レンダリングされる画像における3次元オブジェクトのような仮想オブジェクトの表面を、仮想空間において方向付けられた多数の三角形プリミティブ102で構成することができる。三角形102は、各々が所定のパラメータ値P0、P1及びP2をそれぞれ有する頂点104a、104b及び104cを含む。
頂点パラメータ値P0、P1及びP2を補間することによって、三角形102の任意の点におけるパラメータ値Pi,jは、形状の角部におけるパラメータ間の線形関係を用いて規定される。座標i,jは、仮想オブジェクトを有する画像がディスプレイ上の画面スペースにレンダリングされる場合に、画素(または画素中心)の位置に対応する。したがって、この補間処理は、プリミティブ102に位置する画素のいずれかについてのパラメータ値を特定するのに使用される。仮想オブジェクトの任意の三角形102には、三角形内に位置する任意数の画素中心があり得る。例えば、プリミティブ内に位置し得る0個、1個、10個またはそれ以上の画素があり得る。
位置i,jにおける頂点パラメータを補間するために、頂点パラメータ値の1つが他の頂点のパラメータ値から減算され、これらの減算値が、所望のパラメータ値の位置に対応する三角形102内の重心座標位置の各々によって乗算される。これは、以下のように数学的に表され、ここでは、頂点パラメータP0が他の2つの頂点パラメータP1及びP2から減算され、これらの減算値が対応の座標値i,jによって乗算される。
Pi,j=P0+(P1−P0)i+(P2−P0)j
図1Bに、グラフィック処理アプリケーションのために仮想オブジェクトをレンダリングするのに使用される図1Aの三角形102と同様の複数の三角形102a−dを示す。図1B及び以下の記載は、グラフィック処理手法を実施する際に頂点パラメータデータが利用及び記憶される種々の態様を説明するために簡略化された概略的な記述である。
三角形102a−dの各々は、対応するパラメータ値を各々が有する3個の頂点を有する。さらに、三角形102a−dは多数の共通頂点を共有し、このように、パラメータ値の多くが異なる三角形に対して共通する。パラメータ値を、それらが三角形の各々に対応付けられるように複数回記憶するのではなく、各頂点が識別インデックスに割り当てられる。簡略な例として、図1Bに示す頂点は、それぞれが識別インデックス0、1、3、9、10及び4に割り当てられる。これらのインデックス及びそれらに対応したパラメータ値は、「頂点バッファ」として一般に知られるものに記憶される。さらに、三角形102a−dの各々は、それらの対応する頂点インデックスによって識別され、例えば、三角形102aは(0,1,3)によって識別され、三角形102bは(1,3,9)によって識別され、以下同様にして、この情報が「インデックスバッファ」として一般に知られているものに記憶される。したがって、共通の頂点パラメータ値は、バッファにおいて識別されるそれぞれのインデックスによって各個別の三角形102a−dに対応付けられる。
図1Bはまた、プリミティブ102a−d上に重ねられる一連の画素位置a−fを示す。例えば図1Aに関して上述したようなパラメータ値の補間は、各プリミティブ内の画素位置a−fの各々におけるパラメータ値を、各プリミティブを識別する各頂点パラメータ値及びインデックスに基づいて特定するのに使用される。例として、そして限定ではなく、三角形102a−dは3次元仮想環境において方向付けられ、画素位置a−fは、レンダリングされる仮想環境の画像を表示するのに使用される2次元画面の画素に対応する。
パラメータ値が三角形内に位置する画素a、b及びcに割り当てられる種々の態様を説明するために、図1Cに、図1Bの三角形102a及び102bを示す。図1Cに示すように、頂点パラメータ値P0、P1及びP2は、各個別の三角形102a及び102bに固有に割り当てられ、インデックスバッファに記憶されたインデックス0、1、3及び9に基づいて識別される。補間は、図1Aに関して上述したように、対応するパラメータ値を頂点バッファでアクセスし、パラメータ値P0を残余の頂点パラメータP1及びP2から減算することによって実行される。
各プリミティブのパラメータ値を補間することの代替として、「フラットシェーディング」として知られる手法が用いられてもよい。フラットシェーディングを用いると、「起点となる頂点」、例えばP0が各三角形について規定され、残余の頂点との差、例えばP1−P0及びP2−P0が単にゼロ設定される。三角形内に位置する任意の画素が、起点となる頂点のパラメータ値とともに頂点シェーダから出力される。これにより、補間演算に関連する多量のオーバーヘッドを節約することができるが、仮想オブジェクトが相状に見えてしまい、これは多くのアプリケーションにおいて望ましくない。
図1Dに、従来的な一方法100aによる頂点パラメータの補間を実行する説明に係る種々の態様のフロー図を示し、この方法によると画素シェーダによって受信される前に補間全体が実行される。画素a−fについてのパラメータ値を特定するために頂点パラメータが頂点シェーダ110及び画素シェーダ112との協働においてどのように補間されるのかを示すために、図1Dの方法100aは、図1B及び1Cに示すような三角形102a−dを利用する(なお、a−fをフレームバッファに出力する前に更なる修正が画素シェーダによって実行されるので、a−fは、より正確にはフラグメントまたはプレ画素を意味するが、ここでは説明の便宜上、単に画素というものとする)。
方法100aは、頂点シェーダ110によって所定の頂点シェーダ演算114を実行することを含み、これは、レンダリングされるグラフィックをアプリケーションの仮想環境で調整するグラフィックAPIから受信された描画コマンドによる、仮想オブジェクトの頂点パラメータの頂点ごとの所定操作を含む。頂点シェーダ110は、図1Dに示す三角形102a−dの各々についての対応する頂点パラメータ値P0、P1及びP2を出力する。
これらの頂点パラメータ値P0、P1及びP2は、対応する三角形102a−d内に位置する画素位置a−fにおけるパラメータ値P−Pを特定するために、各三角形について116において補間される。116における補間は、例えば図1Aに関して説明したように、頂点パラメータ値P0を他の2つの頂点パラメータ値P1及びP2から減算し、これらの減算値をそれらの対応する重心座標で乗算し、座標で規定される画素位置におけるパラメータを補間するように乗算値を加算することを含む。図1Dに示す手法では、補間116は、全体として、GPUに対応付けられたパラメータ補間ハードウェア構成要素によって、画素シェーダプログラム112がパラメータ値を入力として受信する前に実行される。画素シェーダ112は、118において所定の画素シェーダ演算を画素a−fの各々について、すなわち画素ごとに実行することによって各画素a−fを更に操作し、出力画素120が得られる。出力画素120はフレームバッファに記憶され、ディスプレイ上にレンダリングされる画像として出力される。
図1Eに、他の従来的な方法100bによって頂点パラメータの補間を実行する説明に係る種々の態様のフロー図を示す。図1Eに示す従来的な方法100bは、図1Dに示す従来的な方法100aとは、パラメータが画素シェーダ112に到達する前に補間116の減算部122のみが実行される点を除いて同様である。この手法100bでは、補間116の減算部122は、画素シェーダプログラム112が減算済みパラメータ値を入力として受信して補間116の残りを実行する前に、GPUに対応付けられたパラメータ補間ハードウェア構成要素によって実行される。したがって、頂点パラメータの補間116の残りは、絶対頂点パラメータP0、パラメータP0に対して減算された減算パラメータ値P10及びP20並びに絶対頂点パラメータ値P0に対する所望のパラメータPの座標の、124における単純な乗算及び加算演算に軽減されることになる。対応する三角形102a−dの各々について、P10=P1−P0であり、P20=P1−P0である。これにより、前述した所望のパラメータ値P−Pが得られ、これが、出力画素120を生成するように118において画素シェーダによって更に操作される。
図2Aは、従来的な方法によってグラフィックを処理するように構成された種々のハードウェア及びソフトウェア構成要素で実行される方法200aの説明図を示す。図2Aに示す方法200aは、図1Eに示す方法100bと類似する。
頂点シェーダ210は、画面スペースにおけるプリミティブの頂点の位置230、頂点の発光、影、色などの操作といったような、各プリミティブの頂点に対する他の種々のレンダリング効果234を特定することを含む、種々の頂点シェーダ演算214を実行する。頂点シェーダ演算214から得られる種々のパラメータP0、P1及びP2は一時的な記憶のためにパラメータキャッシュ236に書き込まれ、システムのパラメータ補間ハードウェア構成要素222は、パラメータキャッシュ236からのそれぞれの組のパラメータをGPUの各演算部の各小容量ローカルメモリ部237に書き込む前にパラメータ値を減算することによって、補間の一部を実行する。各ローカルメモリ部237は、GPUの各演算部に対応付けられたローカルデータシェア(LDS)としても知られる小容量であるが高速なローカルメモリ部であり、シェーダプログラムを並列に稼働させる複数の上記メモリ部及び演算部がある。
頂点シェーダ出力位置230は、例えばここに記載するように、それらがパラメータ値を補間するのに使用されるように各プリミティブに対する画素の重心座標i,jを生成するハードウェア構成要素238によって使用される。画素シェーダ212は、各所望のパラメータi,jの座標を用いて乗算及び加算演算224を実行することによって補間を完了するために、ローカルデータシェア237で絶対パラメータ値P0並びに相対パラメータ値P10及びP20にアクセスする。そして、画素シェーダ212は、所定の更なる画素シェーダ演算218を実行して、例えばフレームバッファに出力する前に画素を更に操作する。
上述した手法200aの1つの欠点は、画素シェーダに対するパラメータのスループットに関連する特定のボトルネックが起こることであり、これは仮想オブジェクトのレンダリングの速度を低下させ得る。1つに、パラメータキャッシュへのパラメータ書込みスループットがボトルネックとなることが認識されてきた。例えば、各パラメータは、例えば32ビットの浮動小数点数のような大きな属性変数となり、頂点シェーダはこれらの属性変数を一連の、例えば一時に4個のウェーブフロントとしてパラメータキャッシュ236に書き込む。さらに、パラメータキャッシュの使用によって、記憶される頂点シェーダのウェーブフロント数が更に制限され、更なるボトルネックが生ずる。そして、パラメータはローカルデータシェア237に複製され、画素シェーダによってアクセスされる前に一時的に記憶され、画素シェーダのウェーブフロント数を制限することによって、制限されたスループット及び合計ローカルデータシェアの使用によって再度ボトルネックが生ずる。
上述した手法200aの他の欠点は、減算されたパラメータ値P10及びP20が画素シェーダ212に到達する前に計算されるため、画素シェーダは素のパラメータ値P1及びP2に直接アクセスできないことであり、これにより、画素シェーダによって実行されるレンダリング効果の種類が制限される。
実施例
図2Bに、本開示の態様の実施例を示す。図2Bは、本開示の種々の態様による、グラフィックを処理するように構成された種々のハードウェア及びソフトウェア構成要素によって実施される手法200bの概略図を示す。図2Bに示す実施例では、例えば、上述したようなパラメータ値のスループットに関連するボトルネックは、頂点パラメータ値への直接のアクセスを画素シェーダに与えることによって対処される。そして、画素シェーダは、通常の画素シェーダ演算を実行する前の頂点パラメータの補間と同様に、頂点シェーダに従来的に対応付けられたこれらの素の頂点パラメータ値に対して多数の演算を実行することができる。
図2Bに示すように、画素シェーダ210は、214aにおいて示すような頂点シェーダ演算を実行する。場合によっては、これらの演算は、他のパラメータ値が頂点シェーダ出力から省かれるように、頂点位置230を特定すること及びインデックスを出力することに限られてもよい。頂点シェーダ出力パラメータをパラメータキャッシュ236に書き込むのではなく、頂点シェーダ210は、各プリミティブ(例えば、三角形または他の多角形)を識別する頂点インデックスI0、I1及びI0をパラメータキャッシュ236にただ書き込むように構成される。そして、これらのインデックスは、画素シェーダがそれらにローカルにアクセスできるように、ローカルデータシェア237に送られる。これらのインデックスI0、I1及びI2にアクセスできるので、画素シェーダ212は、インデックスに対応付けられた素のパラメータ値P0、P1及びP2に、システムの主メモリ、例えば頂点バッファで直接アクセスすることができる。これらのパラメータ値にアクセスできるので、画素シェーダ212は、三角形の頂点に対する他の視覚効果234を含み得る残余の頂点シェーダ演算214bを実行することができる。そして、画素シェーダは、各画素位置でパラメータ値を特定するために、座標i,jを用いて、残余の頂点シェーダ演算214bから得られたパラメータ値の補間216を実行する。そして、画素シェーダ212は、補間値に対して、画素への更なる視覚効果を含む更なる画素シェーダ演算218を実行して出力画素を生成する。
この説明に係る実施例では、画素シェーダに送信されるインデックスI0、I1及びI2はパラメータ値について使用される属性変数よりも非常に小さいデータ量であるので、例えばインデックスは基本的に1つの数のみであるので、これらのパラメータ値のスループットに関連するボトルネックが減少する。
ただし、頂点シェーダ演算214b及び補間216を図2Bに示す態様で画素シェーダ212に実行させることによって、全体のシェーダと同様に画素シェーダにおける演算負荷が増加することになる。例えば、画像には、通常は可視頂点よりも多くの画素がある。説明する方法では頂点シェーダ演算214bは頂点シェーダ演算210ではなく画素シェーダ212によって実行されるので、頂点シェーダがそうするようにそれらを頂点ごとに1回実行するのではなく、それらは画素ごとに3回(すなわち、画素を含む三角形プリミティブの各頂点について)実行される。したがって、演算負荷をこのような態様で増加させることは従来的な知恵に反し、これは、演算負荷を増加させることによって性能が低下して望ましくないと言えそうである。しかし、パラメータスループットに関連するボトルネックはレンダリング速度よりも大きな制限的要因であり、たとえより多くの演算が画素シェーダによって実行されなければならないとしても、全体的性能は実際に高められ、オブジェクトのレンダリングは加速される。
またさらに、例えば上述したような従来的なフラットシェーディング手法では、画素シェーダは、インデックスの全て及び各三角形に対する頂点パラメータの全てに直接アクセスすることができない。せいぜい、それは起点となる頂点にアクセスできるに過ぎず、例えば、図2Bに示すような頂点シェーダ演算214bを画素シェーダが実行することを阻害するといったように、実行可能なレンダリング及び生成可能な視覚効果の種類を制限することになる。
図3は、本開示の種々の態様による、頂点シェーダ及び画素シェーダによってグラフィックを処理するための方法300のフロー図を示す。方法300は、図2Bに示すグラフィック処理手法200bと類似性を有する。
説明する方法300は、頂点シェーダ310によって頂点シェーダ演算314aを実行することを含む。多数の通常の頂点シェーダ演算が、頂点シェーダ310によって実行される演算314aから省かれ、その代わりに画素シェーダ312を用いて画素ごとに実行される。頂点シェーダ310の出力は、プリミティブ302a−dの各々について頂点出力位置及び頂点インデックスに限定される。プリミティブは、インデックスI0、I1及びI2によって識別される3頂点を各々が有する三角形であり、図1Bに示す三角形102a−dと同様である。
インデックスは画素シェーダ312に送られ、それはインデックスI0、I1及びI2を用いて、異なるプリミティブ302a−dの各々に対する頂点パラメータ値P0、P1及びP2の各々に直接アクセスすることができる。画素シェーダ312は、例えば、頂点インデックスに対応付けられた頂点バッファに記憶されたパラメータ値を有するシステムメモリに直接アクセスすることによって、素のパラメータ値に直接アクセスする。画素シェーダはパラメータ値を用いて残余の頂点シェーダ演算314bを実行し、それは各プリミティブの各頂点に対して所定の視覚効果をレンダリングすることを含む。そして、画素シェーダ312は、プリミティブ内の各画素位置におけるパラメータ値P−Pを抽出するために、画素シェーダ演算314bを実行した後に、得られるパラメータ値を補間する。そして、画素シェーダ312は、補間パラメータ値を用いて画素に対して画素シェーダ演算318を実行することによって画素に対する追加の視覚効果を生成し、レンダリングされた画素320を、例えばシステムメモリのフレームバッファに出力する。
本開示の態様は、上述した構成を実現するように構成されたグラフィック処理システムを含む。例として、そして限定ではなく、図4に、本開示の態様によるグラフィック処理を実施するのに使用されるコンピュータシステム400のブロック図を示す。本開示の態様によると、システム400は、組込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、可搬ゲーム機器、ワークステーション、ゲームコンソールなどである。
システム400は、概略として、中央処理装置(CPU)470、グラフィック処理装置(GPU)471、並びにCPU及びGPUの双方にアクセス可能な主メモリ472を含む。CPU470及びGPU471の各々は、1以上のプロセッサコア、例えば、単一のコア、2個のコア、4個のコア、8個のコアまたはそれ以上を含む。主メモリ472は、アドレス指定可能なメモリ、例えばRAM、DRAMなどを与える集積回路の形態となり得る。
例として、そして限定ではなく、CPU470及びGPU471は、データバス476を用いて主メモリ472にアクセスする。場合によっては、システム400が2以上の異なるバスを含むことが有用である。主メモリ472は、CPU470及びGPU472によってアクセス可能なデータを含む。主メモリはデータを、頂点バッファ463、インデックスバッファ466及びフレームバッファ464を含むバッファに一時的に記憶する。
CPUは、CPUコードを実行するように構成され、これは、レンダリングされたグラフィックを利用するアプリケーション460と、GPUによって実行されるプログラムに描画コマンドを送出するためのドライバ/コンパイラ461及びグラフィックAPI462とを含む。CPUコードはまた、物理シミュレーション及び他の機能を実現する。GPUは、本開示の説明に係る実施例に関して上述したように動作するように構成される。特に、GPUはGPUコードを実行し、これは、上述したように、頂点シェーダ410及び画素シェーダ412を実現する。これらのシェーダは、主メモリ472のデータとのインターフェイスとなり、画素シェーダは、レンダリングされる画素を、ディスプレイへの出力前の一時的な記憶のためにフレームバッファ464に出力する。GPUは、グラフィック処理タスクを並列に実行するように構成された複数の演算部(CU)465を含む。各演算部は、上述したローカルデータシェア(LDS)437のような、それ自身の専用ローカルメモリストアを含む。システム400はまた、頂点インデックスデータ468を一時的に記憶するためのキャッシュ436を含み、データはキャッシュ436から各LDS437に複製され、それはデータを並列に利用するシェーダプログラムを実現する。パラメータキャッシュ436は、GPUに集積されていてもよいし、GPUとは別体であって、例えばバス476を介してGPUにアクセス可能であってもよい。GPUは、例えば、幾何シェーダ及び演算シェーダのような他のプログラムを実行することもできる。
システム400は公知のサポート機能477を含んでいてもよく、これは、例えばバス476を介してシステムの他の構成要素と通信することができる。そのようなサポート機能は、限定するわけではないが、入力/出力(I/O)要素479、電源(P/S)480及びクロック(CLK)481を含む。
装置400は、プログラム及び/またはデータを記憶するディスクドライブ、CD−ROMドライブ、フラッシュメモリ、テープドライブなどといった大容量記憶装置484を選択的に含む。装置400はまた、装置400とユーザとの間の相互作用を促進する表示部486及びユーザインターフェイス部488を含む。表示部486は、フラットパネルディスプレイ、冷陰極管(CRT)画面、タッチスクリーン、またはテキスト、数字、グラフィカルな記号若しくは画像を表示できる他の装置である。ディスプレイ486は、ここに記載される種々の手法によって処理されたレンダリングされた画像487を表示する。ユーザインターフェイス488は、キーボード、マウス、ジョイスティック、ライトペン、ゲームコントローラ、またはグラフィカルユーザインターフェイス(GUI)との関係で使用される他の装置を含む。システム400はまた、装置がネットワークを介して他の装置と通信することを可能とするネットワークインターフェイス490を含む。ネットワークは、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワークBluetooth(登録商標)ネットワークなどのパーソナルエリアネットワーク、または他のタイプのネットワークである。これらの構成要素は、ハードウェア、ソフトウェア若しくはファームウェアまたはこれらの2以上の組合せにおいて実現される。
上記は本発明の好適な実施形態の完全な説明であるが、種々の変更、変形及び等化を用いることが可能である。したがって、本発明の範囲は、上記の説明を参照して特定されるべきではなく、付随する特許請求の範囲及びそれらの均等の全範囲を参照して特定されるべきである。好適か否かにかかわらずここに記載されるいずれの構成も、好適か否かにかかわらずここに記載される他の構成と組み合わせることができる。以降の特許請求の範囲において、不定冠詞「A」または「An」は、明示的に断りがある場合を除き、冠詞に続く項目の1以上の数量を意味する。付随する特許請求の範囲は、文言「・・・のための手段」を用いる所与の請求項にそのような発明特定事項が明示的に記載されない限り、ミーンズプラスファンクションの発明特定事項を含むものとして解釈されるべきではない。

Claims (19)

  1. コンピュータグラフィック処理方法であって、
    頂点シェーダから出力された頂点インデックスをキャッシュに書き込むこと、
    画素シェーダによって、前記キャッシュに書き込まれた前記頂点インデックスにアクセスすること、及び
    前記画素シェーダによって、前記頂点インデックスに対応付けられた頂点パラメータ値にメモリ部でアクセスすること
    を備え
    前記画素シェーダによってアクセスされる前記頂点パラメータ値は、前記頂点シェーダによって処理されておらず、前記画素シェーダが、前記頂点インデックスにアクセスすることの後に、残余の頂点シェーダ演算を実行する方法。
  2. 請求項1に記載の方法であって、前記画素シェーダによって、前記頂点パラメータ値に対して頂点シェーダ演算を実行することを更に含む前記方法。
  3. 請求項2に記載の方法において、前記頂点シェーダ演算が、3次元仮想空間におけるプリミティブの頂点の視覚効果を操作することを含む、前記方法。
  4. 請求項1に記載の方法であって、前記画素シェーダによって前記頂点パラメータ値を補間することを更に含む前記方法。
  5. 請求項1に記載の方法において、前記頂点インデックスにアクセスすることが、前記頂点インデックスを前記キャッシュからGPUのローカルメモリ部に複製すること、及び前記画素シェーダによって前記ローカルメモリ部で前記インデックスにアクセスすることを含む、前記方法。
  6. 請求項1に記載の方法において、前記頂点パラメータ値にアクセスすることが、三角形プリミティブの全3頂点のパラメータ値にアクセスすることを含む、前記方法。
  7. 請求項1に記載の方法であって、前記頂点パラメータ値にアクセスすることの後に、
    前記画素シェーダによって、前記頂点パラメータ値に対して頂点シェーダ演算を実行すること、
    前記画素シェーダによって、前記パラメータ値を補間すること、及び
    前記画素シェーダによって、補間された前記パラメータ値に対して画素シェーダ演算を実行すること
    を更に含む前記方法。
  8. 請求項1に記載の方法において、頂点シェーダ出力は頂点位置及び前記頂点インデックスに制限される、前記方法。
  9. 請求項1に記載の方法において、前記メモリ部がシステムの主メモリである、前記方法。
  10. 請求項9に記載の方法において、前記パラメータ値が前記主メモリにおける頂点バッファに記憶される、前記方法。
  11. グラフィック処理システムであって、
    グラフィック処理装置(GPU)、
    メモリ部、及び
    キャッシュ
    を備え、
    前記システムが、グラフィック処理方法を実施するように構成され、前記方法が、
    前記GPUによって頂点シェーダ及び画素シェーダを実装すること、
    頂点シェーダから出力された頂点インデックスを前記キャッシュに書き込むこと、
    前記画素シェーダによって、前記キャッシュに書き込まれた前記頂点インデックスにアクセスすること、及び
    前記画素シェーダによって、前記頂点インデックスに対応付けられた頂点パラメータ値に前記メモリ部でアクセスすること
    を備え
    前記画素シェーダによってアクセスされる前記頂点パラメータ値は、前記頂点シェーダによって処理されておらず、前記画素シェーダが、前記頂点インデックスにアクセスすることの後に、残余の頂点シェーダ演算を実行するシステム。
  12. 請求項11に記載のシステムにおいて、前記メモリ部が前記システムの主メモリ部である、前記システム。
  13. 請求項11に記載のシステムにおいて、前記GPUが複数の演算部及び複数のローカルメモリ部を備え、前記ローカルメモリ部の各々が前記演算部の各1つに対応付けられている、前記システム。
  14. 請求項13に記載のシステムにおいて、前記頂点インデックスにアクセスすることが、前記頂点インデックスを前記キャッシュから前記ローカルメモリ部に複製すること、及び前記画素シェーダによって前記ローカルメモリ部から前記頂点インデックスにアクセスすることを含む、前記システム。
  15. 請求項11に記載のシステムにおいて、前記キャッシュが前記GPUに集積されている、前記システム。
  16. 請求項11に記載のシステムにおいて、前記方法が、前記画素シェーダによって前記頂点パラメータ値に対して頂点シェーダ演算を実行することを更に含む、前記システム。
  17. 請求項11に記載のシステムにおいて、前記方法が、前記画素シェーダによって前記パラメータ値を補間することを更に含む、前記システム。
  18. 請求項11に記載のシステムにおいて、組込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、可搬ゲーム機器、ワークステーションまたはゲームコンソールである前記システム。
  19. ンピュータ可読命令を格納した非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令が、実行される場合にグラフィック処理方法を実施するように構成されており、前記グラフィック処理方法が、
    頂点シェーダから出力された頂点インデックスをキャッシュに書き込むこと、
    画素シェーダによって、前記キャッシュに書き込まれた前記頂点インデックスにアクセスすること、及び
    前記画素シェーダによって、メモリ部から前記頂点インデックスに対応付けられた頂点パラメータ値にアクセスすること
    を備え
    前記画素シェーダによってアクセスされる前記頂点パラメータ値は、前記頂点シェーダによって処理されておらず、前記画素シェーダが、前記頂点インデックスにアクセスすることの後に、残余の頂点シェーダ演算を実行する非一時的コンピュータ可読媒体。
JP2016519563A 2013-06-10 2014-06-06 頂点シェーダ演算を実行するフラグメントシェーダ Active JP6230702B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361833218P 2013-06-10 2013-06-10
US61/833,218 2013-06-10
US14/297,231 US10096079B2 (en) 2013-06-10 2014-06-05 Fragment shaders perform vertex shader computations
US14/297,231 2014-06-05
PCT/US2014/041386 WO2014200866A1 (en) 2013-06-10 2014-06-06 Fragment shaders perform vertex shader computations

Publications (2)

Publication Number Publication Date
JP2016524241A JP2016524241A (ja) 2016-08-12
JP6230702B2 true JP6230702B2 (ja) 2017-11-15

Family

ID=52005098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016519563A Active JP6230702B2 (ja) 2013-06-10 2014-06-06 頂点シェーダ演算を実行するフラグメントシェーダ

Country Status (5)

Country Link
US (2) US10096079B2 (ja)
EP (1) EP3008700B1 (ja)
JP (1) JP6230702B2 (ja)
CN (2) CN110097625B (ja)
WO (1) WO2014200866A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
KR102188543B1 (ko) * 2014-02-07 2020-12-08 삼성전자주식회사 그래픽 처리 장치
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
EP4145297A1 (en) 2016-01-22 2023-03-08 Sony Interactive Entertainment Inc. Simulating legacy bus behavior for backwards compatibility
WO2017127631A1 (en) 2016-01-22 2017-07-27 Sony Interactive Entertainment Inc Spoofing cpuid for backwards compatibility
US10192280B2 (en) 2016-04-08 2019-01-29 Qualcomm Incorporated Per-vertex variable rate shading
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US10510185B2 (en) * 2017-08-25 2019-12-17 Advanced Micro Devices, Inc. Variable rate shading
CN110648385A (zh) * 2018-06-27 2020-01-03 北京京东尚科信息技术有限公司 三角面拣选方法、装置、电子设备及计算机可读介质
CN109242758A (zh) * 2018-09-18 2019-01-18 珠海金山网络游戏科技有限公司 一种材质参数存储、材质参数获取方法及装置
CN112233008A (zh) * 2020-09-23 2021-01-15 中国船舶重工集团公司第七一六研究所 一种gpu中实现三角形光栅化的装置和方法

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US7009615B1 (en) 2001-11-30 2006-03-07 Nvidia Corporation Floating point buffer system and method for use during programmable fragment processing in a graphics pipeline
US6897871B1 (en) 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US20050122338A1 (en) 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
DE102004009274A1 (de) * 2004-02-26 2005-09-15 Robert Bosch Gmbh Vorrichtung zur Bereitstellung und/oder Auswertung von Navigationsdaten sowie Verfahren zur Freischaltung von Navigationsdaten in einem Navigationssystem
US7552316B2 (en) 2004-07-26 2009-06-23 Via Technologies, Inc. Method and apparatus for compressing instructions to have consecutively addressed operands and for corresponding decompression in a computer system
US7439983B2 (en) * 2005-02-10 2008-10-21 Sony Computer Entertainment Inc. Method and apparatus for de-indexing geometry
US8065354B1 (en) 2005-03-04 2011-11-22 Nvidia Corporation Compression of 16 bit data using predictor values
US7468726B1 (en) 2005-12-01 2008-12-23 Nvidia Corporation Culling in a vertex processing unit
US8595747B2 (en) 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US20070171219A1 (en) 2006-01-20 2007-07-26 Smedia Technology Corporation System and method of early rejection after transformation in a GPU
CN100395778C (zh) 2006-03-15 2008-06-18 威盛电子股份有限公司 绘图系统以及绘图控制方法
KR100882842B1 (ko) 2007-02-26 2009-02-17 삼성전자주식회사 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법
US8355028B2 (en) 2007-07-30 2013-01-15 Qualcomm Incorporated Scheme for varying packing and linking in graphics systems
US8325184B2 (en) * 2007-09-14 2012-12-04 Qualcomm Incorporated Fragment shader bypass in a graphics processing unit, and apparatus and method thereof
US8254701B1 (en) 2007-12-13 2012-08-28 Nvidia Corporation Data compression using a geometry shading unit
US8769207B2 (en) * 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US9214007B2 (en) * 2008-01-25 2015-12-15 Via Technologies, Inc. Graphics processor having unified cache system
US8259111B2 (en) * 2008-05-30 2012-09-04 Advanced Micro Devices, Inc. Merged shader for primitive amplification
US9123151B2 (en) * 2008-08-05 2015-09-01 Autodesk, Inc. Exchanging data between vertex shaders and fragment shaders on a graphics processing unit
US8436854B2 (en) * 2009-05-29 2013-05-07 Qualcomm Incorporated Graphics processing unit with deferred vertex shading
US8542247B1 (en) 2009-07-17 2013-09-24 Nvidia Corporation Cull before vertex attribute fetch and vertex lighting
US8743131B2 (en) 2009-09-10 2014-06-03 Advanced Micro Devices, Inc. Course grain command buffer
US9245371B2 (en) * 2009-09-11 2016-01-26 Nvidia Corporation Global stores and atomic operations
US8810592B2 (en) 2009-10-09 2014-08-19 Nvidia Corporation Vertex attribute buffer for inline immediate attributes and constants
US8760460B1 (en) 2009-10-15 2014-06-24 Nvidia Corporation Hardware-managed virtual buffers using a shared memory for load distribution
US8619085B2 (en) 2010-03-08 2013-12-31 Broadcom Corporation Method and system for compressing tile lists used for 3D rendering
US9349154B2 (en) 2010-04-05 2016-05-24 Nvidia Corporation Bindless texture and image API
GB2483502B (en) 2010-09-10 2014-05-07 Imagination Tech Ltd Random accessible lossless parameter data compression for title based 3D computer graphics system
US8499305B2 (en) 2010-10-15 2013-07-30 Via Technologies, Inc. Systems and methods for performing multi-program general purpose shader kickoff
WO2012074092A1 (ja) * 2010-12-03 2012-06-07 株式会社ディジタルメディアプロフェッショナル 画像処理装置
GB201103699D0 (en) 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphic processing
US8941655B2 (en) 2011-09-07 2015-01-27 Qualcomm Incorporated Memory copy engine for graphics processing
US9256915B2 (en) 2012-01-27 2016-02-09 Qualcomm Incorporated Graphics processing unit buffer management
CN103020205B (zh) 2012-12-05 2018-07-31 中科天玑数据科技股份有限公司 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders

Also Published As

Publication number Publication date
CN110097625A (zh) 2019-08-06
EP3008700B1 (en) 2020-08-12
EP3008700A4 (en) 2017-01-11
US10733691B2 (en) 2020-08-04
CN105556565A (zh) 2016-05-04
US20190035050A1 (en) 2019-01-31
US20140362101A1 (en) 2014-12-11
EP3008700A1 (en) 2016-04-20
WO2014200866A1 (en) 2014-12-18
US10096079B2 (en) 2018-10-09
CN105556565B (zh) 2019-06-25
JP2016524241A (ja) 2016-08-12
CN110097625B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
JP6230702B2 (ja) 頂点シェーダ演算を実行するフラグメントシェーダ
JP6591405B2 (ja) 頂点シェーダ出力パラメータの圧縮スキーム
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
JP2021061041A (ja) 中心窩ジオメトリテッセレーション
US9449421B2 (en) Method and apparatus for rendering image data
JP5960368B2 (ja) ビジビリティ情報を用いたグラフィックスデータのレンダリング
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
JP2016212859A (ja) 両眼視差映像に対するレンダリング方法及びその装置
JP2015515059A (ja) シーンにおける不透明度レベルを推定する方法とそれに対応する装置
JP2017062789A (ja) グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法
EP4018417A1 (en) Using bounding volume representations for raytracing dynamic units within a virtual space
KR102644276B1 (ko) 그래픽 처리 장치 및 방법
JP5916764B2 (ja) 仮想環境における隠蔽の推定方法
JP2009163469A (ja) 大局照明回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171017

R150 Certificate of patent or registration of utility model

Ref document number: 6230702

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250