# Alpha Kanal in Texturen



## BattleMaster246 (6. Jul 2010)

Ich versuche die ganze Zeit, dass die Stellen, die ich in Gimp durchsichtig gemacht habe, auch in openGL durchsichtig sind. Bei mir werden diese Stellen in openGL mit schwarz verdeckt.

Ich habe es schon mit Blending probiert, allerdings wird dabei die ganze Textur durchsichtig gemacht.
Aber wie funktioniert das nur bei bestimmten Stellen???

Ich hab schon die ganze Zeit bei Google gesucht, habe aber nichts brauchbares gefunden.


----------



## Guest2 (7. Jul 2010)

Moin,

hast Du mal ein KSKB zu Deinem bisherigen Versuch? Auch die Textur mit der Du es versucht hast könnte hilfreich sein.

Vermutlich kann ich Dir dann sagen wo es zwickt. 

Gruß,
Fancy


----------



## BattleMaster246 (7. Jul 2010)

Textur: http://dev.mastercoding.net/ecken sollen weg.png

Mein Versuch (Zeile 174):

Mastercoding.NET - Code-Pasting


----------



## Evil-Devil (7. Jul 2010)

Hehe, ohne aktiviertes Blending wird das immer schwarz bleiben 
Aktiviere Blending und es sollte funktionieren.

OpenGL FAQ / 15 Transparency, Translucency, and Using Blending


----------



## BattleMaster246 (7. Jul 2010)

[JAVA=174]gl.glEnable(GL.GL_BLEND);
                gl.glBlendFunc (GL.GL_DST_COLOR, GL.GL_SRC_COLOR);[/code]

Ist doch aktiviert?


----------



## Evil-Devil (7. Jul 2010)

Ups, übersehen.
Aber wieso hast du jenen Blending mode? Für den klassischen Transparent Effekt wird meist

```
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
```
genutzt. Oder wolltest deinen Transparenten Bereich noch einfärben?


----------



## Guest2 (7. Jul 2010)

Der Code ist ja leider nicht ausführbar, da Teile fehlen. KA, ob z.B. das Texturformat korrekt aufgebaut ist. Auch allgemein ist der Code noch ein wenig "wirr". Ist Dir z.B. bewusst, dass die init() zur Laufzeit mehrmals aufgerufen werden kann? Du hängst dann jedes Mal neue Listener und einen neuen Animator an...

Aber allgemein ist glBlendFunc schon ein guter Ansatzpunkt.

Mal ein Beispiel als wirkliches KSKB: TextureBlending.java

Gruß,
Fancy


----------



## BattleMaster246 (7. Jul 2010)

Es gab zwei Fehler.

1. Ich musste folgendes benutzen:


```
gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
```

2. Die Reihenfolge musste von Hinten nach Vorne sein.


Nun geht es, danke


----------

