www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheDirectX-Forum

Thomas

Gepostet:
30.12.2006 22:07

Sprites einfärben  
Hallo.
Weiß jemand, wie man in Direct3D Sprites in Echtzeit (nicht nur beim Laden der Bitmap) einfärben kann?
Mit dem letzten Parameter von Sprite.Draw gehts leider nicht, damit kann man die ARGB-Werte nur verkleinern.
public void Sprite.Draw(
Texture srcTexture,
Rectangle srcRectangle,
Vector3 center,
Vector3 position,
Color color
);


Ich hab schon geschaut, ob es noch eine weitere Draw-Funktion gibt, oder ob Texture eine Funktion dafür bereitstellt, aber hab leider nichts gefunden.

wenn jemand weiß, wie's geht: bitte melden!
mfg
Zum Seitenanfang    
 
Jammni

Gepostet:
02.01.2007 20:51

   
Hi,

tut mir leid, dass ich erst so spät antworte, aber Silvester ist dazwischen gekommen ;-)

Die Funktion Draw dient normalerweise zum Einfärben der Texturen - wenn du z. B. System.Drawing.Color.Blue angibst, dann wird auch dein Sprite bläulich eingefärbt angezeigt.

Wo gibst du denn den Anfangswert zum Einfärben ein? Und in wie fern unterscheidet sich denn das Ergebnis - ist das Bild nur dunkler?

Grüße,
Jammni
Zum Seitenanfang Homepage   ICQ    
 
Thomas

Gepostet:
04.01.2007 17:22

   
Hallo,

folgendes Prinzip: Auf die einzufärbende Textur wird eine zweite einfarbige Textur gezeichnet, dessen Transparenz bestimmt, wie stark das Bild eingefärbt wird.

Ein Problem hat man aber, wenn das Bild halbtransparente Bereiche enthält. Die werden dann nämlich undurchsichtiger.

Für meine Zwecke reicht Sprite.Draw aber vollkommen aus.

mfg
Thomas
Zum Seitenanfang    
 
Jammni

Gepostet:
06.01.2007 11:33

   
Hmm, das ist wohl war. Wenn die halbtransparenten Bereiche noch zusätzlich eingefärbt werden, wird darunter liegende Textur noch dunkler. Spontan fällt mir dazu aber auch keine Abhilfe ein.

Grüße,
Jammni
Zum Seitenanfang Homepage   ICQ