Книги

OpenGL / FPC - Глава 9

Теперь, ознакомившись с функциями глубины, можно начать строить уже свои 3D объекты. На самом деле это очень просто, поскольку объект состоит из примитивов. Так что используем треугольники, квадраты, и прочая, для построения более сложных 3D объектов.

Для примера возьмем пирамиду. Пусть она состоит из четырех треугольников и квадрата в основании.

     glBegin( GL_TRIANGLES );
	glColor3f(1.0,0.0,0.0);
	 glVertex3f( 0.0, 1.0, 0.0);
	 glVertex3f(-1.0,-1.0, 1.0);
	 glVertex3f( 1.0,-1.0, 1.0);
	glColor3f(0.0,1.0,0.0);
	 glVertex3f( 0.0, 1.0, 0.0);
	 glVertex3f( 1.0,-1.0, 1.0);
	 glVertex3f( 1.0,-1.0, -1.0);
	glColor3f(0.0,0.0,1.0);
	 glVertex3f( 0.0, 1.0, 0.0);
	 glVertex3f( 1.0,-1.0, -1.0);
	 glVertex3f(-1.0,-1.0, -1.0);
	glColor3f(1.0,1.0,0.0);
	 glVertex3f( 0.0, 1.0, 0.0);
	 glVertex3f(-1.0,-1.0,-1.0);
	 glVertex3f(-1.0,-1.0, 1.0);
     glEnd();
     glBegin( GL_QUADS );
	glColor3f(1.0,0.0,1.0);
	 glVertex3f( 1.0,-1.0,-1.0);
	 glVertex3f( 1.0,-1.0, 1.0);
	 glVertex3f(-1.0,-1.0, 1.0);
	 glVertex3f(-1.0,-1.0,-1.0);
     glEnd();

Исходник лежит здесь.

Не так уж и сложно, правда ведь? Почти все объекты могут быть построены из этих простых примитивов. Однако помните то, о чем я уже предупреждал: вам следует следить, в каком направлении строятся поверхности ( по или против часовой стрелки).

Попробуйте сами построить куб. А как насчет домика? Позабавьтесь немного, и построения в трехмерном пространстве станут для вас не столь утомительными.

Актуальные версии
FPC3.2.2release
Lazarus3.2release
MSE5.10.0release
fpGUI1.4.1release
links