Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 12:22

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Dez 24, 2003 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 18:50
Beiträge: 92
Habe ein Problemerlö mit Alpha Blending im Orthogonalen Modus. Ich zeichne zuerst mit folgendem Code ein Fenster :
Code:
  1. glEnable(GL_COLOR_MATERIAL);
  2. glColor4f(1.0,1.0,1.0,1.0);
  3. //Fenster selbst zeichnen
  4. texture[8].Bind;
  5. glBegin(GL_QUADS);
  6. glTexCoord2i(0,0); glVertex2i(x,y);
  7. glTexCoord2i(0,1); glVertex2i(x,(y+512));
  8. glTexCoord2i(1,1); glVertex2i((x+512),(y+512));
  9. glTexCoord2i(1,0); glVertex2i((x+512),y);
  10. glEnd;
  11. //Überschrift ausgeben
  12. glColor3f(0.0,0.0,0.0);
  13. glRasterPos2i(x+35,y+60);
  14. PrintText(Ueberschrift,FontBase2);
  15. glColor3f(1.0,1.0,1.0);
Anschliessend wollte ich mit folgendem Code auf dieses Fenster ein Sprite anzeigen lassen :
Code:
  1. //Tasten für die Forschung anzeigen
  2. texture[10].Bind;
  3. //Alpha Blending für die Sprites einschalten
  4. glEnable(GL_BLEND);
  5. glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
  6. glEnable(GL_ALPHA_TEST);
  7. glAlphaFunc(GL_GREATER,0);
  8. glColor4f(1.0,1.0,1.0,Alpha);
  9. //Anzeigetafel für das jeweilige Waffenprojekt
  10. glBegin(GL_QUADS);
  11. glTexCoord2i(0,0); glVertex2i(Rect_FMW_Projekt.Left,Rect_FMW_Projekt.Top);
  12. glTexCoord2i(0,1); glVertex2i(Rect_FMW_Projekt.Left,Rect_FMW_Projekt.Bottom);
  13. glTexCoord2i(1,1); glVertex2i(Rect_FMW_Projekt.Right,Rect_FMW_Projekt.Bottom);
  14. glTexCoord2i(1,0); glVertex2i(Rect_FMW_Projekt.Right,Rect_FMW_Projekt.Top);
  15. glEnd;
  16. //AlphaBlending wieder ausschalten
  17. glDisable(GL_BLEND);
  18. glDisable(GL_ALPHA_TEST);
Mein Problem an der Sache ist im Moment, das mit einem Alpha - Wert bei glColor4f von 0 das Sprite verschwindet und bei 1 voll erscheint. Ich hatte eigentlich nur vor, ein simples Sprite erscheinen zu lassen, aber ich mache wieder irgendwo einen Fehler, den ich nicht finde. Ich habe mir das Beispiel aus dem Buch "OpenGL Game Programming" von LaMothe abgeschaut und seltsamerweise funktioniert es in den Demos. Sieht jemand einen Fehler ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 24, 2003 19:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das ist doch logisch. Mit glColor setzt du den Alphawert für das KOMPLETTE Quad. Du müsstest aber Teile des Quads einen geringeren Wert zuweisen damit sie nicht gezeichnet werden. Was du brauchst ist ein Alphawert von 1 UND einen Alphakanal in der Spritetexture. Dann klappt das auch mit der Teilweisen durchsicht.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]