Alpha Blending mit DirectDraw
-
Ich will mit DirectDraw6 Sprites mit Alphakanal darstellen, also dass jeder Pixel eine eigene Transparenz hat. Am besten mit einer Graustufen-Bitmap, die ich als Alphamap lade. Ich hab nur - und das überrascht mich
- keinen Plan wie's geht.
-
Ich weiß auch nicht wie es geht (es geht nämlich nicht).
Wenn Du ein statisches Bild berechnen willst kannst Du das ja beim Programmstart tun. Du musst die beiden Bilder Pixel für Pixel auslesen und die Farbwerte kombinieren.
Am besten solltest Du auf D3D oder OGL umsteigen. Wenn Du das erstmal gemacht hast wirst Du es nicht bereuen, glaub mir. Da kannst Du deine Bilder drehen, blenden, skalieren, rotieren wie Du lustig bist.
-
Willst du das per Software emulieren?
Bye, TGGC \-/
-
Guuuuuuut, dann kann ich halt kein Alphablending in meine Sprite-Klasse einbauen: Arbeit gespart
!
Aber wie sieht's aus mit einfacher Transparenz, für eine ganze Oberfläche?Achja, "per Software emulieren", wat soll dat heeßen? Vasteeh'ck nich.
-
Gnunha schrieb:
Achja, "per Software emulieren", wat soll dat heeßen? Vasteeh'ck nich.
Det soll heessen, datt Daireckt Droah dreckt der Grafikkaate die Arbeit uffhalst (schlisslick hat uch diie en Prozessohr), und dattu, wenn du et mit "normalen" Instrucktionen machs', datte dann den (für diese Zwecke völlick unoptimierten) Hauptprozessohr benutzt, der für den glichen Schiss viel mehr Ressourcen braucht, wa!?
-
Ultrakrass! (sinnvolle Antwort kommt sofort, wenn ich eine in meinem Quelltextwirrwarr finde).
-
Gnunha schrieb:
sinnvolle Antwort kommt sofort
Wir sind gespannt.
-
Ja, wär ja mal was Neues.
Bye, TGGC \-/
-
Wofür sind denn dann die ganzen Alpha-bla in DDSURFACEDESC2 ?
-
Naja, ich kümmer mich nicht direkt drum, dass ich die Arbeit der GraKa aufhals.
Wo soll ich dat machen? In der DDraw initialisierung?(Auweia, soviel gespannte Erwartung... ich denke mal, ich habe nicht enttäuscht
)
-
The IDirectDrawSurface3::Blt method performs a bit block transfer. This method does not currently support z-buffering or alpha blending (see alpha channel) during blit operations.
Alphazeugs mit DDraw gibt's einfach noch nicht.
-
Gnunha schrieb:
Naja, ich kümmer mich nicht direkt drum, dass ich die Arbeit der GraKa aufhals.
Wo soll ich dat machen? In der DDraw initialisierung?(Auweia, soviel gespannte Erwartung... ich denke mal, ich habe nicht enttäuscht
)
Doch, ziemlich...
Gnunha schrieb:
The IDirectDrawSurface3::Blt method performs a bit block transfer. This method does not currently support z-buffering or alpha blending (see alpha channel) during blit operations.
Alphazeugs mit DDraw gibt's einfach noch nicht.
Kommt aber sicher bald!
-
Gnunha schrieb:
Alphazeugs mit DDraw gibt's einfach noch nicht.
Du weißt aber schon dass DDraw seit Ewigkeiten schon nicht mehr von MS weiterentwickelt wird (wie Sgt. Nukem es schon angedeutet hat)?
-
Ist das ganze dann als großer Design-& Planungsfehler zu sehen ? Die letzte Version von DirectDraw war doch DD7, und die unterstützt das ganze immer noch net. Seitdem gibt's doch nur noch Graphics, oder ?
hmm.....
-
Und was genau ist dort jetzt der Planungsfehler? Zweifele nicht an MS!
Bye, TGGC \-/
-
Natürlich käme ich nie auf die Idee, an MS zu zweifeln, aber offensichtlich war ja bereits am Anfang von DD ein Alpha-Support geplant, dieser kam net -> falsch geplant -> Planungsfehler !
-
ethereal schrieb:
Natürlich käme ich nie auf die Idee, an MS zu zweifeln, aber offensichtlich war ja bereits am Anfang von DD ein Alpha-Support geplant, dieser kam net -> falsch geplant -> Planungsfehler !
Weil mit D3D alles besser geht. Die MSler sind halt (im Gegensatz zu anderen) flexibel!
-- *flamewaranfang*
-
MS felst. Haben gleich erkannt, das es per 3D-Hardware viel besser geht.
Bye, TGGC \-/
-
Sgt. Nukem schrieb:
*flamewaranfang*
Heute nicht Sgt. Nukem, ich hab Migräne.
-
nman schrieb:
Sgt. Nukem schrieb:
*flamewaranfang*
Heute nicht Sgt. Nukem, ich hab Migräne.
HAHAHAHAHAHAHA...
Torvalds suxx! Torvalds suxx! *diemengeaufforder*