Alpha Blending in DirectX/D3D
Hi,
I have two questions regarding alpha blending in Direct3D,
can anyone help me with this?
1. I want to ''fade out'' a polygon using alpha. Rather than modifying the actual alpha values in the texture, which is very slow, is there a way I can do this nicely (maybe with renderstate settings?)
2. I am creating shadows for characters, this works fine but it would be nice to have alpha blended shadows so that the ground shows through. However, since these are real-time shadows (i.e. flattening the geometry into a plane) I get a LOT of back-to-front rendering artifacts when enabling alphablending because of back-to-front rendering polys on top of each other. Is there a correct way of doing this?
Thanks for any help!
Mark
the way i do it is, i modify the material RGB values depending on the alpha value:
where RED, GREEN, BLUE and m_fAlpha are in range 0<=x<=1, you get the idea...
(note: D3DRENDERSTATE_ALPHABLENDENABLE must be set to true using SetRenderState)
D3DUtil_InitMaterial( m_Material, m_colRED * m_fAlpha, m_colGREEN * m_fAlpha, m_colBLUE * m_fAlpha, 1.0f);
where RED, GREEN, BLUE and m_fAlpha are in range 0<=x<=1, you get the idea...
(note: D3DRENDERSTATE_ALPHABLENDENABLE must be set to true using SetRenderState)
This is regarding your second question. Look in the sdk for information about the zbias renderstate, that should help.
*** Triality ***
*** Triality ***
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement