- procedure glDraw();
- begin
- glLoadIdentity;
- xAngle :=xAngle + xSpeed;
- yAngle :=yAngle + ySpeed;
- glTranslatef(0,0,-5);
- glRotatef(xangle,1.0,0.0,0.0);
- glRotatef(yangle,0.0,1.0,0.0);
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- //1 glBindBuffer(GL_ARRAY_BUFFER, VBO);
- //1 glColor3f(1, 0.4, 0.4);
- //1 glInterleavedArrays(GL_V3F, SizeOf(VERTICES), nil);
- //1 glDrawArrays(GL_TRIANGLES, 0, ln);
- //1 glBindBuffer(GL_ARRAY_BUFFER, 0);
- //2 glColor4f(1, 0, 1, 1);
- //2 glBindBuffer(GL_ARRAY_BUFFER, VBO);
- //2 glVertexPointer(2, GL_FLOAT, 0, 0);
- //2 glDrawArrays(GL_TRIANGLES, 0, ln);
- //2 glBindBuffer(GL_ARRAY_BUFFER, 0);
- for j:= 0 to (ln div 9-1) do
- begin
- i:=j*9;
- glcolor3f(((j+1)*0.08),0.5,0.5);
- glBegin(GL_Triangles);
- glVertex3f(VERTICES[i] , VERTICES[i+1], VERTICES[i+2]);
- glVertex3f(VERTICES[i+3], VERTICES[i+4], VERTICES[i+5]);
- glVertex3f(VERTICES[i+6], VERTICES[i+7], VERTICES[i+8]);
- glEnd;
- end;
- end;
- {------------------------------------------------------------------}
- { Initialise OpenGL }
- {------------------------------------------------------------------}
- procedure glInit();
- var
- x, y, i : integer;
- P :TVertex;
- F:file of TVertex;
- begin
- AssignFile(F,'Cube.dat') ;
- Reset(F) ;
- i:=0;
- try
- while not Eof(F) do begin
- Read (F, p) ;
- SetLength(VERTICES,(i*3)+3);
- VERTICES[i*3]:=p.x;
- VERTICES[i*3+1]:=p.y;
- VERTICES[i*3+2]:=p.z;
- i:=i+1;
- end;
- finally
- CloseFile(F) ;
- end;
- ln:=High(VERTICES)+1;
- glEnable(GL_VERTEX_ARRAY);
- glGenBuffers(1, @VBO);
- glBindBuffer(GL_ARRAY_BUFFER, VBO);
- glEnableClientState(GL_VERTEX_ARRAY);
- glBufferData(GL_ARRAY_BUFFER, sizeof(VERTICES), @VERTICES[0], GL_STATIC_DRAW);
- glShadeModel(GL_SMOOTH);
- glClearDepth(1.0);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0, 1.5, 1.0, 100.0);anpassen.
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- xSpeed:=0.02;ySpeed:=0.01;
- end;