(Gast)
n/a Beiträge
|
Alle seiten mit Texture füllen
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)
|