2010-11-24 6 views
1

Est-il possible de rendre la texture D3DFMT_A8 avec une certaine couleur? Comme ceci: Comment convertir la texture D3DFMT_A8 en couleur?

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

Merci!

+0

Il est à noter, qu'un tel code ne fonctionne pas :( –

+0

Il rend la texture en palette de niveaux de gris –

Répondre

1

Tout d'abord, tous les matériels ne prennent pas en charge D3DFMT_A8.

Maintenant, en supposant que ID3DXSprite ne prend pas trop trop de la canalisation puis son une simple question d'écrire un pixel shader comme suit:

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

} 

Le shader lit simplement la valeur dans la texture et swizzles dans tous les canaux.

Questions connexes