ユーザ用ツール

サイト用ツール


opengl:optimize

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
opengl:optimize [2014/04/20 04:29]
oga [Alpha Test (discard) の是非]
opengl:optimize [2014/04/20 04:32] (現在)
oga [Alpha Test (discard) の是非]
ライン 176: ライン 176:
  
 ==== Alpha Test (discard) の是非 ==== ==== Alpha Test (discard) の是非 ====
- 
  
 新しい GPU では、Alpha Test (discard) はパフォーマンスの低下を招く要因であると言われています。 新しい GPU では、Alpha Test (discard) はパフォーマンスの低下を招く要因であると言われています。
-一般的には Eary Z culling を阻害するためで、 
-Face の Pixel に穴が開くとプリミティブ単位の代表 Z 値を使うことができなくなります。 
  
-さらに ​PowerVR などの Deferred Rendering (TBDR) との相性悪くなります。+例えば ​PowerVR などの Deferred Rendering (TBDR) との相性悪くなります。
 PowerVR は先に Depth Buffer を生成しておき、表面の必要なピクセルに対してのみ Pixel Shader (Fragment Shader) を走らせます。 PowerVR は先に Depth Buffer を生成しておき、表面の必要なピクセルに対してのみ Pixel Shader (Fragment Shader) を走らせます。
 ポリゴンが重なってもシェーダー負荷が一定以上上がらないので、効率よい描画ができることが特徴です。 ポリゴンが重なってもシェーダー負荷が一定以上上がらないので、効率よい描画ができることが特徴です。
ライン 189: ライン 186:
 よってポリゴンの重なりを効率良く取り除くことができなくなります。 よってポリゴンの重なりを効率良く取り除くことができなくなります。
  
- +古い GPU アーキテクチャにおいては必ずしも悪い面だけとは限りません。
-このようにあまり好まれない discard ですが、古い GPU アーキテクチャにおいては必ずしも悪い面だけとは限りません。+
 discard (texkill) によって早いタイミングで Pixel Shader を終了させることにより、 discard (texkill) によって早いタイミングで Pixel Shader を終了させることにより、
 後続のシェーダーの演算や無駄な Texture Fetch を省くことが可能になります。 後続のシェーダーの演算や無駄な Texture Fetch を省くことが可能になります。
opengl/optimize.txt · 最終更新: 2014/04/20 04:32 by oga