実行時にアルファ チャネルを変更したいテクスチャがあります。
テクスチャのアルファ チャンネルを描画する方法はありますか?
または、チャネルを別のテクスチャのチャネルに置き換えますか?
ありがとう、
SW。
1 に答える
2
わかりました、あなたのコメントに基づいて、あなたがすべきことはピクセルシェーダーを使用することです. ソース イメージにはアルファ チャネルさえ必要ありません。ピクセル シェーダーにアルファを適用させます。
実際には、おそらく GPU でもアルファ チャネルの値を計算する (つまり、流体ソルバーを実行する) 必要があります。
シェーダーは次のようになります。
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 c = tex2D(textureSampler, uv);
c.A = /* calculate alpha value here */;
return c;
}
XNAスプライト効果のサンプルから始めるのがよいでしょう。
あなたがしていることに似た効果さえあります:(ソース: msdn.com )
サンプルのエフェクトは、2 番目のテクスチャから読み取り、最初のテクスチャが描画されるときにそのアルファ チャネルの計算用の値を取得します。
于 2010-11-05T03:21:55.983 に答える