3ds max выполняет команды, исходя из трех следующих критериев: порядок их наложения, порядок в стеке и порядок, определяемый потоком данных объекта. Из этих критериев самым высоким приоритетом обладает последний.
Как уже отмечалось в главе 2, 3ds max написан на объектно-ориентированном языке под названием C++. Когда вы создаете объект в 3ds max, на самом деле вы создаете набор данных, основанный на определенном типе. По мере выполнения одной команды за другой данные изменяются, последовательно проходя через обработку командами. В результате мы наблюдаем изменения во внешнем виде или поведении нашего объекта (рис.6.98). Порядок, в котором выполняются команды, определяется потоком данных объекта в программе. В 3ds max процесс прохождения потока данных таков:
1. Исходный объект является отправной точкой для любого объекта. Он включает в себя тип объекта, определяющий основную структуру и параметры объекта, а также положение и ориентацию локальной системы координат объекта.
2. Модификаторы выполняются на следующем шаге. Обычно они изменяют структуру объекта вместе с его системой координат. Данные о модификаторах хранятся как часть определения объекта в упорядоченном списке под названием «стек модификаторов».
Рис. 6.98. Поток данных объекта. Сверху вниз: Определение исходного объекта созданием куба, наложение модификатора Twist, трансформация растяжения, пространственная деформация типа
FFD, наложение материала
3. Трансформации накладываются после модификаторов. Они изменяют положение, ориентацию и размер объектов. Данные о трансформации находятся в постоянно обновляемой (и недоступной для пользователя) матрице, которая не хранит историю преобразований.
Рис. 6.99. Порядок наложения команд может изменить результат
Лучше всего, если вы используете трансформации в анимациях, помещать их в модификатор
Xform.