InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Для примера я покажу как создавать два типа вспомогательных объектов - NavInfo и TouchSensor.

NavInfo

Этот объект сообщает браузеру следующую информацию:

  • какой тип навигации разрешить
  • возможно ли пользователю включить "headlight"
  • как далеко пользователь может видеть
  • как быстро может передвигаться пользователь
  • размер пользователя в виртуальном мире (например - используется для расчета столкновений)
  • как близко может подойти пользователь к предмету не столкнувшись с ним
  • высота пользователя над уровнем ландшафта
  • как высоко может подняться пользователь
  • размер вспомогательного объекта NavInfo во вьюпорте Max (не влияет на окончательный размер файла)

На скриншоте показано положение NavInfo во вьюпорте Max, с права находятся необходимые параметры.

Так как на скриншоте плохо видно значения параметров - привожу их подробную расшифровку:

The navigation type - "FLY".
The "headlight" - не отмечен.
The Visibility Limit - 1000.
Speed - 3.0.

Avatar Size:
Collision: 0.25
Terrain: 1.6
Step Height: 0.75

Icon Size is 144.605

Значения этих параметров приводятся ниже.

Значения параметров


-- TYPE --

Этот параметр назначает способ, которым пользователь (avatar) перемещается по миру - WALK, EXAMINE, FLY, NONE. NavInfo не позволяет присваивать несколько значений этому параметру, но существует возможность отредактировать полученный файл вручную и добавить дополнительный способы передвижения – пример приводится ниже:

DEF NavInfo01 NavigationInfo {

avatarSize [0.25, 1.6, 0.75]
headlight FALSE
speed 3
type "EXAMINE, FLY, WALK"
}

-- HEADLIGHT --

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

Согласно спецификации VRML 97, параметр Headlight должен определять – разрешено или нет пользователю включать этот источник освещения, в реальности же, в Cosmo Player 2.1.1. он просто указывает, включен ли этот источник сразу, и даже при отключенном параметре пользователь может при желании включить HEADLIGHT.

-- VISIBILITY LIMIT –-

Этот параметр назначает расстояние, при котором объекты становятся видимыми пользователю. Если он выставлен на 0, пользователь сможет видеть всю сцену сразу.

-- SPEED –-

Стандартная скорость перемещения равна 1, но удобнее пользоваться большими значениями – поэкспериментировать со значениями от 3 до 5.

-- AVATAR SIZE –-

Этот параметр используется в основном для расчета столкновений (collision).

-- COLLISION –-

Минимальное расстояние, на которое пользователь может приблизиться к объекту не столкнувшись с ним.

-- TERRAIN –-

Высота пользователя над поверхностью.

-– STEP HEIGHT –-

Максимальная высота объекта, через который пользователь может переступить не столкнувшись с ним.

TouchSensor

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

Здесь можно посмотреть тестовую сцену (архив - здесь), созданную с использованием вспомогательного объекта TouchSensor.

Экспорт в VRML


Вовремя экспорта в VRML у вас появляется возможность сконфигурировать некоторые важные параметры, показанные на рисунке.

  • Normals – генерирует нормали, увеличивая размер файла. Выбирайте этот параметр если в вашей сцене используются smoothing groups
  • Indentation – делает код файла более читабельным
  • Primitives - экспортирует собственные VRML-примитивы вместо примитивов Max – уменьшает размер файла
  • Color Per Vertex – экспортирует цвет вершин для геометрии. Если вы выбираете этот параметр, вам необходимо будет выбрать источник – Vertex Color Source – использовать ли настройки Max, основанные на освещении и материалах.
  • Coordinate Interpolators – включает возможность экспорта анимации, основанной на координатной интерполяции (описание этого типа анимации приведено выше). Если вы помечаете этот параметр, экспортер предупредит вас о возможной несовместимости типов анимации
  • Export Hidden Objects – позволяет экспортировать спрятанные объекты, делая их видимыми в VRML
  • Flip-Book – экспортирует сцену в несколько файлов с различным sample rate

  • Polygons Type – определяет, каким образом геометрические грани будут описываться в VRML файле. По умолчанию установлен "triangles" – создает треугольные грани, "quads" – создает четырехугольные грани где возможно, если такой возможности нет – пользуется треугольными. "Ngons" – создает максимально возможное число граней. "Visible edges" – разрывает грани на видимых углах.
  • Initial View – выдает список всех камер и вьюпортов сцены и позволяет выбрать начальный вид
  • Initial Navigation Info – выбирает объект NavInfo, который будет загружаться со сценой
  • Initial Background – выбор одноименного вспомогательного объекта для загрузки со сценой
  • Initial Fog - выбор одноименного вспомогательного объекта для загрузки со сценой
  • Digits of Precision – генерация глубины изображения – по умолчанию 4, уменьшение числа уменьшает размер файла, но более высокое значение может потребоваться если какие-либо предметы находятся более чем в 100.000 юнитов от центра
  • Show Progress Bar – визуализирует процесс создания VRML файла
  • Bitmap URL prefix – указывает на адрес расположения текстурных карт использованных в сцене
  • Samples Rate – влияет на количество ключей анимации – понижение значения уменьшает размер файла
  • World Info – некоторые браузеры позволяют показывать информацию о сцене (рисунок ниже)

Вот собственно и все. Думаю с помощью этого урока создание миров VRML станет для вас простым делом.

[Назад]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua