Ogl Blend Transp Problem



  • Hi

    Ich glaub ich stell mich grad ziemlich dumm an: Ich will einfach eine texture anzeigen mit aplha channel, und den genauso blenden, also simple Transparenz.

    versucht habe ich es so:

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
    glBindTexture(GL_TEXTURE_2D, Text[0]);
    
    glBegin(GL_QUADS);
    glTexCoord2f(0.0f,1.0f);glVertex3f(0,		0,    PosZ);
    glTexCoord2f(1.0f,1.0f);glVertex3f(SizX ,	0,      PosZ);
    glTexCoord2f(1.0f,0.0f);glVertex3f(SizX,	-SizY,	PosZ);
    glTexCoord2f(0.0f,0.0f);glVertex3f(0,		-SizY,	PosZ);
    glEnd();
    

    So, das quad mit der texture wird angezeigt, und da wo aplha =1 ist passt alles. Aber an den Stellen wo As<1 scheint nicht, wie gewuenscht, der Hintergrund (bzw, alles was dort vorher schon hingezeichnet wurde) durch. Sondern es wird mit der zuletzt verwendeten Farbe deckend gefuellt. Anstatts des Hintergrundes scheint auf der Flaeche der texture die zuletzt mit glColor eingestellte Farbe durch.

    (das selbe passiert auch wenn ich kein blending verwende und einfach die texture mit aplha channel zeichne, immer kommt die letzte Farbe zum vorschein und keine Transparenz)

    Ich versteht nicht warum das so ist, und wie man es richtg macht.

    Gruesse
    Flo



  • Hab selbst noch kaum was mit alpha unter open gl gemacht, aber vllt
    hilft dir das: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=08



  • Hört sich an, als würdest du nicht mit dem Hintergrund, sondern der Vertexfarbe blenden.

    Bye, TGGC



  • Danke soweit fuer alle Antworten

    Die Nehe tuts kenn ich schon, aber danke. Die sind neben dem Redbook die hauptquelle aus der ich ogl infos hol.

    TGGC schrieb:

    Hört sich an, als würdest du nicht mit dem Hintergrund, sondern der Vertexfarbe blenden.

    Bye, TGGC

    Ha, genau das ist mein problem ;), wo aber stell ich das ein dass ich nicht mit der Vertex/fragment farbe blenden will sondern mit dem Hintergrund?

    Das kuriose ist das es mittleweile geht, ich aber nicht versteht warum, und den Fehler den ich die ganze zeit hatte kann ich nichtmal mehr produzieren.
    Vorher: egal was ich versuch habe, es ging nicht. Jetzt: egal was ich rumdrehe es geht immer...

    Genau dehalb wuerde ich gerne wissen, wie einstell das ich mit hintergrund oder mit fragment farbe blende ... ?

    Flow


Anmelden zum Antworten