четверг, 17 февраля 2011 г.

JMonkey: Статья 2.2 Понятия Node (узел) и Geometry (геометрическая форма)

Итак, подведем итоги статьи 2.1 и упорядочим все вышеизложенное.

Spatial -абстрактная структурная совокупность преобразований (вращение, изменение габаритов и т.д.)

Node (узел) - грубо говоря, это "невидимый рычаг" управления. Node группирует геометрические объекты и другие Nodes вместе (когда вы преобразуете исходный узел, то происходит преобразование "наследующих" узлов).

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

Теперь поговорим немного о трансформировании объектов. Всего трансформации объекта можно проводить по трем направлениям: движение, вращение, изменение габаритов объекта (resizing).

Изменение координат объекта:

thing.setLocalTranslation( new Vector3f( 0.0f, 40.2f, -2.0f ) );

В данном случае thing - объект, который подвергается преобразованию (изменение координат объекта).

Чтобы просто передвинуть объект на определенное расстояние вдоль той или иной оси, можно использовать код:

thing.move( 0.0f, 40.2f, -2.0f );

Опять таки, объектом преобразования выступает "thing".

Для изменения размеров Spatial'a, необходимо изменить параметр величины по определенной координате: длина, ширина, высота. Значение между 0,0 и 1,0 определит множитель для значения переменной на убывание и, само собой разумеется, между 1,0 и выше - увеличение (увеличение габарита объекта).

thing.setLocalScale( 10.0f, 0.1f, 1.0f );

thing.scale( 10.0f, 0.1f, 1.0f );

Как и в случае с передвижением используется "local" форма кода и форма обыденного, грубо говоря, изменения параметра величины.

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

thing.rotate( 0f , 0f , FastMath.PI );

Здесь происходит вращение объекта thing вокруг оси z на 180 градусов. Чтоб окончательно внести ясность,

(0 - 360 град) = (0.0f to 6.28f радиан).


В статье были рассмотрены базовые особенности и отличия Node, Geometry, Spatial, а также методы и способы преобразования тех или иных объектов (естественно на начальном уровне пока что :) ).

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

До встречи!

Комментариев нет:

Отправить комментарий