![]() |
OpenGL Tranzparenz in Textur Alpha-Blending
Hallo,
hat jemand Erfahrung Transparenz und Alphablending ? Ich will den weißen Hintergrund transparent Alpha= 0 alle anderen Farben sollen dargestellt werden Alpha=255 Übernahme der Pixel aus TBitmap über scanline
Delphi-Quellcode:
Generierung der Textur
ll_rgbQuad.rgbRed:= ll_ptr.rgbBlue;
ll_rgbQuad.rgbGreen:= ll_ptr.rgbGreen; ll_rgbQuad.rgbBlue:= ll_ptr.rgbRed; ll_rgbQuad.Alpha:=255; if ( ll_rgbQuad.rgbRed + ll_rgbQuad.rgbGreen + ll_rgbQuad.rgbBlue =0 ) then begin ll_rgbQuad.rgbAlpha:=0; end;
Delphi-Quellcode:
Ausgabe
glGenTextures ( 1, @l_textur_id );
glBindTexture ( GL_TEXTURE_2D, cardinal(ar_Texture_ID[in_index]) ); glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_linear ); glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_linear ); glTexImage2D ( GL_TEXTURE_2D, 0, 4, ll_b, ll_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, @texdata );
Delphi-Quellcode:
Ausgabe funktioniert zwar, leider nicht transparent.
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0); // Rendern glListBase(0); glpushmatrix(); gltranslatef(-17,0,0); l_String:='aibg'+rightstr(inttostr(i),3); glCallLists (length(l_String), GL_UNSIGNED_BYTE, @l_String[1]); glpopmatrix(); gibt es irgendwo ein Beispiel ? |
AW: OpenGL Tranzparenz in Textur Alpha-Blending
|
AW: OpenGL Tranzparenz in Textur Alpha-Blending
danke, das hatte ich schon gesehen.
Ich bräuchte es viel einfacher, da ich nur über den Alpha-Wert Transparenz erreichen will: entweder über
Delphi-Quellcode:
oder
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_Greater , 0);
Delphi-Quellcode:
sollte gehen, funzt aber nicht:cry:
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_Less , 1); |
AW: OpenGL Tranzparenz in Textur Alpha-Blending
wenn die Textfarbe Schwarz ist mit Alpha=0
und der Hintergrund weiss mit Alpha=255 geht es inzwischen. Mit einer anderen SchriftFarben statt Schwarz geht es leider nicht:cry:
Delphi-Quellcode:
Die Textfarbe sollte doch mit dem Alpha-Wert gar nichts zu tun haben.
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_Greater, 0.1); |
AW: OpenGL Tranzparenz in Textur Alpha-Blending
Delphi-Quellcode:
Hast du mal geguckt, ob diese Zeile überhaupt ausgeführt wird?
if ( ll_rgbQuad.rgbRed + ll_rgbQuad.rgbGreen + ll_rgbQuad.rgbBlue =0 ) then begin
ll_rgbQuad.rgbAlpha:=0; //<- end; Könnte nämlich auch an Gleitkommazahlen-Ungenauigkeit hängen. Beziehungsweise: Ist dein Weiß auch wirklich #000? |
AW: OpenGL Tranzparenz in Textur Alpha-Blending
wird ausgeführt: Breakpoint spricht an.
|
AW: OpenGL Tranzparenz in Textur Alpha-Blending
so geht's::idea:
Delphi-Quellcode:
if ( ll_rgbQuad.rgbRed + ll_rgbQuad.rgbGreen + ll_rgbQuad.rgbBlue < 3*255 ) then begin ll_rgbQuad.rgbReserved:=255; end; |
AW: OpenGL Tranzparenz in Textur Alpha-Blending
next Problem:
kann man die Farben in einer Textur tauschen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz