Einzelnen Beitrag anzeigen

Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#1

OpenGL Tranzparenz in Textur Alpha-Blending

  Alt 20. Jul 2014, 18:02
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 ?
  Mit Zitat antworten Zitat