次の方法で共有


ピクセル シェーダ 1_X

ピクセル シェーダ 1_X

ピクセル シェーダ アセンブラは、レジスタに格納されたピクセル データを処理する一連の命令から成る。処理は、演算子と 1 つあるいは複数のオペランドで構成される命令として表現されている。命令は、ピクセル シェーダの演算論理単位 (ALU) との間でデータをやり取りするために、レジスタを使う。いくつかの命令は、一時的な結果を格納するためにレジスタを使える。

アーキテクチャ

ピクセル シェーダ ALU とシェーダ レジスタのブロック図を、「アーキテクチャ」に示す。

命令

ピクセル シェーダの命令には、大きく分けて算術命令とテクスチャ アドレシング命令の 2 種類がある。算術命令は、カラー データを修正する。テクスチャ アドレシング命令は、テクスチャ座標データを処理し、多くの場合、テクスチャをサンプリングする。ピクセル シェーダの命令はピクセル単位に実行される。つまり、パイプライン内の他のピクセルは認識されない。

テクスチャ アドレシング命令はそれぞれ 1 スロットを使うが、算術命令は対にして色成分 (RGB) の命令とアルファ成分の命令の両方を 1 スロットで実行できる。

利用可能な命令の一覧を、「命令 - ps_1_X」に示す。

マルチサンプリングが有効な場合、ピクセル シェーダは、サブピクセルごとに 1 回実行されるのでははなく、ピクセルごとに 1 回だけ実行される。マルチサンプリングは、深度テストおよびステンシル テストと同様に、ポリゴンのエッジの解像度を上げるだけである。たとえば、3 × 3 のマルチサンプリングが有効な場合、ラスタ化されている三角形が特定ピクセルのサブピクセル 9 つのうち 5 つを覆っているときには、ピクセル シェーダは 1 回実行され、その結果、5 つのサブピクセルすべてに同じ色を適用する。

レジスタ

シェーダ ALU で使われる各種レジスタの一覧を、「レジスタ - ps_1_X」に示す。

修飾子

修飾子 - ps_1_X を使うと、命令の機能の変更や、レジスタに書き込むデータまたはレジスタから読み取ったデータの変更ができる。

Microsoft® DirectX® 9.0 では、すべてのサーフェイス フォーマットに対して少なくとも 8 ビットの精度を維持するための中間計算が必要である。ステージ内の計算では高精度 (12 ビット) に、テクスチャ ステージ間では 8 ビットに収めることを推奨している。修正可能な丸めモードや例外はサポートされていない。精度の損失を最小化するために、直近値丸め精度の乗算をサポートする必要がある。