Alpha Blending (jogl)

Status
Nicht offen für weitere Antworten.

JavaKing

Mitglied
Hallo zusammen,

ich habe versucht das sogenannte Alpha Blending einzubauen. Die Tischplatte wird einmal ohne und einmal mit Alpha Blending in eine DisplayListe geschrieben. Das Alpha Blending funktioniert soweit ganz gut, nur habe ich das Gefühl das auch die anderen Objekte beeinflusst werden. Ich zeichne die Tischplatte allerdings nach allen anderen Objekten.
Was könnte hier noch schiefgelaufen sein ?


Code:
private void drawScene(GL gl, boolean select)// Hier kommt der ganze Zeichnen-Kram hin 
 { 
        gl.glPushMatrix();
        gl.glTranslated(0,-4,-6);
        if (tisch_texture){gl.glCallList(tisch);} // Tisch zeichnen
        else{gl.glCallList(tisch2);}
        gl.glPopMatrix();
}


Code:
       // Tischplatte
        tischplatte2 = gl.glGenLists(1); 
        gl.glNewList(tischplatte2, GL_COMPILE);
          gl.glColor4f(1.0f,1.0f,1.0f,0.5f);// Volle Helligkeit, 50% Alpha ( NEU )
          gl.glBlendFunc(GL_SRC_ALPHA,GL_ONE);// Blending Funktion für Durchsichtigkeit basiered auf dem Quell Alpha Wert ( NEU )

          gl.glEnable(GL_BLEND);		//Turn Blending On
          gl.glDisable(GL_DEPTH_TEST);	// Turn Depth Testing Off  
          gl.glEnable(GL_TEXTURE_2D);
          text_tischplatte2.bind();

        w = 6+6; 
        h = 3+3; 
        xOffset = -6; 
        yOffset = -3; 
        segments = 200; 
        for (int x=0; x<segments; x++) { 
            for (int y=0; y<segments; y++)     { 
        // Relative Positionen der 4 Eckpunkte, alle zwischen 0 und 1 
        float rx0 = x * (1.0f / segments); 
        float ry0 = y * (1.0f / segments); 
        float rx1 = (x+1) * (1.0f / segments); 
        float ry1 = (y+1) * (1.0f / segments); 

        // Positionen der Expunkte des Rechtecks im Raum 
        float x0 = xOffset + rx0 * w; 
        float y0 = yOffset + ry0 * h; 
        float x1 = xOffset + rx1 * w; 
        float y1 = yOffset + ry1 * h; 

        gl.glBegin(GL_POLYGON); 
        gl.glNormal3f( 0.0f, 1.0f, 0.0f);
        gl.glTexCoord2f(rx0,ry1); gl.glVertex3f(x0, -3.0f, y1); //Punkt hinten links 
        gl.glTexCoord2f(rx0,ry0); gl.glVertex3f(x1, -3.0f, y1); //Punkt hinten rechts
        gl.glTexCoord2f(rx1,ry0); gl.glVertex3f(x1, -3.0f, y0); //Punkt vorne rechts
        gl.glTexCoord2f(rx1,ry1); gl.glVertex3f(x0, -3.0f, y0); // Punkt vorne links
        gl.glEnd(); 
    } 
}  
        gl.glDisable(GL_TEXTURE_2D);    
        gl.glDisable(GL_BLEND);		// Schalte Blending aus
	gl.glEnable(GL_DEPTH_TEST);	// Schalte Depth Testing an
        gl.glEndList();
 

Fancy

Aktives Mitglied
Moin,

JavaKing hat gesagt.:
nur habe ich das Gefühl das auch die anderen Objekte beeinflusst werden.

Die Aussage ist natürlich ein wenig schwammig, aber ich hoffe, das Du den Effekt beschreibst den ich meine und der genau hierdurch verursacht wird:

JavaKing hat gesagt.:
Ich zeichne die Tischplatte allerdings nach allen anderen Objekten.

OpenGL FAQ:
OpenGL FAQ hat gesagt.:
15.050 Do I need to render my primitives from back to front for correct rendering of translucent primitives to occur?
If your hardware supports destination alpha, you can experiment with different glBlendFunc() settings that use destination alpha. However, this won't solve all the problems with depth buffered translucent surfaces. The only sure way to achieve visually correct results is to sort and render your primitives from back to front.
Wenn Du Deine halbtransparente Tischplatte als letztes Objekt renderst, hast Du das Problem, das einfach über alle anderen Objekte drüber gerendert wird, unabhängig davon ob sie eigentlich durch diese Objekte verdeckt wäre und damit die Transparenz gar nicht zu tragen käme.

Konkret: Soviel ich weis liegen auf Deiner Tischplatte die Würfel. Zeichnest Du die Tischplatte mit ausgeschaltetem Tiefentest wird die Transparenz der Tischplatte einfach über Deine Würfel gelegt, obwohl dies nicht korrekt ist, da die Würfel ja die Tischplatte an entsprechender Stelle verdecken.

