Узловая структура



Узловая структура

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

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

Узлы, определяющие форму поверхности или объекта-примитива, называются узлами формы (shape nodes). Они несут информацию, определяющую способ создания объекта. Например, узел формы сферы имеет такой атрибут, как ее радиус. Изменение этого атрибута на базовом уровне меняет размер сферы. Узлы формы находятся в самом низу иерархической цепочки и всегда являются дочерними по отношению к узлам преобразования (transform nodes). Сначала рассматриваются узлы формы сферы, затем происходит переход к другим узлам, например положения, ориентации и масштаба.

ПРИМЕЧАНИЕ

Не все примитивы и объекты создаются с узлами формы, поэтому в некоторых случаях отсутствует возможность менять параметры объекта на этом уровне. Чтобы гарантировать наличие узла формы, необходимо включить фиксацию истории конструирования объектов, нажав на кнопку Construction History (История конструирования) в строке состояния.

Наиболее заметными и используемыми являются узлы преобразования, также известные как DAG-узлы (directed acyclic graph — направленный ациклический граф). Они содержат все атрибуты преобразования объекта или группы объектов. К преобразованиям в данном случае относятся положение объекта, а также его ориентация и масштаб. Также эти узлы хранят информацию о присоединенных к ним дочерних или родительских узлах. В процессе перемещения или масштабирования объекта вы меняете атрибуты его узла преобразования.

Рассмотрим пример работы с узлом преобразования:

1. Создайте сферу и нажмите комбинацию клавиш Ctrl+a, чтобы открыть для нее окно диалога Attribute Editor (Редактор атрибутов).

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

2. Нажмите клавишу W, чтобы активизировать инструмент Move (Переместить). Перейдите на вкладку nurbsSpherel, чтобы получить доступ к узлу преобразования сферы. Слегка переместите сферу вдоль оси X. Обратите внимание на то, как изменится значение Х-координаты атрибута Translate (Перемещение). Аналогичное изменение должно произойти и в окне диалога Channel Box (Окно каналов).

3. Нажмите клавишу R, чтобы активизировать инструмент Scale (Масштабировать). Равномерно масштабируйте сферу, воспользовавшись центральным манипулятором голубого цвета. Обратите внимание на то, как изменятся значения атрибутов Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) в окне диалога Attribute Editor (Редактор атрибутов). Введите в эти поля значение 1, чтобы вернуть сферу в исходное состояние.

4. Перейдите на вкладку makenurbsSpherel и введите в поле Radius (Радиус) значение 2. Размер сферы увеличится в два раза. Вернитесь на вкладку nurbsSpherel и обратите внимание на то, что значения атрибутов Scale X (Масштабирование по оси X), Scale Y (Масштабирование по оси Y) и Scale Z (Масштабирование по оси Z) при этом не изменились. Дело в том, что в данном случае размер был изменен на уровне узла формы, а не на более высоком уровне узла преобразования. Любые изменения атрибутов Scale (Масштабировать) вступают в силу после изменений в узлах более низкого уровня.

 


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