2010-11-24 8 views
1

D3DFMT_A8テクスチャをある色でレンダリングすることはできますか?このように: D3DFMT_A8のテクスチャをどのようにレンダリングしますか?

D3DXCreateTexture (pDevice, 128, 128, 0, D3DFMT_A8, D3DPOOL_MANAGED, &pTexture) 
... 
pSprite->Draw (pTexture, NULL, NULL , NULL, 0, pos, 0xffff0000); // red 

ありがとう!

+0

それがグレースケールのパレットにテクスチャをレンダリング –

+0

:(そのようなコードが動作しないことに、注目に値します –

答えて

1

まず、すべてのハードウェアがD3DFMT_A8をサポートしているわけではありません。

今ID3DXSpriteは、パイプラインのあまりを引き継ぐないと仮定

その次のようにピクセルシェーダを書くのは簡単なこと:

sampler2D input : register(s0); 
float4 pixelShader(float2 uv : TEXCOORD) : COLOR 
{ 
    return tex2D(input , uv.xy).aaaa; 

} 
シェーダは単純にテクスチャとスウィズルに値を読み込み

すべてのチャンネルで

関連する問題