Понятие объекта в пространстве — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
(Новая: == Введение == Ключевым понятием в World Engine является Объект. Под этим понятием подразумевается некотора...)

Версия 20:20, 6 декабря 2007

Содержание

Введение

Ключевым понятием в World Engine является Объект. Под этим понятием подразумевается некоторая атомарная сущность, которая может взаимодействовать с

  • пространством
  • пользователем
  • другими объектами.

Понятие объекта, в общем случае, шире, чем некоторое физическое тело в виртуальном пространстве. Объект может даже не обладать координатами в пространстве: весь его смысл в этом случае заключается во взаимодействии, которое не обязано быть физическим. Большая часть объектов, тем не менее - это именно объекты виртуального пространства.

Представления объекта

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

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

  • массой,
  • матрицой момента инерции,
  • координатами,
  • кватернионом вращения.

Обратите внимание, что в механическом пространстве отсутствует какая-либо информация о форме объекта.

Если таких тел несколько, они могут быть связаны между собой суставами. Сустав определяет некоторые условия, по которым перемещение одного тела влечет перемещение другого. Существует несколько различных типов суставов, они будут рассмотрены далее.

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

Под примитивом здесь понимается один из нескольких геометрических примитивов: паралеллепипед, сфера, цилиндр и несколько других.

В графическом пространстве, объект представляет собой набор графических примитивов, как то

  • полигональных поверхностей с различными графическими свойствами (начиная от текстурирования и заканчивая шейдерами),
  • источников освещения,
  • камер.

Графическая модель также связана с механическим или физическим представлением - т.е. движок автоматически изменяет положение графических примитивов в соответствии с перемещениями физических.

Данные объекта

Данные объекта хранятся в файле DISS в формате BXL. Объект также может зависеть от других файлов (скрипты, текстуры и др.), ссылки на которые приведены в основном файле.

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

Все примеры приведены в формате XML; для конвертирования из XML в BXL существует утилита bxd - на данный момент она реализована на Perl. Для конвертирования объекта, наберите команду

bxd filename.model.xml -f filename.model

где filename.model.xml - имя файла с XML описанием.

Простейший физический объект

Рассмотрим пример файла, описывающего куб размером 1x1x1:

<source lang="xml" line="1"> <model bxd="http://dao.deeptown.org/bxd/model.bxd">

   <material_script node="/media/materials/cube.material" />
   <body name="cube">
       <geometry>
           <geom type="box" width="1" height="1" depth="1" />
       </geometry>
       <surfaces>
           <mesh name="cube" node="/media/meshes/cube_small.mesh" />
       </surfaces>
   </body>

</model> </source>

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты