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
//To render my texture
Can you help me please ?
thanks
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