- procedure tGLform.Render;
- var
- i: Integer;
- const
- mat_specular : Array[0..3] of GlFloat = (1.0, 1.0, 1.0, 1.0);
- mat_shininess : Array[0..0] of GlFloat = (10.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);
- mat_emission : Array[0..3] of GLFloat = (0.3, 0.4, 0.8, 1.0);
- light_position : Array[0..3] of GlFloat = (1000, 10.0, 0.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
- 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]);
- glMaterialfv(GL_FRONT, GL_EMISSION, @mat_emission[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]);
- glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.001);
- glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.000001);
- glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.000004);
- glEnable(GL_COLOR_MATERIAL);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity;
- gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity;
- glEnd;
- gltranslatef(0,-30,-600);
- glrotatef(-70,1,0,0);
- glpushmatrix();
- gltranslatef(0,0,-10);
- glBegin(GL_QUADS);
- glColor3f(1,1,1); glVertex3f(glgrenze1.x-300, glgrenze1.y-100, 0);
- glColor3f(1,1,1); glVertex3f(glgrenze2.x+170, glgrenze1.y-100, 0);
- glColor3f(1,1,1); glVertex3f(glgrenze2.x+170, glgrenze2.y+240, 0);
- glColor3f(1,1,1); glVertex3f(glgrenze1.x-300, glgrenze2.y+240, 0);
- glEnd;
- glpopmatrix();
- //
- for i := 0 to length(glkugeln)-1 do
- begin
- glPushMatrix();
- glColor3f(0,0,1);
- gltranslatef(glkugeln[i].pos.x-300,glkugeln[i].pos.y-100,glkugeln[i].pos.z);
- glusphere(kugel,glkugeln[i].radius,50,50);
- glPopMatrix();
- end;
- SwapBuffers(DC);
- end;