Программирование на языке VRML
Программирование на языке VRML (Virtual Reality Modeling Language) — это процесс создания программ, описывающих интерактивные трёхмерные объекты и виртуальные миры. VRML разработан для применения в сетях Internet и Intranet, но может использоваться и вне Сети.
Некоторые особенности языка:
Позволяет описать геометрические свойства объектов в трёхмерном пространстве, например, расположение и форму сложных поверхностей и многогранников.
Поддерживает анимацию и поведение объектов: они могут двигаться, менять форму и реагировать на действия пользователя.
Некоторые особенности синтаксиса языка VRML:
Определение объектов. Обязательные элементы — имя класса и фигурные скобки. В фигурных скобках указывается произвольное количество полей (параметров) объекта в форме <имя поля> <значение>. Например: Cone { height 4 bottomRadius 3 }.
Узлы. Иерархическая совокупность узлов образует граф сцен. Узлы могут иметь имя, тип (Cube, Sphere, Texture, Transformation и т. п.) и поля, задающие характеристики узла (радиус, шаблон, текстуры).
Иерархия узлов. Один родительский узел может содержать несколько потомков, расположенных на более низком уровне.
Система координат. В VRML используется прямоугольная, правосторонняя трёхмерная система координат. По умолчанию объекты проецируются на плоскость в положительном направлении оси Z, а для изменения направления используется камера или модельное преобразование.
-
VRML в примерах
Vrml-файл представляет собой обычный текстовый файл, интерпретируемый браузером. Поскольку большинство браузеров не имеет встроенных средств поддержки vrml, для просмотра Vrml-документов необходимо подключить вспомогательную программу - Vrml-браузер, например, Live3D
Единицы измерения
Заголовок VRML-файла
Примитивы VRML
Куб
Сфера
Конус
Цилиндр
Цвет и текстура
Изменение координат
Вращение
Масштабирование
Определение собственных объектов
Вместо заключения
-
VRML. Справка по языку
Используйте это при сборке виртуального мира из нескольких независимых компонент. Работает как директива #include - текст из файла по адресу url включается в текущий файл. Однако не забудьте, что во включаемом файле тоже должна присутствовать строка-идентификатор
VRML как посредник
VRML как язык описания объектов
Структура VRML представления
Структура VRML файла
Классы узлов (node types)
Объекты
Повторное использование
Поля
Список классов ("Node reference")
Задание геометрии
Расскраска
Классы геометрических объектов (Geometry)
Полигональные сетки
Преобразование системы координат.
Источники света
Гиперссылки
Иерархия
ПРИМЕР
-
Cпецификация VRML97
Изложение опирается на спецификацию VRML97 ( - это то, что Вам обязательно надо иметь под рукой!), личный опыт, разнообразные англоязычные tutorial'ы и другие источники.
Все, что мне попадалось в сети, касающееся VRML, я сливал на винт и накопил множество файлов. К сожалению, не на всех из них проставлено авторство, а я уже не помню, где что брал. Поэтому иногда я ссылаюсь не на оригиналы, затерявшиеся где-то в сети, а на копии, лежащие в виде файлов у меня. Чтобы отличать их от моих собственных документов, я сохранил исходный стиль. Если же Вы нашли свой файл здесь или уже видели такое в сети - просьба намылить, где именно лежат оригиналы!
Что касается англоязычных public domain документов (типа спецификации VRML97, разнообразных FAQ'ов и т.д.), то, возможно постепенно, как соберусь с силами, переведу на русский. Я, например, так и не нашел на русском спецификацию VRML97, а от этого документа пляшут создатели и редакторов, и броузеров!
Редакторы
Программы для создания 3D объектов и миров
Программы для проверки и оптимизации VRML кода
Программы для создания текстур
Программы для создания звука
Броузеры
Структура файла. Единицы измерения. Оси
Примитивы и управление положением объектов (Transform)
Box (паралеллепипед)
Sphere (сфера)
Cone (конус)
Cylinder (цилиндр)
Объекты, строящиеся по набору вершин
PointSet (набор точек)
IndexedLineSet (линии по набору точек)
IndexedFaceSet (грани по набору точек)
Extrusion (экструзия, выдавливание)
ElevationGrid (рельеф по набору точек)
Text, FontStyle (Текст, стиль шрифта)
Text (текст)
FontStyle (стиль шрифта)
Наложение текстур
ImageTexture (текстура-картинка)
MovieTexture (текстура-видеоролик)
PixelTexture (пиксельная текстура)
TextureTransform (трансформация текстур)
DirectionalLight (направленный параллельный свет)
PointLight (точечный источник)
SpotLight (направленный расходящийся свет)
Background (панорама)
NavigationInfo (характеристики аватара)
Viewpoint (точки обзора)
WorldInfo (информация о мире: название, автор и т.д.)
Общие замечания
Сенсоры
Anchor
Collision
ProximitySensor
TimeSensor
TouchSensor
VisibilitySensor
Dragging Sensors
PlaneSensor
CylinderSensor
SphereSensor
Маршруты
Интерполяторы
ColorInterpolator
NormalInterpolator
OrientationInterpolator