Wenn es also dieser Effekt ist (dies kann so wirken als ob die Würfel auch eine gewisse Transparenz hätten), musst Du die Reihenfolge mit der Deine Objekte gerendert werden ändern. Zuerst die Objekte unter der Tischplatte (ohne GL_BLEND mit GL_DEPTH_TEST), dann die halbtransparente Tischplatte (ohne GL_DEPTH_TEST mit GL_BLEND) und abschließend die Objekte auf Deiner Tischplatte (ohne GL_BLEND mit GL_DEPTH_TEST).

Gruß,
Michael
 

JavaKing

Mitglied
achso ok. Ich dachte ich muss die Tischplatte als letztes zeichnen. So hatte ich das verstanden. Das transparente im Prinzip zum Schluss....ok das ist wohl falsch.

Werde das jetzt so machen, Danke !
 

Illuvatar

Top Contributor
Hier gibts ständig Spam, ihc hab vorhin schon 12 Beiträge gelöscht... ich glaub den Thread braucht eh niemand mehr, deshalb *closed*
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z 2D Pixer art RPG Game - Alpha auf Indie DB spielbar Spiele- und Multimedia-Programmierung 0
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
BattleMaster246 Alpha Kanal in Texturen Spiele- und Multimedia-Programmierung 7
Developer_X Java 3D: Alpha, wie benutzten? Spiele- und Multimedia-Programmierung 8
T Alpha wert Spiele- und Multimedia-Programmierung 6
G LookupOp und Alpha-Kanal Spiele- und Multimedia-Programmierung 2
Quaxli Java 3D - Rotation mit Alpha Spiele- und Multimedia-Programmierung 2
D Alpha Objekt Spiele- und Multimedia-Programmierung 8
I JOGL: Problem mit Blending bei Billboards (Transparenz) Spiele- und Multimedia-Programmierung 2
E JOGL kein zugriff auf manche methoden Spiele- und Multimedia-Programmierung 5
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
M [JOGL] eclipse export Runnable Jar - startet nicht Spiele- und Multimedia-Programmierung 3
D [JOGL] bibliothek aus jar laden Spiele- und Multimedia-Programmierung 3
A JOGL Shader Anfängerprobleme Spiele- und Multimedia-Programmierung 2
A JOGL FloatBuffer vs Buffers Spiele- und Multimedia-Programmierung 2
A JOGL glBindBuffer einmalig oder mehrmalig? Spiele- und Multimedia-Programmierung 3
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
A Jogl-Projekt unter 32-Bit kompiliert und unter 64-Bit ausführen, geht das überhaubt ?? Spiele- und Multimedia-Programmierung 9
turing JOGL Cubes performant Spiele- und Multimedia-Programmierung 17
M JOGL Cubus mit Rand darstellen Spiele- und Multimedia-Programmierung 3
T JOGL 2D Objekte drehen rotate Spiele- und Multimedia-Programmierung 4
X JOGL - wie zum laufen bringen? Spiele- und Multimedia-Programmierung 2
M Schatten mit JOGL Spiele- und Multimedia-Programmierung 4
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
D [JOGL] Freibewegliche Lichtquelle im Raum Spiele- und Multimedia-Programmierung 4
H JOGL 2.0 jars fehlen Spiele- und Multimedia-Programmierung 8
R JOGL: glUniformLocation gibt immer -1 zurück Spiele- und Multimedia-Programmierung 4
BattleMaster246 Problem mit Jogl Spiele- und Multimedia-Programmierung 14
Mikescher [JOGL] Access restriction Spiele- und Multimedia-Programmierung 6
K jogl einbinden Spiele- und Multimedia-Programmierung 6
X JOGL - Textur auf Quad verzerrt Spiele- und Multimedia-Programmierung 2
X JOGL - 2D Sprite richtig platzieren Spiele- und Multimedia-Programmierung 4
T JOGL im OrthoMode und Texturen verfärben sich Spiele- und Multimedia-Programmierung 3
J JOGL konfigurieren / Windows 7 64-bit Spiele- und Multimedia-Programmierung 7
R JOGL polygon smooth Spiele- und Multimedia-Programmierung 20
J [JOGL] Kamera zentrieren über Achse Spiele- und Multimedia-Programmierung 4
BattleMaster246 Schussrichtung festlegen - JOGL Spiele- und Multimedia-Programmierung 8
BattleMaster246 Jogl Libs werden nicht geladen Spiele- und Multimedia-Programmierung 5
A [JOGL] TextRenderer malt Fläche hinter Buchstaben aus Spiele- und Multimedia-Programmierung 2
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
U [JOGL]Libs und Dlls mitliefern: Spiele- und Multimedia-Programmierung 9
S JOGL Perspektive Spiele- und Multimedia-Programmierung 2
R 2D Grafik JOGL Spiele- und Multimedia-Programmierung 18
D jogl downloaden ... wo? Spiele- und Multimedia-Programmierung 3
S JOGL 64 bit Spiele- und Multimedia-Programmierung 7
A jogl 2d performance Spiele- und Multimedia-Programmierung 20
J JOGL mit Netbeans Spiele- und Multimedia-Programmierung 3
S Jogl findet keine GLProfile ? Spiele- und Multimedia-Programmierung 6
C Frage zu Ray-Picking mit JOGL Spiele- und Multimedia-Programmierung 13
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
D Jogl:Textur auf GLUquadric wird vertikal spiegelverkehrt dargestellt Spiele- und Multimedia-Programmierung 2
F LWJGL Smoother animieren lassen (wie bei JOGL = Animator) Spiele- und Multimedia-Programmierung 3
F JOGL 2.0 Bug? Spiele- und Multimedia-Programmierung 3
F Jogl oder Java3D ? Spiele- und Multimedia-Programmierung 20
N Ein paar fragen zu JOGL Spiele- und Multimedia-Programmierung 4
M JOGL - Mehr als nur ein Canvas - Texturpool Spiele- und Multimedia-Programmierung 7
S Jogl, no gluegen-rt :-( Spiele- und Multimedia-Programmierung 4
BattleMaster246 Pong - JOGL Spiele- und Multimedia-Programmierung 2
1 JOGL: Fensterinhalt verschwindet sofort wieder Spiele- und Multimedia-Programmierung 3
jemandzehage JOGL 3D-Koordinaten des Klicks bestimmen Spiele- und Multimedia-Programmierung 2
P Erkennen auf welche Objekte gezeigt wird in JoGL Spiele- und Multimedia-Programmierung 6
E JOGL nur weißes Fenster Spiele- und Multimedia-Programmierung 2
Y 3D Koordinatensystem==> JOGL Spiele- und Multimedia-Programmierung 7
Y JOGL / OPENGL in Frame Spiele- und Multimedia-Programmierung 11
A JOGL Würfel hat durchsichtige Seiten? Spiele- und Multimedia-Programmierung 13
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
A Bewegungen mit JOGL Spiele- und Multimedia-Programmierung 12
P JOGL Button-klick-Problem Spiele- und Multimedia-Programmierung 2
S Jogl Problem bei Darstellung Spiele- und Multimedia-Programmierung 9
G JOGL Color stimmt nicht Spiele- und Multimedia-Programmierung 3
S JOGL Maven Dependency Spiele- und Multimedia-Programmierung 7
Developer_X JOGL - Sichtweite Spiele- und Multimedia-Programmierung 3
Developer_X JOGL Texturing Spiele- und Multimedia-Programmierung 31
Developer_X JOGL- Ich möchte mitmachen! Spiele- und Multimedia-Programmierung 23
X JOGL GL Kontext Initialisierung Spiele- und Multimedia-Programmierung 3
X Vertex Buffer Objects mit JOGL Spiele- und Multimedia-Programmierung 7
A JOGL / OpenGL Spiele- und Multimedia-Programmierung 7
P JOGL Cubemap Spiele- und Multimedia-Programmierung 7
P JOGL Installation Spiele- und Multimedia-Programmierung 15
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2
Antoras J3D / JME oder JOGL Spiele- und Multimedia-Programmierung 2
P GLSL in JOGL Spiele- und Multimedia-Programmierung 15
S jogl ins system einbinden Spiele- und Multimedia-Programmierung 3
W JOGL bleibt nach display() in PaintArea.paintComponent hängen Spiele- und Multimedia-Programmierung 5
S java /jogl /Texturen mit j3d Spiele- und Multimedia-Programmierung 3
S JOGL Fonts Spiele- und Multimedia-Programmierung 4
S JOGL Selection By Color Spiele- und Multimedia-Programmierung 3
E JOGL und TextRenderer Spiele- und Multimedia-Programmierung 9
H JoGL mit Anwendung verteilen... Spiele- und Multimedia-Programmierung 9
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
H Jogl-Animator - Inhalt ändert sich nicht Spiele- und Multimedia-Programmierung 4
S JOGL + Multithreading Spiele- und Multimedia-Programmierung 2
P Probleme mit Vista und JOGL Spiele- und Multimedia-Programmierung 2
G JOGL - glTranslate - Unterschiede bei zweimal Ausführen Spiele- und Multimedia-Programmierung 9
Kr0e Schattenproblem, JOGL, gluPerspective. Spiele- und Multimedia-Programmierung 2
J OpenGL (JOGL) - Radial Blur Effekt (Glow) Spiele- und Multimedia-Programmierung 2
J jogl - verschiedene Versionen Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben