Wie muss meine Texture aussehen um zu funktionieren?
Ich habe bisher nur ein bmp mit der entsprechenden Schraffur erstellt.
Ich habe nun versucht das Ganze auf meinen Zylinder anzuwenden. Dabei entsteht ein Chaos!
Hier der ursprüngliche Code zum Zylinder:
Code: Alles auswählen
procedure TSteuerung.Zylinder;
begin
glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex3f(IAA-IAJ*0.75, IAJ*0.5, 0);
glVertex3f(IAA-IAJ*0.75, -IAJ*0.5, 0);
glVertex3f(IAA+IAJ*0.75, -IAJ*0.5, 0);
glVertex3f(IAA+IAJ*0.75, IAJ*0.5, 0);
glColor3f(1,1,1);
glVertex3f(IAA-IAJ*0.7, IAJ*0.3,-0.02);
glVertex3f(IAA-IAJ*0.7, -IAJ*0.3,-0.02);
glVertex3f(IAA+IAJ*0.7, -IAJ*0.3,-0.02);
glVertex3f(IAA+IAJ*0.7, IAJ*0.3,-0.02);
//Schieberkasten
glColor3f(0,0,0);
glVertex3f(IAA-IAJ*0.75,2*IAD-(IAJ/2), 0);
glVertex3f(IAA-IAJ*0.75,IAJ/2, 0);
glVertex3f(IAA+IAJ*0.75,IAJ/2, 0);
glVertex3f(IAA+IAJ*0.75,2*IAD-(IAJ/2), 0);
glColor3f(1,1,1);
glVertex3f(IAA-IAJ*0.7,IAD+IAJ/7,-0.02);
glVertex3f(IAA-IAJ*0.7,IAD-IAJ/7,-0.02);
glVertex3f(IAA+IAJ*0.7,IAD-IAJ/7,-0.02);
glVertex3f(IAA+IAJ*0.7,IAD+IAJ/7,-0.02);
glEnd();
end;
Mein Versuch das in meine Procedure einzufügen ergibt recht lustige Effekte. Natürlich müssen die Koordinaten noch angepasst werden.
Code: Alles auswählen
procedure TSteuerung.Zylinder;
begin
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// --- Textur Aktivieren
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, textureID0);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0);
glVertex3f(-0.8, -0.8, 0);
glTexCoord2f(1.0, 0.0);
glVertex3f(-0.8, 0.8, 0);
glTexCoord2f(1.0, 1.0);
glVertex3f(0.8, 0.8, 0);
glTexCoord2f(0.0, 1.0);
glVertex3f(0.8, -0.8, 0);
glEnd();
glDisable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex3f(IAA-IAJ*0.75, IAJ*0.5, 0);
glVertex3f(IAA-IAJ*0.75, -IAJ*0.5, 0);
glVertex3f(IAA+IAJ*0.75, -IAJ*0.5, 0);
glVertex3f(IAA+IAJ*0.75, IAJ*0.5, 0);
glColor3f(1,1,1);
glVertex3f(IAA-IAJ*0.7, IAJ*0.3,-0.02);
glVertex3f(IAA-IAJ*0.7, -IAJ*0.3,-0.02);
glVertex3f(IAA+IAJ*0.7, -IAJ*0.3,-0.02);
glVertex3f(IAA+IAJ*0.7, IAJ*0.3,-0.02);
//Schieberkasten
glColor3f(0,0,0);
glVertex3f(IAA-IAJ*0.75,2*IAD-(IAJ/2), 0);
glVertex3f(IAA-IAJ*0.75,IAJ/2, 0);
glVertex3f(IAA+IAJ*0.75,IAJ/2, 0);
glVertex3f(IAA+IAJ*0.75,2*IAD-(IAJ/2), 0);
glColor3f(1,1,1);
glVertex3f(IAA-IAJ*0.7,IAD+IAJ/7,-0.02);
glVertex3f(IAA-IAJ*0.7,IAD-IAJ/7,-0.02);
glVertex3f(IAA+IAJ*0.7,IAD-IAJ/7,-0.02);
glVertex3f(IAA+IAJ*0.7,IAD+IAJ/7,-0.02);
glEnd();
end;
Code abzutippen reicht leider nicht. Wenn ich nur verstehen könnte wie das funktionieren soll.
Einfach nur frustrierend...