VRML
VRML ЯЗЫК МОДЕЛИРОВАНИЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ
  КРАТКАЯ ИСТОРИЯ VRML 
  ЕДИНИЦЫ ИЗМЕРЕНИЙ В VRML 
VRML КАК ЯЗЫК РАЗРАБОТКИ СЦЕН 
  CВЯЗЬ МЕЖДУ УЗЛАМИ И  ГРАФОМ СЦЕНЫ  VRML 
УЗЛЫ VRML 
ЗНАЧЕНИЯ ПОЛЕЙ УЗЛОВ VRML 
  ИМЕНА УЗЛОВ VRML 
ПОТОМКИ УЗЛА VRML 
СИНТАКСИС УЗЛОВ VRML 
КОММЕНТАРИИ VRML 
ОБЩИЙ СИНТАКСИС VRML
 
                               VRML
ЯЗЫК МОДЕЛИРОВАНИЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ

Язык моделирования виртуальной реальности (VRML) является языком моделирования , который поддерживает трехмерные образы и трехмерный текст.

Используя отдельный VRML-броузер или же вспомогательную программу просмотра VRML-документов, добавленную к обычному Web-броузеру, можно просматривать трехмерную сцену, называемую также "миром". VRML-сцена представляет собой просто совокупность трехмерных образов, которые можно видить с помощью VRML-6poyзepa. В рамках сцены, например такой, как образ дома, создатель сцены может позволить прогуливаться по дому, переходя из одной трехмерной комнаты в другую.
 
 
 
 
 
 
 
 

                  КРАТКАЯ ИСТОРИЯ

VRML

VRML был создан Марком Песе (Mark Pesce) и Энтони Паризи (Anthony Parisi), которым помогали Гавин Белл (Gavin Bell) и Брайен Белендорф (Brian Behlen-dorf). Марк и Тони встретились в декабре 1993 года. Работая вместе, они занимались созданием трехмерного интерфейса для Web. Они понимали, что VRML должен быть отличным от HTML, но они не хотели изобретать новый язык с самого начала. После изучения нескольких существующих технологий они рассмотрели ряд кандидатов на эту роль. Месячные обсуждения завершились выбором Open Inventor ASCII File Format компании Silicon Graphics, Inc. (SGI). Основная причина выбора Open Inventor заключалась в том, что его File Format поддерживает полное описание трехмерных сцен, в которых объектами служат закрашиваемые многоугольники. Open Inventor также поддерживает освещение, материалы и текстуры, а также эффекты, придающие изображению реалистичность. Таким образом, в основе VRML лежит подмножество языка Open Inventor File Format с добавлением сетевьхх расширений. К середине февраля 1994 года была создана программа, которая рисовала трехмерный банан и закрашивала его на их компьютере. Они назвали программу Лабиринт. Месяцем позже Марк был приглашен на первую международную конференцию World Wide Web в CERN в Женеве (Швейцария). После того как он сделал презентацию VRML, он и Бранен Белендорф встретились и создали Web- узел, который описывал цели VRML. Сообщество Web откликнулось на их инициативу. Тысячи заинтересованных людей посылали им сообщения электронной почтой. Так начиналась эра VRML. Официальная публикация VRML состоялась 3 апреля 1995 года, а версия 1.0 спецификации последовала в мае того же года. Спецификация 1.0 бьхла разработана Гавином Беллом, Энтони Паризи и Марком Песе. Те сцены, которые вы будете разрабатывать в этой главе, используя VRML, соответствуют спецификации версии 1.0. Самая последняя версия 2.0 VRML поддерживает анимацию в виртуальных мирах. Прежде чем переходить к версии 2.0, необходимо получить ясное представление о концепциях версии 1.0. Большинство документов VRML, которые вы встретите на Web, основаны на VRML 1.0. Тем не менее, благодаря преимуществам VRML 2.0, которые он предлагает разработчикам и программистам, вы в недалеком будущем встретите на Web много документов VRML 2.0.


 

               ЕДИНИЦЫ ИЗМЕРЕНИЙ В
                                   VRML
Перед тем как заниматься синтаксисом и структурой VRML, необходимо узнать единицы измерений, которые используются в VRML при описании расстояния и углов в трехмерном пространстве. Также необходимо знать координатную систему VRML , используемую для представления трехмерных образов. Стандартной единицей измерения в VRML служит метр. Для измерения углов используются радианы. В качестве координатной системы выбрана правокоординатная система, основанная на "правиле правой руки", которое знакомо из школьного курса физики. На мониторе начало координат находится в левом нижнем углу. Ось х расположена горизонтально и "смотрит" вправо. Ось у расположена вертикально и направлена вверх. Ось z расположена горизонтально, как и ось х, и направлена "в монитоп".
 
 
 
 
 
 
 

                               VRML

КАК ЯЗЫК РАЗРАБОТКИ СЦЕН

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

