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:
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;
Generierung der Textur
Delphi-Quellcode:
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 );
Ausgabe
Delphi-Quellcode:
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();
Ausgabe funktioniert zwar, leider nicht transparent.
gibt es irgendwo ein Beispiel ?