Aber es klappt nicht. Das RenderToTexture klappt super, nur der Hintergrund ist und bleibt drinnen, da kann ich einstellen was ich mag.
Am Blending kanns auch nicht liegen, weil für z.b. tga's die bereits einen Alpha-Kanal haben klappts gut.
Ergo muss der Fehler schon vorher drin sein. Offenbar wird kein Alpha-Kanal erzeugt, was ich aber net verstehe. Sollte so klappen. Ich habe gegooglet und 1, 2 Themen dazu gefunden. Die verwenden das selbe Prinzip.
Ich sehe den Fehler einfach net.. Weiß jemand worans liegt?
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das RenderToTexture kopiert den aktuellen Framebuffer in eine Textur. Aus diesem Grund muss dein Framebuffer bereits einen Alphakanal besitzen. Ansonsten gibts keinen. NVidia (oder wars gerade ATI?) geht glaube ich her und lässt den Alphakanal weg, wenn er nicht explizit angegeben wurde. In der Methode CreateRenderingContext in der dglOpenGL.pas müsstest du bei dem PixelFormat den cAlphaBits befüllen. Also eine 8.
Code:
cColorBits := ColorBits;// Gibts schon
cAlphaBits :=8;
Wobei es aber auf älterer Hardware auch gut sein kann, dass der Alphakanal gar nicht erstellt wird. Bzw bei 16 Bit Farbtiefen kann das auch passieren. Deswegen ist das mit dem Alpha im Framebuffer vorraussetzen mit vorliebe zu genießen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Lossy eX hat geschrieben:
Deswegen ist das mit dem Alpha im Framebuffer vorraussetzen mit vorliebe zu genießen.
Mit Vorsicht zu genießen meinst du wohl
Wie sähe das aus, wenn man die Framebuffer-Erweiterung benutzen würde? Wäre die ebenfalls abhängig von 16-Bit-Bildschirmen?
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ja natürlich meine ich Vorsicht. Oder auch genau so für diejenigen die die Gefahr lieben. *hust*
ScreenBuffer: FrameBufferObjects dürften keine Probleme machen, da das ja eigentlich vollständig im Speicher existieren. Bei PixelBuffer könnte es wieder anders aussehen, da diese eigentlich einen Speicherkontext darstellen. Also auch wieder mit einem Pixelformat auf einem DC. Und dann liegt es wieder in der Hand des Treibers.
Wobei ATI auf meiner alten Karte bei 16 Bit aber glaube ich sogar noch einen zusätzlichen 8 Bit Alpha dazu gepackt hat. Also insgesamt dann trotzdem 24 Bit. Aber 16 Sichtbare. Ist halt alles immer ermessenssache des Treibers was da letzten Endes passiert.
Überprüfen kann man das wenn man sich den Descriptor von dem ausgewählten Pixelformat anschaut. Dort steht es dann recht genau drinne. Dazu muss man aber leider selber den Kontext erstellen.
Registriert: Mo Dez 26, 2005 22:27 Beiträge: 117
Programmiersprache: Pascal, C++
okay, danke für die Infos.
Ich habe jetzt den Alpha-Kanal erzwungen.
Zitat:
Wobei es aber auf älterer Hardware auch gut sein kann, dass der Alphakanal gar nicht erstellt wird. Bzw bei 16 Bit Farbtiefen kann das auch passieren. Deswegen ist das mit dem Alpha im Framebuffer vorraussetzen mit vorliebe zu genießen.
Nun ja, ich gehe jetzt einfach mal davon aus, dass heutzutage kaum noch jemand 16 Bit als Farbtiefe nutzt, oder wenn dann is das ein sehr geringe Prozentsatz.
Aber es kann ja nicht schaden eine Überprüfung einzubauen und dementsprechend anderes zu reagieren. Denke das bekomm ich hin.
Danke nochma, ich hatte mir schon nen Wolf gesucht weil ich den Fehler net gefunden habe, jetzt läufts rund
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.