Graphics & Media Lab. >> Курсы >> Курс Шикина 2000г.
ПРИМЕР

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

Первое, что нам понадобится - это библиотека для работы с векторами и матрицами в трехмерном пространстве. Ее можно довольно легко построить, используя перегрузку операторов в языке С++. Все исходные файлы, приведенные в этом разделе, можно скачать.

Другим важным объектом является сам кубик. Его можно представить как набор вершин, их соединяющих ребер и граней. Наиболее трудоемкой операцией при работе с кубиком является правильная инициализация всех его структур.

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

Простейшая программа. Проволочная (wireframe) модель кубика без удаления невидимых линий.
Добавим удаление невидимых линий методом отсечения нелицевых граней.
Закраска граней
Расчет диффузной освещенности граней
Отбрасывание тени на горизонтальную поверхность
Движение кубика и применение переключения видеостраниц для получения плавной анимации

Graphics & Media Lab. >> Библиотека | Курсы | Графикон

Hosted by Graphics & Media Lab.
http://graphics.cs.msu.su
lab_logo
mailto:Laboratory
Last modified: 24-Aug-2001