opengl:optimize
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| opengl:optimize [2014/04/20 04:29] – [Alpha Test (discard) の是非] oga | opengl:optimize [2014/04/20 04:32] (現在) – [Alpha Test (discard) の是非] oga | ||
|---|---|---|---|
| 行 176: | 行 176: | ||
| ==== Alpha Test (discard) の是非 ==== | ==== Alpha Test (discard) の是非 ==== | ||
| - | |||
| 新しい GPU では、Alpha Test (discard) はパフォーマンスの低下を招く要因であると言われています。 | 新しい GPU では、Alpha Test (discard) はパフォーマンスの低下を招く要因であると言われています。 | ||
| - | 一般的には Eary Z culling を阻害するためで、 | ||
| - | Face の Pixel に穴が開くとプリミティブ単位の代表 Z 値を使うことができなくなります。 | ||
| - | さらに | + | 例えば |
| 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.1397935752.txt.gz · 最終更新: by oga
