logo
KGMicro

Лекция 4. Анимация

Основной недостаток графической системы: невозможность получения динамического изменения реалистичного изображения в реальном времени. В зависимости от реалистичности и мощности техники требуется от нескольких минут до нескольких часов на рендеринг одного изображения.

Проблему решили следующим образом:

  1. подготовка кадров (фреймов).

  2. прокрутка кадров – анимация.

1. Кадровая анимация (fli, avi и т.д.).

рисунок

Изображение развернуто в растр, плавность и динамичность изображения (10 кадров/с).

Недостатки:

1. 320х200х1байт = 64кб, 5 сек, 50*64кб > 3мб

2. медленный вывод на экран, т.к. обновляется весь кадр.

2. Спрайтовая анимация.

Спрайт – изображение динамически изменяющегося объекта в одной из фаз движения.

Фон – неизменная при смене кадров часть изображения.

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

рисунок

рисунок

На каждом шаге необходимо: 1. восстановить фон; 2. вывести спрайт в рассчитанное место.

При подготовке спрайтов решаются следующие вопросы:

1. сколько необходимо спрайтов.

2. как часто нужно выводить спрайты.

3. в какие места экрана выводить.

4. методика анимации.

Предварительные расчеты

рисунок

t – время перемещения

спр – частота вывода спрайтов

t*спр –число позиций вывода

X = Xc – Xo => шаг X = X/ t*спр

Y = Yc – Yo => шаг Y = Y/ t*спр

Шаг должен быть не меньше одного пикселя => чем хуже разрешение и ниже скорость вывода спрайтов, тем больше вероятность прерывистого движения.

Xi+1 = Xi + шаг X

Yi+1 = Yi + шаг Y

Фазы движения:

Tф – промежуток времени от начальной фазы движения до конечной.

спр * Tф – число фаз

Методы анимации.

1. Общий метод.

В каждой позиции:

  1. восстанавливают фон

  2. запоминают фон

  3. вывод спрайта

рисунок

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

2. Отсечение фона маской спрайта.

Отдельно рисуется спрайт и отдельно маска. И спрайт и маска должны иметь одинаковый размер. Маска нужна для того, чтобы при выводе спрайта не затирался фон.

рисунок

Этапы:

  1. восстанавливают фон

  2. запоминают фон

  3. наложение маски

  4. наложение спрайта

3.Простая XOR-анимация.

Свойство обратимости:

Свойство прозрачности нуля:

рисунок

Этапы:

  1. восстановление фона

  2. вывод спрайта

Если фон черный или сложный, то сквозь спрайт просвечивается фон.

Общий недостаток.

Мерцание – часть времени изображение спрайта на экране отсутствует.

рисунок

Выход:

  1. Перекрытие спрайтов.

  2. Синхронизация с растровой разверткой.

  3. Промежуточный буфер в ОЗУ.

  4. Работа с несколькими страницами.

1. Перекрытие спрайтов.

рисунок

В спрайт вводят дополнительное поле перекрывающее предыдущий спрайт.

2. Синхронизация с растровой разверткой.

Кусок кода

3. Промежуточный буфер в ОЗУ.

рисунок

  1. Копия общего блока.

  2. Восстановление фона.

  3. Взятие копии фона.

  4. Наложение маски.

  5. Наложение спрайта.

  6. ОЗУ -> видеобуфер

Лекция 5. Геометрические основы машинной графики.

Представление 3-хмерного объекта в ЭВМ.

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

Каждая точка в пространстве описывается координатами, т.е. нужна система координат, в которой задается объект. Выбирают линейную систему координат, обычно декартовую.

рисунок

Представление объекта в виде каркаса.

1. Список, матрица вершин.

рисунок

2. Список ребер.

Ребро – отрезок прямой, определяется двумя вершинами.

рисунок

Каркас объекта – это совокупность вершин и ребер объекта.Вершины образуют список или матрицу вершин, ребра – матрицу ребер.

Геометрические преобразования объекта.

Смоделированный объект можно перемещать в пространстве, вращать и изменять в размерах. При этом изменяются только координаты вершин (список вершин), список ребер – неизменен.

Три вида изменения:

1. Перенос.

рисунок

Если применить перенос не для всех вершин, то объект деформируется.

2. Масштабирование.

рисунок

Если объект задан не в начале координат, то при Sx, Sy, Sz > 1 объект удалится, Sx, Sy, Sz <1 – приблизится.

3. Поворот.

Осуществляется относительно начала координат.

рисунок

Формулы задают вращение вокруг осей координат. Поворот вокруг произвольной оси можно свести к переносу и повороту вокруг оси координат.

Построение изображений каркасов 3D – объектов на экране.

Рисунок. Модель построения изображений каркасов 3D – объектов на экране монитора.

1. Каждый объект задается в своей ЛСК (список вершин, список ребер). Желательно, чтобы начало координат ЛСК(0,0,0) являлось центром симметрии или центром масс.

2. Преобразование в ЛСК. Обычно:

- масштабирование для выбора оптимального размера объекта на экране S(Sx,Sy,Sz).

- вращение вокруг осей проходящих через объект: Rx(), Ry(), Rz().

3. Перенос в МСК.

МСК – СК, в которой строится сцена и которая совмещена с наблюдателем и экранной плоскостью.

исунок

Объекты из ЛСК переносятся в МСК в расчетные точки (построение сцены)

Переносится начало координат ЛСК в расчетную точку:

формула

4. Преобразование в МСК.

Обычно:

- перенос T(dx,dy,dz) по одной или нескольким осям.

- поворот вокруг произвольных осей.

5. Проекция на экранную плоскость.

МСК – 3D, ГСК монитора – 2D

Проекция – преобразование СК размерности N d в СК размерности (N-1).

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

Два типа проекций - центральные и параллельные. Если расстояние между центром проекции и проекционной плоскостью конечно, то проекция будет центральной, если же оно бесконечно, то проекция будет параллельной. У параллельные проекций все проекторы параллельны. При описании центральной проекции мы явно задаем ее центр проекции, при определении параллельной проекции, мы указываем направление проецирования.

Центральная проекция порождает визуальный эффект перспективного укорачивания, подобный тому, к которому приводят фотографические системы. Т.е. размер центральной проекции объекта изменяется обратно пропорционально расстоянию от центра проекции до объекта. Это означает, что, хотя центральная проекция объектов является реалистичной, она оказывается непригодной для представления точной формы и размеров объектов: из проекции нельзя получить информацию о расстояниях; углы сохраняются только на тех гранях объекта, которые параллельны проекционной плоскости; проекции параллельных линий в общем случае не параллельны.

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