|
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX9: Halbtransparente Textur in Surface zeichnen |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
07. Juli 2009 um 15:19:02 |
Frage |
Hallo!
Ich muss noch mal mein Problem von vor einiger Zeit aufgreifen. Ich hab bis jetzt immer noch keine Lösung finden können. Also hier nochmal die Problembeschreibung: Ich habe eine Kreistextur, deren Rand langsam von voll deckend bis voll transparent ausgeblendet wird. Farbe ist reines weiß. Direkt auf den Bildschirm gezeichnet, funktioniert alles. Auch die Überschneidungen von zwei Texturen erscheinen korrekt. Diese Textur (besser gesagt viele davon in unterschiedlicher Größe und an unterschiedlichen Positionen) will ich aber in einer anderen Textur zwischenspeichern. Dazu habe ich ein Surface aus der Textur erstellt und darauf gezeichnet: Dim Surf, save Back buffer As Surface Surf = FoW.GetSurfaceLevel(0) 'FoW ist die Textur, In die gezeichnet werden soll save Back buffer = D3DDevice.GetRenderTarget(0) D3DDevice.SetRenderTarget(0, Surf) D3DDevice.Clear(ClearFlags.Target, Color.FromArgb(0, 0, 0, 0), 1.0F, 0) 'auch mit Z Buffer und Stencil weiterhin Probleme '... Solange nur eine Kreistextur da rein gezeichnet wird, kein Problem. Aber bei überlappenden Kreistexturen gibts welche: Die jeweils zuletzt gezeichnete Textur wird ja über die erstgezeichnete gelegt. Dabei sollte ja der Rand der Schnittmenge nicht sichtbar sein, sondern einen Alpha-Wert von 255 haben, also voll deckend sein. Allerdings wird der halbtransparente Bereich aus der Kreistextur auch bei Überlappungen halbtransparent dargestellt, jedoch nur der von der letztgezeichneten Textur, sodass dann in der Zieltextur ein Halbkreisförmiges Loch entsteht. Es scheint also, ob beim Zeichnen in die Textur, der Alphak a n a l nicht addiert, sondern ersetzt wird. Bei den volltransparenten und volldeckenden Teilen ist aber alles korrekt. Da bei der Ausgabe direkt auf dem Bildschirm alles klappt, nehme ich an, dass es an irgendwelchen Einstellungen am Surface liegt. Gibt es da welche, die sowas verursachen können? AlphaBlending ist natürlich eingeschaltet und korrekt konfiguriert.
Nico
Übrigens bin ich dafür, den Sprachfilter hier im Forum mal auszuschalten. Das macht manchmal Positings nahezu unmöglich |
|
Antwort: |
Von |
mdx |
E-Mail |
mdx@vb-fun.de |
Datum |
14. Juli 2009 um 09:18:40 |
Antwort |
jo scheint so... da hatte MS wohl schon die segel gestrichen in MDX. Vielleicht schreibst du dein Prokejt ja in SlimDX um ! Es würde sich wirklich lohnen. Es ist alles vorhanden was es in DX auch gibt. Wenn dein source nicht zu groß ist gehts recht fix. Es ist ähnlich zu MDX aber im Aufruf der Methoden ähnlicher an native DX. Ich stand auch an diesem Punkt. Es lohnt sich umzusteigen. |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|