JP6591405B2 - 頂点シェーダ出力パラメータの圧縮スキーム - Google Patents

頂点シェーダ出力パラメータの圧縮スキーム Download PDF

Info

Publication number
JP6591405B2
JP6591405B2 JP2016518048A JP2016518048A JP6591405B2 JP 6591405 B2 JP6591405 B2 JP 6591405B2 JP 2016518048 A JP2016518048 A JP 2016518048A JP 2016518048 A JP2016518048 A JP 2016518048A JP 6591405 B2 JP6591405 B2 JP 6591405B2
Authority
JP
Japan
Prior art keywords
vertex
parameter value
shader
vertex parameter
compressed
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
JP2016518048A
Other languages
English (en)
Other versions
JP2016523404A (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 JP2016523404A publication Critical patent/JP2016523404A/ja
Application granted granted Critical
Publication of JP6591405B2 publication Critical patent/JP6591405B2/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
    • 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頂点のパラメータ値を含む。
ある実施例では、頂点パラメータ値を圧縮することは、2つの浮動小数点数をともに、1つの値が2つの浮動小数点数の各々の2倍のビットを有するように記憶することを含む。
ある実施例では、頂点パラメータ値を圧縮することは、2つの16ビット浮動小数点数をともに1つの32ビット値として記憶することを含む。
ある実施例では、方法は、補間されたパラメータ値に対して画素シェーダ演算を実行することを更に含む。
ある実施例では、方法は、圧縮することの前に、頂点シェーダによってパラメータ値を修正することを含む。
本開示の態様によると、グラフィック処理システムは、グラフィック処理装置(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に直接アクセスできないことであり、これにより、画素シェーダによって実行されるレンダリング効果の種類が制限される。
実施例
本開示の種々の対応によるグラフィック処理手法200bを図2Bに示す。図示する手法200bでは、頂点シェーダから出力されるパラメータ値のスループットに関連するボトルネックを最小化するために圧縮スキームが利用される。なお、本実施例を三角形の形態のプリミティブに関して説明するが、そのコンセプトは他の種類の多角形に基づくプリミティブに直ちに拡張できる。
1つの課題は、従来的な方法は画素シェーダに到達する前に補間の一部または全部を実行するように構成されるために頂点パラメータ値を単純には圧縮できないことである。結果として、減算によって、元の圧縮値が画素シェーダでの使用のために復元されることが阻害されてしまう。
例として、そして限定ではなく、パラメータ値が32ビット浮動小数点の属性変数として記憶される場合、パラメータを、32ビット減算の結果として元のデータを喪失することなく、1つの32ビット値への記憶のために16ビット数に圧縮することはできない。以降の実施例は、問題を概念化するのに通常の数を用いて問題を示す。
第1の三角形:{P0、P1、P2}={8、5、6}
第2の三角形:{P0、P1、P2}={1、4、7}
例えば図2Aに関して上述した個別のエンジンによって実行されるような補間のためのパラメータ値の減算は、
第1の三角形:{P0、P10、P20}={8、(5−8)、(6−8)}={8、−3、−2}
第2の三角形:{P0、P10、P20}={1、(4−1)、(7−1)}={1、3、6}
となる。
第1の組のパラメータを第2の組のパラメータで圧縮することは、それらを以下のように合成することと同じとなる。
圧縮パラメータ:{18、45、76}
そして、圧縮パラメータの減算は、
減算:{18、(45−18)、(76−18)}={18、27、58}
と同じとなる。
減算結果27及び58は真のパラメータ値に関して本質的には無意味であるため、圧縮されるにつれて、減算は元のデータを破壊することになる。このように、値を復元することはできず、元のP10及びP20またはP1及びP2を減算結果から回復することはできない。
図2Bに再度戻ると、手法200bは、画素シェーダによってアクセス可能なように元のパラメータ値が保存及び復元されることを可能とする本開示の種々の態様による圧縮スキームを含む。説明に係る実施例では、減算または全体的な補間を従来的に実行するパラメータ補間ハードウェアは、元のパラメータ値を失うことなくパラメータ値が圧縮及び復元されるように省略、無効化またはバイパスされる。
図2Bに示す手法200bでは、頂点シェーダ210は頂点シェーダ演算214を実行し、これは画像における各頂点の種々のパラメータを操作することを含む。得られるパラメータは、大量の記憶及びスループットに関連するボトルネックが最小化されるように、240において、より小さいデータフォーマットに圧縮される。圧縮されたパラメータP0’、P1’及びP2’は、一時的な記憶のためにパラメータキャッシュ236に書き込まれ、圧縮されないパラメータよりも少量の合計キャッシュを占有し、これによりキャッシュハードウェアにおける潜在的なボトルネックを最小化する。圧縮パラメータP0’、P1’及びP2’は、「ローカルデータシェア」(LDS)として知られるメモリ部である、GPUのローカルメモリ部237に複製される。圧縮パラメータ値は、GPUによって実装される画素シェーダ212によってローカルデータシェアでアクセスされる。
圧縮パラメータP0’、P1’及びP2’は、242において、画素シェーダ212によって復元され、これにより、画素シェーダによって素のパラメータ値P0、P1及びP2へのアクセスを与える。そして、画素シェーダ212は、各プリミティブ内の画素位置において対応するパラメータ値を特定するために、重心座標生成器238から得られた座標i,jを用いて、216においてパラメータ値を補間する。画素シェーダ212は各三角形の各頂点についての素のパラメータ値にアクセスできるので、画素シェーダ216は、補間216の前に頂点パラメータ(不図示)及び仮想空間における頂点の映像についての他の所定の操作を画素ごとに実行して値を画面スペースに変換する。そして、画素シェーダは、例えばフレームバッファへの最終的な画素データを出力する前に画素データ及び画素の映像についての更なる操作のために画素シェーダ演算218を実行する。
したがって、説明に係る実施例200bでは、大量のパラメータ値データに関連するボトルネックは、キャッシュ236及びローカルメモリ237の合計使用量を低減する圧縮スキームによって最小化または回避される。さらに、画素シェーダプログラムを作成するプログラマは、相対または補間値だけではなく素の頂点パラメータデータを利用できるので、より多くの制御方法を有することになる。
図3に示すフロー図は、本開示の種々の態様による、頂点シェーダ及び画素シェーダによってグラフィックを処理するための方法300を示す。方法300は、図2Bに示すグラフィック処理手法200bと類似性を有する。
説明に係る方法300は、頂点シェーダ310によって頂点シェーダ演算314を実行することを含む。頂点シェーダ演算は、プリミティブ302a−dの種々の頂点パラメータを操作して仮想空間における頂点に種々の視覚効果を生成することを含む。プリミティブ302a−dは図1Bにおける102a−dと類似し、各三角形は各頂点について対応するパラメータ値P0、P1及びP2を有する。
そして、頂点シェーダ310はパラメータ値を圧縮し、圧縮された頂点パラメータ値P0’、P1’及びP2’を画素シェーダ312に送る。そして、画素シェーダは、342において、パラメータ値を復元して元の素のパラメータ値を取得し、画素シェーダ312はパラメータ値P0、P1及びP2の補間316全体を実行して各画素の対応のパラメータP−Pを特定する。そして、画素シェーダ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)、インターネットなどのワイドエリアネットワーク(WAN)、Bluetooth(登録商標)ネットワークなどのパーソナルエリアネットワーク、または他のタイプのネットワークである。これらの構成要素は、ハードウェア、ソフトウェア若しくはファームウェアまたはこれらの2以上の組合せにおいて実現される。
上記は本発明の好適な実施形態の完全な説明であるが、種々の変更、変形及び等化を用いることが可能である。したがって、本発明の範囲は、上記の説明を参照して特定されるべきではなく、付随する特許請求の範囲及びそれらの均等の全範囲を参照して特定されるべきである。好適か否かにかかわらずここに記載されるいずれの構成も、好適か否かにかかわらずここに記載される他の構成と組み合わせることができる。以降の特許請求の範囲において、不定冠詞「A」または「An」は、明示的に断りがある場合を除き、冠詞に続く項目の1以上の数量を意味する。付随する特許請求の範囲は、文言「・・・のための手段」を用いる所与の請求項にそのような発明特定事項が明示的に記載されない限り、ミーンズプラスファンクションの発明特定事項を含むものとして解釈されるべきではない。

Claims (20)

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

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361833212P 2013-06-10 2013-06-10
US61/833,212 2013-06-10
US14/297,201 2014-06-05
US14/297,201 US10102603B2 (en) 2013-06-10 2014-06-05 Scheme for compressing vertex shader output parameters
PCT/US2014/041382 WO2014200863A1 (en) 2013-06-10 2014-06-06 Scheme for compressing vertex shader output parameters

Publications (2)

Publication Number Publication Date
JP2016523404A JP2016523404A (ja) 2016-08-08
JP6591405B2 true JP6591405B2 (ja) 2019-10-16

Family

ID=52005097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016518048A Active JP6591405B2 (ja) 2013-06-10 2014-06-06 頂点シェーダ出力パラメータの圧縮スキーム

Country Status (5)

Country Link
US (3) US10102603B2 (ja)
EP (1) EP3008699B1 (ja)
JP (1) JP6591405B2 (ja)
CN (1) CN105283900B (ja)
WO (1) WO2014200863A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
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
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
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
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
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
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
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
GB201503125D0 (en) 2015-02-25 2015-04-08 Advanced Risc Mach Ltd Graphics processing systems
US9881351B2 (en) 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation
US9786026B2 (en) 2015-06-15 2017-10-10 Microsoft Technology Licensing, Llc Asynchronous translation of computer program resources in graphics processing unit emulation
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
JP6728370B2 (ja) 2016-01-22 2020-07-22 株式会社ソニー・インタラクティブエンタテインメント 下位互換性のためのレガシーバス動作のシミュレーション
CN108885552B (zh) 2016-01-22 2023-03-14 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗cpuid
GB2556634B (en) 2016-11-18 2020-05-27 Advanced Risc Mach Ltd Graphics processing systems
US10460418B2 (en) 2017-02-10 2019-10-29 Microsoft Technology Licensing, Llc Buffer index format and compression
US10510185B2 (en) * 2017-08-25 2019-12-17 Advanced Micro Devices, Inc. Variable rate shading
CN110175269B (zh) * 2019-05-31 2021-03-12 西安芯瞳半导体技术有限公司 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质
US11748839B2 (en) 2020-04-16 2023-09-05 Samsung Electronics Co., Ltd. Efficient fast random access enabled geometry attribute compression mechanism

Family Cites Families (34)

* 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
US6839062B2 (en) * 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
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
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 삼성전자주식회사 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법
US20080266287A1 (en) * 2007-04-25 2008-10-30 Nvidia Corporation Decompression of vertex data using a geometry shader
US8355028B2 (en) 2007-07-30 2013-01-15 Qualcomm Incorporated Scheme for varying packing and linking in graphics systems
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
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
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 中科天玑数据科技股份有限公司 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法
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
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters

Also Published As

Publication number Publication date
US11232534B2 (en) 2022-01-25
US10740867B2 (en) 2020-08-11
EP3008699B1 (en) 2020-04-22
US20140362100A1 (en) 2014-12-11
US20180336658A1 (en) 2018-11-22
JP2016523404A (ja) 2016-08-08
EP3008699A4 (en) 2016-11-23
CN105283900A (zh) 2016-01-27
WO2014200863A1 (en) 2014-12-18
CN105283900B (zh) 2019-11-01
US20200372602A1 (en) 2020-11-26
US10102603B2 (en) 2018-10-16
EP3008699A1 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
JP6591405B2 (ja) 頂点シェーダ出力パラメータの圧縮スキーム
JP6230702B2 (ja) 頂点シェーダ演算を実行するフラグメントシェーダ
JP7098710B2 (ja) 中心窩ジオメトリテッセレーション
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
JP5960368B2 (ja) ビジビリティ情報を用いたグラフィックスデータのレンダリング
JP2015501981A (ja) タイルベースのレンダリングにおけるテッセレーション
KR20140139553A (ko) 그래픽 프로세싱 유닛들에서 가시성 기반 상태 업데이트들
US10535188B2 (en) Tessellation edge shaders
JP2015515059A (ja) シーンにおける不透明度レベルを推定する方法とそれに対応する装置
JP5916764B2 (ja) 仮想環境における隠蔽の推定方法
JP2023525725A (ja) データ圧縮の方法及び装置
RU2810701C2 (ru) Гибридный рендеринг
US11869123B2 (en) Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160108

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190918

R150 Certificate of patent or registration of utility model

Ref document number: 6591405

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