[C#] Renderen Sprite met Alpha

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In een notendop; ik probeer een sprite object op het scherm te krijgen met het gebruik van de draw functie van DirectX/Direct3D. Dit lukt ook wel, maar de alpha wordt als 'zwart' getekend. Momenteel heb ik deze code (ik pak alleen even het stuk waarbij ik Sprite.Draw gebruik):
code:
1
2
3
S.Begin(SpriteFlags.AlphaBlend);
S.Draw(hudTexture[0], new Rectangle(), new Vector3(0, 0, 0), new Vector3(0, 0, 0), Color.White);
S.End();

Andere opties om ipv Color. te zetten, zoals '16777215' (volgens de API zal het dan de kleur + alpha van het texturebestand gebruiken), werken ook niet.

Hiervoor staat momenteel ook nog:
code:
1
2
3
4
5
6
7
8
device.RenderState.AlphaBlendEnable = true;
device.RenderState.SourceBlend = Blend.SourceAlpha;
device.RenderState.AlphaSourceBlend = Blend.One;
device.RenderState.DestinationBlend = Blend.InvSourceAlpha;
device.RenderState.AlphaDestinationBlend = Blend.InvSourceAlpha;

device.RenderState.AlphaTestEnable = true;
device.RenderState.ReferenceAlpha = 0;

Maar dit maakt geen enkel verschil. Het maakt qua resultaat niet uit of dit erbij staat of niet.

Enig idee waar het aan kan liggen, en hoe het op te lossen is? Heb al vrij veel sites bekeken en oplossingen geprobeert, maar niks werkt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De eerste link heb ik idd geprobeerd, zat er al nog een keer naar te kijken en zie wel dat hij zijn textures op een andere manier ophaalt; Ik gebruik zelf de textureloader omdat het voor de rest van de applicatie wel goed werkt:

code:
1
hudTexture[i - HUDTEXTURE] = TextureLoader.FromFile(device, healthTexture);


De FromBitmap functie kan dat niet lezen.

En van die andere link is al heel wat aangeklikt :)

Edit:
Ter visualisatie:
Afbeeldingslocatie: http://i44.tinypic.com/mhrmyw.jpg

Beide zijn dezelfde texture, maar de linker is getekend met de Sprite.Draw functie, de rechter is als een object in de wereld gezet.

Edit2:
Fixed, vrij erge faal door eerst de sprites te renderen (van de HUD) en daarna pas de scene. Natuurlijk werkt het dan niet :')

[ Voor 29% gewijzigd door Verwijderd op 05-06-2009 17:13 ]