Программирование графики с использованием Direct3D

         

Ключевые кадры


Ключевые кадры (key-framing)— это метод анимации, в котором анимационная последовательность задается в терминах ключей. Каждый ключ представляет позицию и ориентацию, которые должен занять заданный объект в определенный момент времени. Позиция и ориентация объекта на протяжении анимационной последовательности вычисляется на основе этих ключей. Теория метода ключевых кадров обсуждалась в главе 2.

Для поддержки метода ключевых кадров в Direct3D предназначен интерфейс Direct3DRMAnimation. Он позволяет определять анимационную последовательность и управлять ею с помощью следующих функций:

  • AddPositionKey()
  • AddRotateKey()
  • AddScaleKey()
  • SetTime()

Функции AddPositionKey(), AddRotateKey() и AddScaleKey() используются для добавления к анимации ключевых кадров. Все они в качестве первого аргумента получают временную метку. Эта метка определяет момент времени внутри анимационной последовательности, в который данный ключ должен вступить в действие. Функция SetTime() используется, чтобы задать текущий момент времени в анимационной последовательности.

Интерфейс Direct3DRMAnimation определяет местоположение объекта в анимационной последовательности путем интерполяции между ключевыми кадрами. Для вычислений может применяться либо линейная, либо сплайновая интерполяция. Линейная анимация означает, что для перемещения объекта между ключевыми кадрами будет использоваться наикратчайший путь. В сплайновой анимации перемещение идет по сплайнам (плавным кривым). Сплайновая анимация обычно более реалистична, чем линейная.

Интерфейс Direct3DRMAnimation разработан в первую очередь для анимации экземпляров Direct3DRMFrame. Однако не сложно использовать этот интерфейс и для общей анимации. В главе 8 вы узнаете, как интерфейс Direct3DRMAnimation может применяться для анимации вершин. В главе 9 интерфейс Direct3DRMAnimation будет использован для анимации портов просмотра. В данной главе мы воспользуемся этим интерфейсом для анимации фреймов.



Содержание раздела