Технология indoor/outdoor

Использование indoor/outdoor решает следующие задачи:

  1. Правильный расчет темноты в недоступных для солнца объектах.
  2. Экономия ресурсов. Outdoor уровень один, а вот indoor-уровней может быть много и загружаются они выборочно. Зависит от того, куда смотрит камера игрока.
  3. Определение владельцев помещений, Wld_AssignRoomToGuild()

Чтобы построить свой первый indoor уровень, можно руководствоваться тутором Level tutorial (часть 2, портал) на английском.

Разумеется, нужно обладать базовым уровнем подготовки в 3ds max.

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

На следующем рисунке условно показан вид сверху:

Здесь композиция уровня состоит из outdoor – открытой местности и двух indoor – комнат, связанных между собой. Деление пока что мысленное и произведено по ребрам (edge), которые находятся в данном случае в дверных проемах. Получилось, что геометрия indoor уровня room1 (красный) имеет смежные ребра с геометрией indoor уровня room2 (фиолетовый) и с outdoor (черный). Аналогично для геометрии indoor уровня room2. Любые другие пересечения между полигонами уровней отсутствуют.

На следующем рисунке зеленым показана геометрия порталов, которые “встроены” в эти смежные ребра уровней. Геометрия портала состоит из двухсторонних полигонов, которые блокируют любое проникновение из одного уровня в другой. В игре эти полигоны видимы только издалека, вблизи они прозрачны, и можно свободно проходить сквозь них. На рисунке стрелочками показано направление нормалей. Если наблюдатель смотрит из outdoor в indoor room1, то обращенным на него полигонам портала присваивается имя материала P:_room1. Если смотрит наоборот из комнаты на улицу, то материал P:room1_.

Общий вид имени материала: P:<откуда>_<куда>.

Для outdoor опции <откуда> и <куда> не записываются.

Второй важной особенностью indoor уровня является геометрическое строение. Дело в том, что движок при расчете indoor-уровня двигается от смежных ребер к внутренним и тем самым определяет все внутренние полигоны. Теперь если представить, что геометрия внутреннего уровня состоит из произвольных непересекающихся по ребрам объектов – indoor-уровень просто не будет корректно вычислен.

Создание лесов с помощью порталов сложнее. Однако только так можно добиться по настоящему темных лесов и сэкономить ресурсы.

На следующем рисунке показан пример подобного леса, вид сбоку. Здесь ничего не противоречит изложенным правилам построения indoor/outdoor уровней.

Разумеется, нельзя забывать о размещении растительности как виртуальных объектов. См. Стратегия построения зен-файлов.

И последнее. Портал на последнем рисунке изображен как прямоугольный колпак не случайно. Работать все будет и при произвольной геометрии портала, однако при определенных положениях камеры некоторые фрагменты мира могут пропадать. Поэтому геометрия порталов всегда должна быть максимально простой, а его полигоны лучше делать вертикальными (+горизонтальными в лесах).

Автор

Автор статьи - WSA.

/var/www/wogru_main/data/www/mod.worldofgothic.ru/data/pages/3d/indoor-outdoor.txt · Последние изменения: 09-01-2009 08:14 (внешнее изменение)

Проект портала World of Gothic RU. © 2005-2009 marazmus, MaGoth и команда World of Gothic RU.
Копирование материалов сайта разрешено только при явном согласии авторов материалов.
При копировании материалов прямая ссылка на сайт обязательна.

Rambler's Top100 Рейтинг Ролевых Ресурсов