1

渡された色を頂点シェーダーから出力に単純にコピーするのではなく、渡された色から赤の成分のみをコピーし、緑と青の成分をゼロに設定する AGAL のピクセル シェーダーが必要です。擬似コード:

temp = 0
temp.red = in.red
temp.alpha = in.alpha
out = temp

これを AGAL で記述する方法がわかりません。以下はそれをしません:

mov ft0.ra, v0.ra
mov oc, ft0

どうすれば欲しい結果を得ることができますか?

4

1 に答える 1

1

あなたはそれを覚えておく必要があります

  • 宛先レジスタの右側に「.something」を使用すると、マスクを使用していることを意味します
  • ソースレジスタの右側に「.something」を使用すると、スウィズルを使用していることを意味します。

と仮定すると

  • fc0 の最初のコンポーネントにゼロが含まれています
  • v0 には、赤成分を抽出する色が含まれています

フラグメントシェーダーは次のとおりです。

// shader.
mov ft0, fc0.xxxx     // fill ft0 with zeros
mov ft0.xw, v0.xxxw   // fill ft0.x with v0.x and ft0.w with v0.w
mov oc, ft0

出典: Minko の ActionScript 3 を AGAL コンパイラに書きました。

于 2013-04-10T19:14:46.633 に答える