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

Aktuelle Zeit: Do Jul 03, 2025 06:33

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Nov 13, 2010 15:59 
Offline
DGL Member
Benutzeravatar

Registriert: So Nov 07, 2010 14:08
Beiträge: 11
Programmiersprache: Delphi
Hi,
und schon wieder brauche ich die Hilfe der OpenGL-Community :( .
Mein Problem ist eigentlich schnell erklärt:
Ich habe ein Quad mit einer (Grass)-Textur darauf, sieht auch schön aus :D .
Wenn ich jetzt jedoch glColor einsetze (in meinem Beispiel erzeuge ich ein 2. rotes Quad) bekommt das Quad mit der Textur einen Rotstich.
Ich habe meinen Code mal bis auf die Grundproblematik vereinfacht und jetzt sieht er so aus: (Ich habe im Anhang nochmal 2 Screenshots die Das Problem verdeutlichen, einmal vor dem Benutzen von glColor (disp2Quad = false) und einmal danach (disp2quad = true))
Code:
procedure TDLMatch.Render;
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

  glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    SetupGL;

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity;

  //----------------------------------------------------------------------------
  glBindTexture(GL_TEXTURE_2D, TableTexture1);
  glBegin(GL_QUADS);
    glTexCoord2f(0,0);  glVertex3f(0,0,-128); // unten links
    glTexCoord2f(1,0);  glVertex3f(100,0,-128); // unten rechts
    glTexCoord2f(1,1);  glVertex3f(100,100,-128); // oben rechts
    glTexCoord2f(0,1);  glVertex3f(0,100,-128); // oben links
  glEnd;

  if disp2Quad then
  begin
    glDisable(GL_TEXTURE_2D);
      glColor3f(1,0,0); // ROT !!!
      glBegin(GL_QUADS);
        glVertex3f(0,0,-128); // unten links
        glVertex3f(-100,0,-128); // unten rechts
        glVertex3f(-100,-100,-128); // oben rechts
        glVertex3f(0,-100,-128); // oben links
      glEnd;
    glEnable(GL_TEXTURE_2D);
  end;
  //----------------------------------------------------------------------------

  SwapBuffers(DC);
end;

procedure TDLMatch.SetupGL;
begin
  glClearColor(0, 0, 0, 0.0);                                   // Hintergrundfarbe: Hier ein SCHWARZ
  glOrtho(-(SizeX/2), SizeX/2, -(SizeY/2), SizeY/2, NearClipping, FarClipping);         // Aktiviert 2D Perspektive
  glViewport(0,0,OGLDisplay.ClientWidth,OGLDisplay.ClientHeight);
  glEnable(GL_TEXTURE_2D);                                         // Aktiviert Texture Mapping
  glEnable(GL_DEPTH_TEST);                                        // Aktiviert Tiefentest
  glDepthFunc(GL_LESS);                                             // Depth Buffer Setup
end;


Ich bedanke mich schonmal im Vorraus für jeden der sich die Mühe gemacht hat mein Problem durchzulesen

... Mikescher


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Nov 13, 2010 16:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
glColor3f(..) behält seine Wirkung solange bis du eine neue Farbe setzt. Daher wird auch dein Gras rot gefärbt.
Die Lösung ist einfach: Setze glColor3f(1,1,1) bevor du das texturierte Quad renderst.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Nov 13, 2010 16:19 
Offline
DGL Member
Benutzeravatar

Registriert: So Nov 07, 2010 14:08
Beiträge: 11
Programmiersprache: Delphi
Danke Coolcat.

So funktioniert es jetzt. Ich wusste gar nicht dass man texturen auch Farben zuweisen kann.

_________________
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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 | 14 Queries | GZIP : On ]