Render to texture and transparency

RMI

28-08-2012 09:37:02

Hello,

I want to have a render to texture with transparency, but i have a correct image but i don't have the transparency.
This is my code

For initialize my render texture

textureColor = TextureManager.Singleton.CreateManual("ColorTexture", ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME, TextureType.TEX_TYPE_2D, 640, 480, 0, PixelFormat.PF_R8G8B8, (int)TextureUsage.TU_DYNAMIC_WRITE_ONLY_DISCARDABLE);

renderMaterial.SetSceneBlending(SceneBlendType.SBT_TRANSPARENT_ALPHA);
renderMaterial.CreateTechnique().CreatePass();
Pass pass = renderMaterial.GetTechnique(0).GetPass(0);
pass.LightingEnabled = false;
pass.SetSceneBlending(SceneBlendType.SBT_TRANSPARENT_ALPHA);
pass.DepthWriteEnabled = false;
pass.CreateTextureUnitState("ColorTexture");
pass.SetSceneBlending(SceneBlendType.SBT_TRANSPARENT_ALPHA);


//To render my texture


byte[] _byColors;
...
//For each pixel i want to make transparency
_byColors[iTransparentScreenIndex] = 0;//blue
_byColors[iTransparentScreenIndex + 1] = 0;//green
_byColors[iTransparentScreenIndex + 2] = 0; //red
_byColors[iTransparentScreenIndex + 3] = 255; //Alpha

//Copy the data in the texture
GCHandle handle = GCHandle.Alloc(_byColors, GCHandleType.Pinned);
IntPtr pointer = handle.AddrOfPinnedObject();
PixelBox pixelBox = new PixelBox(640, 480, 1, PixelFormat.PF_A8R8G8B8, pointer);

HardwarePixelBufferSharedPtr pixelBuffer = textureColor.GetBuffer();
pixelBuffer.BlitFromMemory(pixelBox);
handle.Free();




Can you help me please ?

thanks