procedure TForm1.OpenGLControl1Paint(Sender: TObject);
var
Dist: double;
begin
glDisable(GL_CULL_FACE);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
// use this length so that camera is 1 unit away from origin
Dist := sqrt(1 / 3.0);
gluLookAt(Dist, Dist, Dist, // position of camera
0.0, 0.0, 0.0, // where camera is pointing at
0.0, 1.0, 0.0); // which direction is up
glMatrixMode(GL_MODELVIEW);
glBegin(GL_LINES);
glColor3d(1.0, 0.0, 0.0);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(1.0, 0.0, 0.0);
glColor3d(0.0, 1.0, 0.0);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(0.0, 1.0, 0.0);
glColor3d(0.0, 0.0, 1.0);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(0.0, 0.0, 1.0);
glEnd();
DrawWallSlice(0, 0, 0.5, 0, clYellow);
DrawWallSlice(0, 0.5, 0, 0, clGreen);
glFlush;
OpenGLControl1.SwapBuffers;
end;