Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#1

Alle seiten mit Texture füllen

  Alt 26. Aug 2020, 00:50
Ich bekomme es nicht hin wo ist mein Fehler?

Ich erstelle einen Quader.

Delphi-Quellcode:
      glBegin(GL_QUADS);
        // Front Face
        glNormal3f( 0.0, 0.0, 0.5);
        glTexCoord2f(0.0, 0.0); glVertex3f(-x,-y, z);
        glTexCoord2f(1.0, 0.0); glVertex3f( x,-y, z);
        glTexCoord2f(1.0, 1.0); glVertex3f( x, y, z);
        glTexCoord2f(0.0, 1.0); glVertex3f(-x, y, z);
        // Back Face
        glNormal3f( 0.0, 0.0,-0.5);
        glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y,-z);
        glTexCoord2f(1.0, 1.0); glVertex3f(-x, y,-z);
        glTexCoord2f(0.0, 1.0); glVertex3f( x, y,-z);
        glTexCoord2f(0.0, 0.0); glVertex3f( x,-y,-z);
        // Top Face
        glNormal3f( 0.0, 0.5, 0.0);
        glTexCoord2f(0.0, 1.0); glVertex3f(-x, y,-z);
        glTexCoord2f(0.0, 0.0); glVertex3f(-x, y, z);
        glTexCoord2f(1.0, 0.0); glVertex3f( x, y, z);
        glTexCoord2f(1.0, 1.0); glVertex3f( x, y,-z);
        // Bottom Face
        glNormal3f( 0.0,-0.5, 0.0);
        glTexCoord2f(1.0, 1.0); glVertex3f(-x,-y,-z);
        glTexCoord2f(0.0, 1.0); glVertex3f( x,-y,-z);
        glTexCoord2f(0.0, 0.0); glVertex3f( x,-y, z);
        glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y, z);
        // Right face
        glNormal3f( 0.5, 0.0, 0.0);
        glTexCoord2f(1.0, 0.0); glVertex3f( x,-y,-z);
        glTexCoord2f(1.0, 1.0); glVertex3f( x, y,-z);
        glTexCoord2f(0.0, 1.0); glVertex3f( x, y, z);
        glTexCoord2f(0.0, 0.0); glVertex3f( x,-y, z);
        // Left Face
        glNormal3f(-0.5, 0.0, 0.0);
        glTexCoord2f(0.0, 0.0); glVertex3f(-x,-y,-z);
        glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y, z);
        glTexCoord2f(1.0, 1.0); glVertex3f(-x, y, z);
        glTexCoord2f(0.0, 1.0); glVertex3f(-x, y,-z);
      glEnd();
Dieser ist korrekt mit der Texture gefüllt auf jeder Seite.

Jetzt möchte ich eine Raute\ Diamond erstellen das mache ich über GL_TRIANGLE_FAN.
Funktioniert auch soweit aber es werden nicht alle Seiten mit meinem Cover befüllt.

Delphi-Quellcode:
        //Up
        glBegin(GL_TRIANGLE_FAN);
          glColor3ub(R2, G2, B2); glTexCoord2f(0.0, 1.0); glVertex3d(0.0, 1.414, 0.0);
          glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0);
          glColor3ub(0, 0, 0); glTexCoord2f(1.0, 0.0); glVertex3d(1.0, 0.0, -1.0);

          glColor3ub(R1, G1, B1); glTexCoord2f(1.0, 1.0); glVertex3d(-1.0, 0.0, -1.0);
          glColor3ub(0, 0, 0); glTexCoord2f(0.0, 1.0); glVertex3d(-1.0, 0.0, 1.0);
          glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0);
        glEnd();

        //Down
        glBegin(GL_TRIANGLE_FAN);
          glColor3ub(R2, G2, B2); glTexCoord2f(0.0, 1.0); glVertex3d(0.0, -1.414, 0.0);
          glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0);
          glColor3ub(64, 64, 64); glTexCoord2f(1.0, 0.0); glVertex3d(-1.0, 0.0, 1.0);

          glColor3ub(R1, G1, B1); glTexCoord2f(1.0, 1.0); glVertex3d(-1.0, 0.0, -1.0);
          glColor3ub(64, 64, 64); glTexCoord2f(0.0, 1.0); glVertex3d(1.0, 0.0, -1.0);
          glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0);
        glEnd();
      end;
Wo ist mein Denkfehler?

Geändert von venice2 (20. Okt 2020 um 12:13 Uhr)
  Mit Zitat antworten Zitat