[C#][DirectX9] Comment utiliser l'alphablending?
bonjour à tous,
Je souhaite afficher 2 images (textures) à l'écran. Jusque là pas de probleme. Je souhaite ensuite créer un effet de transparence de la première sur la deuxième et là j'ai beau essayer avec ce que je trouve sur le net je n'y arrive pas.
Voici ce que j'ai dans l'initialisation:
Code:
1 2 3 4 5 6 7 8
|
...
device.RenderState.SourceBlend = Blend.SourceAlpha;
device.RenderState.DestinationBlend = Blend.InvSourceAlpha;
device.RenderState.AlphaBlendEnable = true;
spriteTexture = TextureLoader.FromFile(device, @filename, 0, 0, 1, Usage.None, Format.Unknown, Pool.Managed, Filter.None, Filter.None, Color.Magenta.ToArgb());
spriteTexture2 = TextureLoader.FromFile(device, @filename2, 0, 0, 1, Usage.None, Format.Unknown, Pool.Managed, Filter.None, Filter.None, Color.Magenta.ToArgb());
... |
dans le OnPaint de la form:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
device.Clear(ClearFlags.Target, System.Drawing.Color.Black, 1.0f, 0);
device.BeginScene();
sprite.Begin(SpriteFlags.AlphaBlend);
spriteTexture.Draw(t, r, Center, position, Color.White);
spriteTexture2.Draw(t2, r2, Center2, position2, Color.White);
sprite.End();
device.EndScene();
device.Present(); |
Voila. et le prob c'est que tout s'affiche correctement mais pas de transpence :(
Un peu d'aide et d'explication serait la bienvenue (même si c pour tout refaire en directdraw)