5.11. Подход, основанный на выполнении нормализации для любого типа проецирования, предполагает предварительное искажение всех объектов отображаемой сцены и выполнение для любого типа проекции на втором этапе только ортогонального проецирования. Какие проблемы, по-вашему, могут возникнуть при использовании этого подхода для создания графической системы?

5.12. Как изменится матрица проективного преобразования OpenGL, если центр проецирования не совпадает с началом координат? Положите, что центр проецирования находится в точке (0, 0, d), а картинная плоскость описана уравнением г = 0.

5.13. Один из классов трехмерных объектов формируется вытягиванием в направлении третьей оси соответствующих двухмерных объектов. Например, в результате такой операции из окружности формируется цилиндр, а из плоского четырехугольника - параллелепипед. С помощью этой методики преобразуйте программу формирова-

Визуализация

ния двухмерного лабиринта (см. упр. 2.7) таким образом, чтобы с ее помощью можно было сформировать трехмерный лабиринт.

5.14. Расширьте возможности программы, разработанной при выполнении предыдущего упражнения, таким образом, чтобы пользователь мог "пройтись" по сформированному трехмерному лабиринту. Щелчок средней кнопкой мыши должен задавать движение вперед, а щелчки правой и левой кнопками - поворачивать направление движения на 90° вправо или влево.

5.15. Если для вычерчивания осей использовать ортогональное проецирование, то оси хну будут лежать в плоскости чертежа, а ось г преобразуется в точку. Можно так организовать ортогональное проецирование, что проекции осей х и у будут по-прежнему пересекаться под углом 90°, а проекция оси г будет проходить под углом -135° по отношению к оси х. Отыщите соответствующую матрицу проективного преобразования.

5.16. Напишите программу отображения вращающегося куба внутри ящика с тремя источниками света. Тень от куба, создаваемая каждым источником, должна быть видна на одной из видимых граней этого ящика.


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