HLSLシェーダー内のスプライトバッチから色合いを取得するにはどうすればよいですか?私はxnaを使用しています。
また、この背後にある理論は何ですか?色合いの色は、HLSLに渡す前に実際のテクスチャの色を変更するだけだと思いますが、そうではないようです。
デフォルトのシェーダーのソースコードはSpriteBatch
ここで確認できます。詳細はこちらをご覧くださいSpriteEffect.fx
。
具体的には、色合いの色がCOLOR0
頂点シェーダーに渡され、次にピクセルシェーダーに直接渡されます。ピクセルシェーダーでは、そのピクセルのテクスチャサンプルが乗算されます。
テクスチャデータを直接変更すると、非常に時間がかかります。