// draw the block anchoring the arm gIMaterialfv ( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, yellow ); drawBox (1.0, 3.0, -2.0, 2.0, -2.0, 2.0 ); drawBox (-3.0, -1.0, -2.0, 2.0, -2.0, 2.0 );
// rotate the coordinate system and draw the arm's base member gIMaterialfv ( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue ); gIRotatef ((GLfloat) angle, 1.0, 0.0, 0.0 ); drawBox (-1.0,.1.0, -1.0, 1.0, -5.0, 5.0 );
// translate the coordinate system to
// the end of base member, rotate it, and draw the second member glTranslatef ( 0.0, 0.0, -5.0 ); gIRotatef (-(GLfloat) angle / 2.0, 1.0, 0.0, 0.0 ); drawBox (-1.0, 1.0,-1.0, 1.0,-10.0,0.0 );
// translate and rotate coordinate
// system again and draw arm's third member glTranslatef ( 0.0, 0.0, -5.0 ); gIRotatef (-(GLfloat) angle / 2.0, 1.0, 0.0, 0.0 ); drawBox (-1.0, 1.0,-1.0, 1.0,-10.0,0.0 );
gIFIush (); // render the scene to pixel buffer
}

Это лишь краткое изложение основных возможностей OpenGL. Достаточно йодное описание ее потенциала содержится в [16].

Упражнения Напишите программу, строящую правильные многогранники с правильным освещением.

Модифицируйте предыдущую программу для анимации сцены - все многогранники должны двигаться по различным траекториям.

Глава 13

ЭЛЕМЕНТЫ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ

Под виртуальной реальностью обычно понимается создание эффекта присутствия человека в несуществующем пространстве. Причем этот эффект должен быть как можно более полным. Для достижения этого используются различные аппаратные и программные средства.

Программа, которая создает наиболее полную иллюзию присутствия в имитируемом пространстве так, что на экране наблюдатель видит все то, что он мог бы увидеть на самом деле, и качество изображения настолько высоко, чтобы поддерживать эту иллюзию, - подобная программа должна включать в себя:

эффективное и быстрое средство для удаления невидимых поверхностей;

быстрый алгоритм для текстурирования граней с элементами расчета интенсивности.

При этом крайне желательно избежать обработки всех поверхностей, так как их обычно бывает очень много, т. е. иметь порядок где п - общее количество граней.


⇐ Предыдущая| |Следующая ⇒