Hallo zusammen,
wie schon aus dem Titel ersichtlich möchte ich eine Textur erst a la Renderpass-Tutorial zusammenstellen, eine Alpha-Maske rüberlegen und dann benutzten. Leider kriege ichs nicht auf die Reihe dass eine automatisch generierte Textur überhaupt Transparenz enthält.
Hier mal die gekürzte Version. Ich würde erwarten, dass sie ganz Transparent ist, was überhaupt nicht der Fall ist. Ändern der Werte von glClearColor bringt eine Farbänderung, aber keine Transparenzänderung.
Code:
Function RenderAlpha:Integer;
glGetIntegerv( GL_VIEWPORT,@viewport );
glDisable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glViewport(0,0,32,32);
glOrtho(0,32,0,32,-1,1);
glMatrixMode( GL_MODELVIEW );
glClearColor(0,0,0,0);
glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
Das passiert zwischen Zeile 15 und 16 Nein, ich habs weggelassen weil ich der Meinung bin, dass die Funktion RenderAlpha eine komplett Transparente Textur erzeugen sollte. Doch die erzeugte Textur ist komplett schwarz, nicht die kleinste Spur von Transparenz.
Es muss ich der korrekte alpha wert geschrieben werden. Wie sich dort glCopyTexImage2D verhällt kannich nicht sagen., da ich in solchen Fällen eher FBOs und Shader einsetze.
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Ich wollt nicht wissen, wo Du versuchst es in die Textur zu schieben, sondern wo Du den Speicher für diesen reservierst. Wenn Du die Reservierung nämlich via Copy&Paste aus meinem Tutorial übernommen hast, dann wird nämlich evtl. kein Speicher für den Alpha-Kanal eingeholt.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Kann der Hintergrund überhaupt Transparent sein? Wenn ich auf den Bildschirm zeichne geht das ja eigentlich nicht.
Zum Test hab ich mal mit glDrawPixels eine fortlaufende Zeichenfolge hineingeschrieben. Das ganze wieder mit glReadPixels ausgelesen und alle Alpha-Werte sin 255.
1. Szene zeichnen
2. alles mit glReadPixels in einen Buffer schreiben
3. Alphakanal in den Buffer schreiben
4. mittels glTexImage2D an eine Textur binden
Geht natürlich nur wenn der Alphakanl seperat in einem Buffer vorliegt, was bei mir glücklicherweise der Fall ist.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.