DirectX-Forum - Beitragsübersicht -
ThemaDX9: 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 Nico
E-Mail nico.schertler@gmx.de
Datum 13. Juli 2009 um 16:20:50
Antwort Genau so hab ich das ja gemacht (siehe mein erstes Posting), was zu den Fehlern im Alphaka_nal führt.
Ich verwende ja MDX und habe da bisher noch kein RenderToTexture gefunden. Auch gibt es kein Surface.ToStream. Nur ein Surface.FromStream.
Für die Textur ist doch Format.A8R8G8B8 und Pool.Default in Ordnung, oder?

Nico
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ]
Antworten
DX9: Halbtransparente Textur in Surface zeichnen - Nico 07. Juli 2009 um 15:19:02
Re: Halbtransparente Textur in Surface zeichnen - mdx 10. Juli 2009 um 09:31:58
Re: Halbtransparente Textur in Surface zeichnen - Nico 10. Juli 2009 um 17:46:50
Re: Halbtransparente Textur in Surface zeichnen - mdx 13. Juli 2009 um 16:03:32
Re: Halbtransparente Textur in Surface zeichnen - Nico 13. Juli 2009 um 16:20:50
Stencil - Nico 13. Juli 2009 um 17:37:22
surface.tostream - mdx 13. Juli 2009 um 21:33:56
Re: surface.tostream - Nico 13. Juli 2009 um 22:25:02
SlimDX ? - mdx 14. Juli 2009 um 09:18:40
Sreenshot - mdx 14. Juli 2009 um 09:25:33
Re: Sreenshot - Nico 14. Juli 2009 um 09:40:33

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  DirectX 9
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum DirectX-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015