Question

Je suis en train de rendre un quad texturé en D3D, et son pas en utilisant les valeurs alpha des sommets du quad la texture est rendu à. Au contraire, il utilise l'alpha de la texture.

Je veux D3D utiliser l'alpha des sommets du polygone, il est placé sur.

J'ai une idée qu'il doit faire avec SetTextureStageState , mais je ne peux pas trouver tout à fait encore ..

Était-ce utile?

La solution

OK, voici ce que je suis:

D3DTSS énumération (contenant des valeurs par défaut pour les paramètres D3DTSS_ de *)

D3DTA énumération

// where does the SRC color come from?
// why, the currently bound texture of course!
d3d->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
// Default:  D3DTA_TEXTURE (anyway.  So this setting is redundant.)

LE GRAND CHANGEMENT SUIVANT VIENNENT:

// let the alpha component be read from the
// diffuse color of the vertex..
d3d->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
// Default: D3DTA_TEXTURE (which would be "pull alpha from the texture")

// because my vertex declaration is set up to send 1 color, and
// D3DRS_DIFFUSEMATERIALSOURCE is set to D3DMCS_COLOR1, this means
// to use the vertex alpha i specify.  i think.

Le reste ne change pas vraiment quoi que ce soit à partir des valeurs par défaut, mais son ici, donc tout peut être vu:

// DEST where does the alpha value come from?  also the
// diffuse component
d3d->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_CURRENT);
// Default:  D3DTA_CURRENT.  I believe this means "the destination will
// be whatever the existing color in the framebuffer already is"

// setting up as is default, 
d3d->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CURRENT);
// Default:  D3DTA_CURRENT.  No change.

Je pense que les travaux.

Suite à la compréhension: ce lien contient un vieux mais très bon outil appelé MFCTex:

programme MFCTex

Alors il est très facile de voir l'effet de ce qui se passe lorsque vous utilisez différents args.

Je me rends compte n'est pas la façon cool de faire ça, et vraiment la façon originale a été pendant un certain temps d'écrire vos propres shaders vertex et pixel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top