Книга: Написание скриптов для Blender 2.49

Параметры времени рендера

Параметры времени рендера

Наиболее важные параметры рендера при работе с изменяющимися во времени вещами - текущий номер кадра и частота кадров (количество кадров в секунду). Эти параметры предусмотрены сгруппированными вместе, в виде контекста рендера в модуле Scene, большинство через вызовы функций, некоторые как переменные:

scn               = Scene.GetCurrent()
context           = scn.getRenderingContext()
current_frame     = context.currentFrame() #Текущий кадр
start_frame       = context.startFrame()   #Начальный кадр
end_frame         = context.endFrame()     #Конечный кадр
frames_per_second = context.fps            #Частота
                                           #кадров, fps

Теперь, с этой информацией, мы можем вычислить время, или абсолютное, или относительно стартового кадра:

absolute_time = current_frame/float(frames_per_second)
relative_time = (current_frame-start_frame)/
                 float(frames_per_second)

Заметьте преобразование во float (число с плавающей точкой) в знаменателе (выделено). Этим способом мы гарантируем, чтобы деление рассматривалось как операция с плавающей точкой. Не строго необходимо, поскольку fps возвращается с типом плавающей точки, но множество людей считают частоту кадров как некоторую целую величину, например, 25 или 30. Тем не менее, так бывает не всегда (например, кодировка NTSC использует дробную частоту кадров), так что мы лучше сделаем это явно. Также заметьте, что мы не можем покончить с этим делением, в противном случае, когда люди захотят изменить своё решение о выбранной частоте кадров, скорость анимации должна измениться.

Оглавление книги


Генерация: 1.294. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз