ps_1_1、ps_1_2、ps_1_3、ps_1_4
ピクセル シェーダー アセンブラーは、レジスタに含まれるピクセル データを操作する一連の命令で構成されます。 演算は、演算子と 1 つ以上のオペランドで構成される命令として表されます。 手順では、レジスタを使用して、ピクセル シェーダー ALU との間でデータを転送します。 レジスタは、一時的な結果を保持するためにいくつかの命令で使用することもできます。
Note
ピクセル シェーダー 1.x の HLSL サポートは非推奨です。
Instructions
ピクセル シェーダー命令には、算術命令とテクスチャ アドレス指定命令の 2 つのメインカテゴリがあります。 算術命令は色データを変更します。 テクスチャ アドレス指定操作ではテクスチャ座標データが処理され、ほとんどの場合、テクスチャがサンプリングされます。 ピクセル シェーダー命令はピクセル単位で実行されます。つまり、パイプライン内の他のピクセルに関する知識がありません。
テクスチャ アドレス指定命令はそれぞれ 1 つのスロットを使用しますが、算術命令をペアにして、カラー コンポーネント (RGB) とアルファ コンポーネント命令の両方を 1 つのスロットで有効にすることができます。
ps_1_1、ps_1_2、ps_1_3、ps_1_4命令には、 使用可能な手順の一覧が含まれています。
マルチサンプリングが有効になっている場合、ピクセル シェーダーはピクセルごとに 1 回だけ実行され、サブピクセルごとに 1 回は実行されません。 マルチサンプリングでは、多角形エッジの解像度だけでなく、深度テストとステンシル テストも向上します。 たとえば、3x3 マルチサンプリングが有効で、ラスタライズされている三角形が特定のピクセルの 9 つのサブピクセルのうちの 5 つをカバーすることがわかった場合、ピクセル シェーダーは 1 回実行され、5 つのサブピクセルすべてに同じ色の結果が適用されます。
レジスタ
ps_1_1__ps_1_2__ps_1_3__ps_1_4 レジスタには、 シェーダー ALU で使用されるさまざまなレジスタが一覧表示されます。
修飾子
ps_1_Xの修飾子 を使用して、命令の機能、またはレジスタから読み取られたりレジスタに書き込まれたりするデータを変更できます。
Direct3D 9 では、すべてのサーフェス形式で少なくとも 8 ビットの精度を維持するために中間計算が必要です。 インステージ演算の場合は高い精度 (12 ビット) と、テクスチャ ステージ間の彩度を 8 ビットにすることをお勧めします。 変更可能な丸めモードまたは例外はサポートされていません。 精度損失を最小限に抑えるために、乗算は最も近い精度に丸めでサポートする必要があります。
サンプラー数
使用可能なテクスチャ サンプラーの数は次のとおりです。
- ps_1_0 - ps_1_3の場合、最大値は 4 です。
- ps_1_4の場合、最大値は 6 です。
関連トピック