#VRML V1.0 ascii
 
    В пределах этой строки VRML игнорирует любые символы, которые стоят после слова ascii. Отрока должна'заканчиваться или символом новой строки, или символом перевода каретки. Утверждение, содержащееся в данной строке, информирует броузер о содержании документа. Когда броузер читает строку, он понимает, что данный файл представляет собой VRML-документ. VRML использует объекты, называемые узлами, для создания трехмерных сцен. VRML не следует типовой объекпююриентированной философии, в рамках которой объекты рассматриваются изолированно, отдельно друг от друга. Вместо этого VRML упорядочивает узлы иерархически, определяя их положение внутри VRML-документа. Иными словами, когда вы создаете узел VRML, его положение в рамках документа определяет порядок, в котором броузер будет закрашивать узел. Такая упорядоченность узлов позволяет лучше контрлировать процесс закраски объекты броузером.

            CВЯЗЬ МЕЖДУ УЗЛАМИ  

И  ГРАФОМ СЦЕНЫ
VRML
организует узлы в иерархическую структуру, называемую графом сцены (scene graph), которая определяет порядок закраски, прорисовки броузером узлов. Как вы узнаете далее, узел может наследовать характеристики ранее определенного узла. Другими словами, то, как броузер закрасил предыдущий узел, может влиять на закраску последующего узла. VRML использует узлы-сепараторы (Separator nodes), чтобы изолировать узлы и отменить свойства наследования. Узел-сепаратор, или узел-разделитель, позволяет дизайнеру сцены начинать с чистого листа при определении новых узлов (но^ вых форм в рамках VRML-образа). Использование узлов-сепараторов позволяет VRMLrnporpaMMe забыть о характеристиках предыдущих узлов.
 
 
 
 
 
 

                       УЗЛЫ VRML

Узел VRML представляет собой объект. Аналогично любой объект в сцене графа представляет собой узел, который описывает специфический тип объекта. Например, узел может быть Сферой (Sphere), Конусом (Cone), Цилшдрол (Cylinder) или Кубом (Cube). Эти типы узлов являются узлами простой геометрии (Simple Geometry Nodes). VRML также поддерживает другие типы узлов, такие как узлы Материала (Material) и Текстуры2 (Texture2), которые являются узлами свойств (Property nodes). Граф сцены VRML использует узлы свойств, чтобы определить материал поверхностя (Material node) для последовательности всех поверхностей. Аналогичным образом, используя узел свойств, граф сцены определяет текстуру (Texture2 node). Эта информация предназначена для броузера, который применяет ее ко всей последовательности изображаемых форм. Граф сцены VRML часто использует параметры, чтобы отличать один узел от другого, когда два узла имеют один и тот же тип, например, узел Сфера может иметь радиус, отличный от радиуса другого узла Сфера. Радиус узла Сфера является полем (field). Узел VRML может не иметь полей или иметь несколько полей , также можно присвоить ему имя.

MORE 
 
        ЗНАЧЕНИЯ ПОЛЕЙ УЗЛОВ
VRML
Если задать значение поля для узла, то должны присвоитъ имя этому полю, после которого должно следовать значение поля. Имя и значение поля разделяются пробелом или символом табуляции. Если необходимо обеспечить несколько значений для поля, можно разделить значения запятыми и заключить значения в квадратные скобки.
 
 
 
 
MORE 
 
 
 
 
 
                                                                ИМЕНА УЗЛОВ
VRML

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

                                                              ПОТОМКИ УЗЛА

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

                 СИНТАКСИС УЗЛОВ

VRML
Можно декларировать узел где угодно в рамках VRML-документа. Определение узла имеет следующий синтаксис:
 
[DEF object_name] object_type { [ fields ] [ children] }
 
     Факультативные, необязательные части определения заключены в квадратные скобки. Например, следующее утверждение декларирует узел Cube:
 
Cube { }
 
    ПоCube выравнивают в соответствии с координатными осями, определению узел центрируякоординат x-y-z (0,0,0). Узел Cube имеет также следующие куб в начале установкиразмер по каждой координате составляет две единицы - рт -1 по умолчанию: дотекущее координатное преобразование, текстуру и материал. +1, и каждая наследует Нижерассмотрим координаты, текстуры и материалы. Kогда объявить узел, можно присвоить ему имя и задать значения любых его полей. кода создается узел с именем SphereName - сфера, которая имеет радиус, равный 5:
 
DEF SphereName Sphere { 

radius 5 }

    В версии 1.0 спецификации VRML определены 36 узлов. Вы используете эти 36 узлов для разработки графа сцены VRML. В разделе "Зб узлов VRML 1.0" этой главы описаны все указанные узлы в деталях. Спецификация VRML 2.0 вводит дополнительные узлы, включая следующие:
Дополнительно спецификация VRML 2.0 заменяет некоторые существующие узлы, например узел AsciiText узлом, названным Text.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                    КОММЕНТАРИИ VRML
Символ "#" начинает комментарий. Броузер VRML будет игнорировать все знаки, которые следуют после знака "#". Если комментарии занимают больше одной строки, нужно ставить # в начале каждой из строк.
 
 
 
 
 
 
 
 
 
 
 

               ОБЩИЙ СИНТАКСИС VRML

Символы пробела, табуляции, новой строки и перевода каретки являются специальными символами. В УКМЬдокуменге можно использовать один или более таких символов для разделения частей текста, несущих синтаксическую нагрузку. Например, можно отделить имя поля узла от его значения, используя пробел или символ табуляции.