(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: Alphatransparent von Bildern bei Direct3D
25. Aug 2007, 20:31
ich weiß schon was du meinst, und darauf verlasse ich mich schon nicht. Ich meinte nur das der Grund, warum es im alten Projekt nicht läuft, wohl eine andere Initialisierung des Devices war oder ich hab an irgend ner Stelle die Renderstates verstellt.
Naja, noch eine Anmerkung zu dem Alphablend.
Mit dem D3DRS_ALPHABLENDENABLE kann man wunderschön halbtransparente Sachen darstellen. Allerdings muss man darauf achten das dinge die hinter den halbtransparenten gebilden stehen zuerst gezeichnet werden.
Malt man erst die halbtransparente Fläche und danach erst danach das was dahinter steht sieht man an der halbtransparenten Stelle das durch was zum Zeitpunkt des Zeischnens dahinter war.
Wenn der Alphakanal etwas zu 100% durchsichtig macht gibt es keine Probleme weil dann der Bildpunkt ganz weg gelassen wird.
In diesem Zusammenhang ist dann die Verwendung von D3DRS_ALPHATESTENABLE auch ganz gut. Wie bereits erwähnt kann es bei halbtransparenzen unschöne Effekte geben. Mit ALPHATESTENABLE kann man dann dafür sorgen das nicht nur Pixel mit Alphawert 0 ausgelassen werden. So kann man festlegen das zum Beispiel alle Pixel ausgelassen werden wo der Alphawert kleiner 10 ist (das ist so transparent das es fast keinen unterschied macht ob man das pixel ganz weglässt oder blendet)
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|