Понятие объекта в пространстве
Введение
Ключевым понятием в World Engine является Объект. Под этим понятием подразумевается некоторая атомарная сущность, которая может взаимодействовать с:
- пространством
- пользователем
- другими объектами.
Понятие объекта, в общем случае, шире, чем некоторое физическое тело в виртуальном пространстве. Объект может даже не обладать координатами в пространстве: весь его смысл в этом случае заключается во взаимодействии, которое не обязано быть физическим. Тем не менее, большая часть объектов — это именно объекты виртуального пространства.
Представления объекта
Каждый объект может быть представлен в нескольких (а может быть не представлен ни в одном) из трех пространств: механическом, физическом и графическом. Все три представления связаны между собой, но важно понимать, что это — три разных представления.
В механическом пространстве, объект представляет собой одно или несколько твердых тел, каждое из которых характеризуется:
- массой,
- матрицей момента инерции,
- координатами,
- кватернионом вращения.
Обратите внимание, что в механическом пространстве отсутствует какая-либо информация о форме объекта.
Если таких тел несколько, они могут быть связаны между собой суставами. Сустав определяет некоторые условия, по которым перемещение одного тела влечет перемещение другого. Существует несколько различных типов суставов, они будут рассмотрены ниже.
В физическом пространстве вводится понятие формы. Объект здесь представлен набором примитивов, объединенных в группы. Каждая из групп примитивов либо связана с одним из твердых тел механического представления (так, что перемещение этого тела в механическом пространстве влечет перемещение соответствующей группы примитивов в физическом), либо ни с чем не связана (такая группа примитивов всегда находится на одном месте: земля, деревья, дома и т.д).
Под примитивом здесь понимается один из нескольких геометрических примитивов: паралеллепипед, сфера, цилиндр и несколько других.
В графическом пространстве, объект представляет собой набор графических примитивов, таких как:
- полигональные поверхностей с различными графическими свойствами (начиная от текстурирования и заканчивая шейдерами),
- источники освещения,
- камеры.
Графическая модель также связана с механическим или физическим представлением — т.е. движок автоматически изменяет положение графических примитивов в соответствии с перемещениями физических.
Как уже было отмечено выше, объект может быть представлен как во всех трех представлениях, так и не иметь одного или нескольких представлений. Рассмотрим примеры объектов и проанализируем, какие представления они имеют.
- Аватар. Имеет представления во всех трех пространствах. Является полноценным "физическим" объектом.
- Фаербол, эмиттеры частиц (дым, огонь и т. д) либо другие графические фокусы. Представляются в графическом пространстве.
- Поля сил как проявления заклинаний или обычного ветра. Представляются в физическом пространстве.
AKAIK you've got the asnewr in one!