- procedure TForm1.Render; //wird über den Timer ausgeführt
- var Player:TVertex;
- const
- mat_specular : Array[0..3] of GlFloat = (1.0, 1.0, 1.0, 1.0);
- mat_shininess : Array[0..0] of GlFloat = (50.0);
- mat_ambient : Array[0..3] of GlFloat = (0.4, 0.4, 0.4, 1.0);
- mat_diffuse : Array[0..3] of GlFloat = (0.4, 0.8, 0.4, 1.0);
- light_position : Array[0..3] of GlFloat = (10.0, 10.0, 10.0, 1.0);
- light_ambient : Array[0..3] of GlFloat = (0.8, 0.8, 0.8, 1.0);
- light_diffuse : Array[0..3] of GlFloat = (0.8, 0.8, 0.8, 1.0);
- begin
- glLoadIdentity;
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- //glMatrixMode(GL_PROJECTION);
- gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
- glMatrixMode(GL_MODELVIEW);
- //==========================================
- glMaterialfv(GL_FRONT, GL_SPECULAR, @mat_specular[0]);
- glMaterialfv(GL_FRONT, GL_SHININESS, @mat_shininess[0]);
- glMaterialfv(GL_FRONT, GL_AMBIENT, @mat_ambient[0]);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, @mat_diffuse[0]);
- glLightfv(GL_LIGHT0, GL_AMBIENT, @light_ambient[0]);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, @light_diffuse[0]);
- glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]);
- glEnable(GL_COLOR_MATERIAL);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- GlPushMatrix; //Welt Zeichnen
- //zurecht drehen
- glRotatef(Kamera.ang.rotx, 1, 0, 0);
- glRotatef(Kamera.ang.rotz, 0, 1, 0);
- glRotatef(Kamera.ang.roty, 0, 0, 1);
- //Welt 0,0,0 unter die Kamera schieben
- glTranslatef(-Kamera.Pos.x, -Kamera.Pos.y, -Kamera.Pos.z);
- //Welt zeichnen
- DrwWelt;
- GlPopMatrix; //ENDE Welt
- SwapBuffers(DC);
- end;