Язык vrml его описание и возможности реферат

Обновлено: 16.05.2024

"Интернет" - штуковина развивающаяся: вроде бы совсем недавно появилась "Мозаика", первую версию Netscape только прошлой зимой увидели, а вот, глядишь, уже и к виртуальной реальности подобрались. Причем к настоящей с трехмерной графикой, со звуком. Язык даже специальный создали - VRML, Virtual Reality Modeling Language, А вот как это начиналось. Весной 1994 года на первой всемирной конференции по World Wide Web, проводившейся в Женеве, Тим Бернес-Ли (Tim Berners-Lee) и Дэйв Рэггет (Dave Raggett) показали нечто, названное Birds-of-aFeather (BOF) , что достойно открыло дискуссию на тему интерфейса виртуальной реальности WWW. Надо сказать, зрителям эта демонстрация понравилась, было отмечено, что пора бы заняться виртуальной реальностью в "Интернете" вплотную. После окончания конференции был создан, скажем так, специальный сервер (хотя это и не совсем точно) , где велось обсуждение будущего стандарта. При разработке этого языка сразу было решено, что он не будет простым расширением HTML (Hyper Text Markup Language) , поскольку, по мнению разработчиков, HTML был создан для работы с текстом, а не с графикой. Кроме того, еще на стадии подготовки проекта было решено, что первая версия языка не будет поддерживать интерактивное поведение, так как это вызовет очень большую нагрузку на сеть.

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

Поначалу VRML, по аналогии с HTML, назывался Virtual Reality Markup Language. Слово Markup было заменено на Modeting значительно позже, для отражения графического характера VRML.

Пока VRML позволяет создавать виртуальные миры лишь с ограниченным интерактивным управлением. Они могут содержать объекты, которые, в свою очередь, могут заключать в себе гипертекстовые ссылки на другие миры, документы в формате HTML, а также любые объекты, представленные в стандарте MIME.

Этот язык дает возможность описания трехмерных сцен, создавая при этом гипертекстовые связи, - иначе говоря, это аналог HTML, но в трех измерениях. По мнению разработчиков, VRML постепенно придет на смену HTML.

Так что все-таки представляет из себя VRML. Говоря образно, VRML дает возможность объектам самим рисовать себя. Теоретически объекты могут включать в себя все, что угодно, - трехмерную и обычную графику, MID) -файлы, текст.

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

VRML - язык объектно-ориентированный, и в нем, как и в любом подобном языке, есть наследование объектов.

Сейчас активно обсуждается новая версия VRML, в которой больше внимания уделено интерактивности. В данный момент на рассмотрение выставлен формат, предложенный фирмой BE. Поэтому он так и называется - BEF (BE Format) . В основу разработки заложена интересная идея включить описание возможного поведения объектов непосредственно в данные. BEF является расширением, а не модификацией VRML 1.0, поэтому любой объект, описанный нa VRML I. 0, является допустимым, просто не имеющим поведенческой реакции. BEF поддерживает определение поведения различных объектов. С помощью этого языка можно моделировать поведение различных физических систем, определять взаимодействие с пользователем, а также многое другое.

Уже не раз высказывалось мнение, что основными двигателями в развитии компьютерной техники являются военные разработки и игры. Как обстоят дела с виртуальной реальностью в "Интернете" у военных я не знаю, а вот игры такие появились. Фирма World Inc. представила свою версию VRML - VRML+.

Отличие этого языка от ранее описанных заключается в том, что с его помощью создаются многопользовательские виртуальные миры. То есть теперь вы не просто перемещаетесь по виртуальному миру, но и общаетесь с другими людьми. Ныне существует несколько подобных игр, в одну из них, Worlds Chat, я даже поиграл. Кстати, когда я увидел эту "игрушку" в первый раз, она повергла меня, мягко говоря, в шок. Привык, что все интернетовские игры текстовые, ну, в лучшем случае, написаны на HTML, а тут - трехмерная графика, полная интерактивность: катаешь мышку по коврику - двигаешься по виртуальному миру. Потом, конечно понимаешь что это игра ничем принципиально не отличается от IRC - то же самое общение только вместо каналов - красивые комнаты. Но сделано - красиво!

Напоследок замечу, что для работы со веет опиcанными программами необходимо IP-соединение, или, выражаясь в новой терминологии "Релкома" - инфолинии.

Ошибка в тексте? Выдели её мышкой и нажми

Остались рефераты, курсовые, презентации? Поделись с нами - загрузи их здесь!

VRML - Virtual Reality Modeling Language (язык моделирования виртуальной реальности) уже довольно давно применяется в сети Интернет. Он признан Web- консорциумом для описания интерактивной трехмерной графики и мультимедийных приложений и стандартизирован (ISO/IEC 14772). VRML- документ представляет собой обычный текстовый файл, который содержит описания трехмерных фигур и свойств их поверхностей (цвет, текстура, освещение и т.п.).Такой документ поступает в браузер в виде исходного текста, точно так же, как и обычный HTML-документ. Браузер, получающий VRML-документ, должен уметь интерпретировать VRML-код.

Язык VRML был впервые предложили Марк Песк (Mark Pesce), Питер Кеннард (Piter Kennard) и Энтони Париси (Anthony S. Parisi) в мае 1994 г/ на Первой международной конференции по WWW, а его первая спецификация (VRML 1.0) была подготовлена на основе формата Open Inventor фирмы SGI (Silicon Graphics), и впервые представлена на Второй конференции WWW в октябре 1994 г.

Виртуальная реальность состоит из блоков VRML, которые называются мирами VRML. Спецификация языка представляет собой набор команд, называемых элементами (nodes) и предназначенных для создания простых объектов типа сферы, куба или цилиндра, а также объектов, состоящих из наборов вершин (vertices) и сторон (faces).

Язык VRML позволяет создавать более сложные объекты путем комбинации простых объектов. Это иерархический язык - порожденные или дочернии (child) объекты наследуют свойства родительских (parent) объектов. Для определения местоположения и отношений различных объектов между собой требуется указание их относительных размеров и координат VRML. В дополнение к этому язык позволяет определить освещение в вашем мире, а также предварительно установленные пейзажи.

Версия языка 1.0 была статичной. Изменялось лишь место расположения зрителя при его передвижении по виртуальному пространству. VRML 2.0 позволяет создавать динамические миры, благодаря значительному расширению егоинтерактивных возможностей. Стандарт VRML 2.0 поддерживает анимацию и звуковые эффекты; для него существует поддержка на уровне языков Java и JavaScript. VRML 2.0 был рассмотрен открытой дискуссионной группой и одобрен многими компаниями, а в августе 1996 года был принят его стандарт. В декабре 1997 года VRML 2.0 был официально заменен на VRML 97 (называемый также VRML Technical Symposium), который был впервые представлен в феврале 1997 года в Монтерее (Калифорния, США). Новый стандарт ISO/IEC 14772 практически идентичен спецификациям VRML 2.0 с учетом редакционных поправок и некоторых незначительных функциональных различий. Таким образом, текущим VRML- стандартом является VRML 97, а в работе находится новый формат - VRML 200х.

VRML-программу можно сделать оптимальной и более корректной, улучшив скорость отображения и время транспортировки. Добиться этого можно следующим путем: так как VRML-файлы текстовые, можно достичь высокой степени их сжатия утилитой упаковки данных. Например, wrl-файл размером 358 Кб может быть уменьшен до 69 Кб, т.е. сжат приблизительно в 5 раз. Крайне нежелательно, чтобы время, затрачиваемое на распаковку файла, составляло значительную долю в общей сумме временных затрат от начала транспортировки по сети до момента его отображения. Поэтому интересно сравнить время, затрачиваемое натранспортировку и распаковку виртуальных миров, со временем передачи по сети несжатого VRML-файла.


Виртуальная модель ИТМО (ТУ)

При моделирования целесообразно выполнять следующие рекомендации:

1. Не создавайте невидимые объекты (объекты внутри объектов);

2. Используйте примитивы, а не многоугольники, т.к. многие VRML-роузеры содержат алгоритмы, позволяющие отображать примитивы (конус, куб, цилиндр и сфера) намного быстрее, чем объект, состоящий из многоугольников. Экономия вычислительных ресурсов очевидна на примере примитива типа сфера, имеющего только один параметр - радиус. По сравнению с объемом информации, необходимой для создания сфероподобного многоугольника, выгода огромна.

3. Используйте как можно меньше многоугольников. Большинство экспертов по VRML при создании виртуального мира задействует не более 10000 многоугольников.

Технология виртуальной реальности VRML

VRML, Virtual Reality Modeling Language — язык моделирования виртуальной реальности, стандартный формат файлов для демонстрации трёхмерной интерактивной векторной графики, чаще всего используется в веб-технологиях.

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

Vrml-файл представляет собой обычный текстовый файл, интерпретируемый браузером. Поскольку большинство браузеров не имеет встроенных средств поддержки vrml, для просмотра Vrml-документов необходимо подключить вспомогательную программу - Vrml-браузер, например, Live3D или Cosmo Player.

Как и в случае с HTML, один и тот же vrml-документ может выглядеть по-разному в разных VRML-браузерах. Кроме того, многие разработчики VRML-браузеров добавляют нестандартные расширения VRML в свой браузер.

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

Формат VRML

VRML — это текстовый формат файлов, где, например, вершины и грани многогранников могут указываться вместе с цветом поверхности, текстурами, блеском, прозрачностью и так далее. URL могут быть связаны с графическими компонентами, таким образом, что веб-браузер может получать веб-страницу или новый VRML-файл из сети Интернет тогда, когда пользователь щёлкает по какому-либо графическому компоненту. Движение, звуки, освещение и другие аспекты виртуального мира могут появляться как реакция на действия пользователя или же на другие внешние события, например таймеры. Особый компонент Script Node позволяет добавлять программный код (например, Java или JavaScript (ECMAScript)) к VRML-файлу.

VRML-файлы обычно называются мирами и имеют расширение .wrl (например: island.wrl). Хотя VRML-миры используют текстовый формат они часто могут быть сжаты с использованием алгоритма компрессии gzip для того, чтобы их можно было передавать по сети за меньшее время. Большинство программ трёхмерного моделирования могут сохранять объекты и сцены в формате VRML.

Стандарты VRML

Для дальнейшей коллективной разработки формата был создан консорциум Web3D.

Первая версия VRML была выпущена в ноябре 1994 года. Эта версия была основана на API и файловом формате программной компоненты Open Inventor, изначально разработанной в SGI. Текущая и функционально завершенная версия — VRML97 (ISO/IEC 14772-1:1997). Сейчас VRML вытесняется форматом X3D (ISO/IEC 19775-1).

Появление, популярность и упадок

Понятие VRML было введено Дэйвом Раджеттом (Dave Raggett) в документе представленом на Первой Международной Конференции по Всемирной Паутине (1994 год) и впервые обсуждалось на WWW94 VRML BOF, учреждённой Тимом Бернерсом-Ли где Марк Песке (Mark Pesce) представил демо-программу Labirinth (“Лабиринт”), разработанную им совместно с Тони Паризи (Tony Parisi) и Питером Кеннардом (Peter Kennard).

VRML достиг вершины популярности после выхода VRML 2.0 в 1997 году, когда он стал использоваться на некоторых персональных страницах и сайтах, в основном для 3D-чатов. Формат поддерживался SGI Cosmo Software (основной костяк программистов этого подразделения находился в Москве и сейчас это компания Parallel Graphics). Когда в 1998 году SGI была реструктурирована это подразделение было продано Platinum Technologies, которое было затем куплено Computer Associates. Последняя не стала развивать и распространять программы для VRML. Пустота была заполнена различными недолговечными коммерческими 3D-web форматами, появившимися за последние несколько лет, включая Microsoft Chrome, Adobe Atmosphere и Shockwave 3D, ни один из этих форматов не поддерживается сегодня. Возможности VRML оставались прежними, тогда как возможности трёхмерной компьютерной графики, работающей в реальном времени росли. VRML Consortium сменил своё название на Web3D Consortium и начал работать над потомком VRML — X3D.

Хотя VRML ещё продолжает использоваться в некоторых областях, особенно в образовательной и исследовательской сфере, где наиболее ценятся открытые спецификации, можно сказать, что он вытеснен форматом X3D. MPEG-4 Interactive Profile (ISO/IEC 14496) был основан на VRML (теперь на X3D) и X3D, по большей части, обратно-совместим с ним. VRML также продолжает использоваться в качестве файлового формата для обмена 3D-моделями, особенно в САПР.

Альтернативы

3DMLW — Язык 3D-разметки для веб (англ. 3D Markup Language for Web)

COLLADA — управляется Khronos Group

O3D — разработан Google

U3D — стандарт Ecma International ECMA-363

Единицы измерения

  • Расстояние и размер: метры
  • Углы: радианы
  • Остальные значения: выражаются, как часть от 1.
  • Координаты берутся в трехмерной декартовой системе координат (см. рис.)

Заголовок VRML-файла

Как уже говорилось, Vrml-документ представляет собой обычный тестовый файл.

Для того, чтобы VRML-браузер распознал файл с VRML-кодом, в начале файла ставится специальный заголовок - file header:

Такой заголовок обязательно должен находиться в первой строке файла, кроме того, перед знаком диеза не должно быть пробелов.

Примитивы VRML

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

Эти фигуры называются примитивами (primitives). Набор примитивов невелик, однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Рассмотрим поподробней каждый из примитивов.

Возможные параметры: width - ширина, height - высота, depth - глубина. текст визуальной VRML-модели

Сфера

Параметр у сферы только один, это radius. текст визуальной VRML-модели

Конус

Возможные параметры: bottomRadius - радиус основания, height - высота, parts - определяет, какие части конуса будут видны. Параметр parts может принимать значения ALL, SIDES или BOTTOM. текст визуальной VRML-модели

Цилиндр

Для цилиндра можно задать параметры radius и height. Кроме того, с помощью параметра parts для цилиндра можно определить будут ли отображаться основания цилиндра и его боковая поверхность. Параметр parts может принимать значения ALL, SIDES, BOTTOM или TOP. текст визуальной VRML-модели

Цвет и текстура

Цвет фигуры, определяется с помощью объекта Material.

Параметры ambientColor, diffuseColor, specularColor и emissiveColor управляют цветами и указываются в палитре RGB (красный, зеленый и голубой), причем первая цифра определяет интенсивность красного цвета, вторая - зеленого, а третья - синего.

Параметр transparency может принимать значения от 0 до1 и определяет степень прозрачности, причем максимальная прозрачность достигается при transparency равном единице. В приведенном примере описано два цилиндра разных размеров, меньший из которых просвечивает сквозь другой.

Для имитирования различных поверхностей в VRML существует объект Texture2.

В качестве текстуры легче всего использовать обычный графический файл, например, в GIF-формате. В таком случае для "натягивания" текстуры на трехмерное изображение нужно только указать путь к файлу в параметре filename объекта Texture2.

Параметры wrapS и wrapT могут принимать значения REPEAT или CLAMP, и управляют натягиванием текстуры по соответственно горизонтальной и вертикальной осям.

Положение объектов в пространстве

Изменение координат

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

Узел Translation определяет координаты объекта:

Вообще говоря, координаты указываемые в Translation не являются абсолютными. Фактически это координаты относительно предыдущего узла Translation. Чтобы прояснить это вопрос, рассмотрим пример:

Как видите, третий кубик вовсе не совпадает с первым, хотя в в узле Translation указаны те же координаты.

В VRML 1.0 принято следующее правило: узлы, модифицирующие свойства фигур (Translation, Material и т.п.), действуют на все далее описанные фигуры.

Чтобы ограничить область действия модифицирующих узлов, фигуры необходимо сгруппировать с помощью узла Separator.

Узел Separator работает как контейнер, он может содержать любые другие узлы, и основным его предназначением является именно ограничение области действия узлов типа Translation и Material.

Сравните следующий пример с предыдущим:

Хотя в примере описано три кубика, мы видим только два, так как второй и третий совпадают.

Вообще говоря рекомендуется всегда и везде использовать узел Separator. Он не только избавит от ошибок, связанных с относительностью координат, но и сделает VRML-код более простым и понятным.

Вращение

Для вращения фигур вокруг осей координат применяется узел Rotation.

Первые три цифры определяет будет ли осуществлен поворот вокруг соответственно осей x, y и z, а четвертая задает угол вращения в радианах. В приведенном выше листинге поворот осуществляется вокруг оси y на 90 градусов.

Составим букву T из двух цилиндров. По умолчанию цилиндр ориентирован вертикально (см. рисунок). Поэтому для успешного выполнения задачи повернем его вокруг оси z на 90 градусов.

Масштабирование

Узел Scale масштабирует фигуры по одному или нескольким измерениям. Три цифры, стоящие после параметра scaleFactor определяют коэффициенты масштабирования относительно осей x,y и z.

В следующем примере, узел Scale сжимает сферу по оси x, и из сферы получается эллипсоид.

Определение собственных объектов

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

Объект описывается одним из способов:

Для того, чтобы вставить в VRML-файл ранее определенную фигуру, используется команда USE

Создадим VRML-файл, описывающий стул, при этом ножку стула опишем как объект LEG:

Как видите, нам не понадобилось описывать каждую ножку в отдельности - в результате объем VRML-кода стал меньше, а сам код более читабельным.

Еще один способ уменьшить размер VRML-файла - вставлять фигуры из другого файла.

Это позволяет делать узел WWWInline:

Параметр name - это путь к файлу, параметры bboxSize и bboxCenter не обязательны и показывают пользователю размеры и положение вставляемого объекта, пока объект подгружается.

Вместо заключения

  1. Все описания узлов и параметров в VRML регистрозависимы. Если Вы используете буквы неправильного регистра - то VRML-браузер просто проигнорирует такое описание.
  2. В VRML имеет огромное значение порядок описания узлов. Так к примеру, описание

дают совершенно разный результат.

Ссылки

Определитель VRML плагинов и браузеров - показывает какие плагины у вас установлены

Cortona 3D - фирма, разрабатывающая ПО для VRML

Знаете ли Вы, что в 1965 году два американца Пензиас (эмигрант из Германии) и Вильсон заявили, что они открыли излучение космоса. Через несколько лет им дали Нобелевскую премию, как-будто никто не знал работ Э. Регенера, измерившего температуру космического пространства с помощью запуска болометра в стратосферу в 1933 г.? Подробнее читайте в FAQ по эфирной физике.

  • model/vrml
  • x-world/x-vrml
  • application/x-cc3d

VRML (англ. Virtual Realit Modeling Language ) - язык моделирования виртуальной реальности) - стандартный формат файлов для демонстрации трёхмерной интерактивной векторной графики, чаще всего используется в веб-технологиях. VRML предназначен для описания трехмерных изображений и оперирует объектами, описывающими геометрические фигуры и их расположение в пространстве. VRML дает разработчику возможность не только проектировать статические и динамические 3D модели, он также позволяет включать и обрабатывать в этих моделях гиперссылки на звуковые, видео, html-файлы и другие VRML объекты. Поскольку большинство браузеров не имеет встроенных средств поддержки VRML, для просмотра vrml-документов необходимо подключить вспомогательную программу – vrml-браузер. Первая версия VRML была выпущена в ноябре 1994 года. Эта версия была основана на API и файловом формате программной компоненты Open Inventor, изначально разработанной в SGI. Текущая и функционально завершенная версия — VRML97 (ISO/IEC 14772-1:1997). Сейчас VRML вытесняется форматом X3D (ISO/IEC 19775-1).

Содержание

История создания и развития VRML

Компания SGI возобновила свой интерес к VRML, купив ParaGraph International и выпустив программные продукты Cosmo Player и Cosmo World Builder. Однако менее чем через год фирма перестала поддерживать этот стандарт. Когда SGI сложила с себя бразды правления, спецификация поплыла в неопределенном направлении. Пытаясь омолодить спецификацию, VRML Consortium был переименован в Web3D Consortium. Затем Web3D Consortium объявил о слиянии с World Wide Web Consortium (W3C). Тем самым они надеялись интегрировать VRML с другими сетевыми стандартами, такими как XHTML, XML, SVG, DOM, и SMIL. Очередной удар VRML получил в начале 1999 года, когда фирма Platinum Technologies — один из ранних разработчиков VRML браузеров, отказалась от поддержки, в качестве последнего жеста доброй воли, объявила об открытии своих технологий для open source community. Имелась надежда, что превращение VRML в открытый проект (как это было в самом начале), возобновит интерес к VRML тысяч новых независимых разработчиков. Но прежде чем Platinum успела опубликовать свои коды, она была куплена компанией Computer Associates, и исходники так и не были открыты. Чем можно объяснить, что этот стандарт перестал развиваться? Основной причиной являлось преждевременность его появления. В настоящее время появляется много новых 3D технологий. Некоторые из этих новых технологий лучше, быстрее, чем их vrml-предшественники. Некоторые из новых продуктов проще в использовании, некоторые включают новые интересные возможности. Однако в основе большинства из них лежит VRML 2.0. MPEG-4 Interactive Profile (ISO/IEC 14496) был основан на VRML (теперь на X3D) и X3D, по большей части, обратно-совместим с ним. VRML также продолжает использоваться в качестве файлового формата для обмена 3D-моделями, особенно в САПР. Хотя VRML ещё продолжает использоваться в некоторых областях, особенно в образовательной и исследовательской сфере, где наиболее ценятся открытые спецификации, можно сказать, что он вытеснен форматом X3D X3D — это стандарт ISO, предназначенный для работы с трёхмерной графикой в реальном времени. X3D — это наследник VRML. X3D является расширением VRML. В X3D возможно кодировать сцену используя синтаксис XML, равно как и Open Inventor - подобный синтаксис VRML97, а также расширенный интерфейс прикладного программирования (API).

Язык VRML (Virtual Reality Modeling Language) предназначен для описания интерактивных 3D объектов и миров. Он был разработан для применения в сетях INTERNET и INTRANET. На сегодняшний день этот язык является сетевым стандартом и поддерживается ведущими мировыми производителями программного обеспечения.

VRML дает разработчику возможность создавать статические и динамические 3D модели а также позволяет включать и обрабатывать в моделях гиперссылки на звуковые, видео, html файлы, другие VRML объекты.

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

2. Что необходимо для работы с VRML

Для описания простых VRML объектов подходит любой текстовый редактор, имеющий возможность сохранять файлы в обычном текстовом формате. Описание VRML-объектов (мира) хранится в текстовом файле с расширением wrl.

3. Структура VRML файла

В общем виде, простейшая VRML-программа состоит из следующих частей:

Эта строка является первой для любого файла, содержащего описание VRML объектов. Строка является обязательной и не содержит отступы.

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

4. Примитивы (Формы)

Формами в VRML называют объекты, из которых строятся VRML миры, т.е. формы являются основными строительными блоками ( компонентами ) VRML миров. Примитивные формы - это стандартные примитивные трехмерные объекты. К ним относятся Параллелепипед, Сфера, Цилиндр, Конус. Однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Формы описываются с помощью узла - Shape, который объединяет геометрические свойства объектов ( форму,структуру ) и свойства, определяющие внешний вид этих объектов ( цвет, текстуру поверхности и т.д. . Геометрические свойства описываются с помощью поля geometry. Свойства, определяющие внешний вид описываются с помощью поля appearance.

Значением поля geometry являются геометрические узлы , т.е. узлы ,определяющие форму и структуру объектов .

Стандартные примитивные геометрические узлы следующие:

В полях примитивных геометрических узлов указываются их размеры.

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

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

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

Пример узла Group:

Простая примитивная форма:

5. Трансформация форм

В VRML мирах система координат трехмерная и имеет следующую ориентацию:

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

Определение узла Transform:

Поле children определяет список форм, которые будут строиться в новой системе координат. Поле translation определяет сдвиг системы координат относительно родительской системы координат. Сдвиг происходит по осям X,Y и Z.

Поле rotation определяет ориентацию системы координат, т.е. поворот системы координат вокруг оси вращения на заданный угол. Угол измеряется в радианах.

Ось вращения определяет вектор вокруг которого осуществляется поворот. Обычно поворот осуществляется вокруг осей X,Y или Z:

Поле scale определяет увеличение или уменьшение размерности системы координат на коэффициент масштабирования по осям X,Y и Z.

Поворот, сдвиг и масштабирование системы координат:

6. Внешний вид форм - цвет

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

Вспомним, что узел Shape описывает:

Значением поля appereance является узел Appereance, который описывает визуальные свойства форм (material, texture) через описание материала и текстуры форм.

Значения полей могут быть не определены, но если какое-либо поле определено, то его значением должен быть узел определенного типа. Поле material описывает свойства материала поверхности форм. Значением поля является узел Material:

Поля узла Material описывают:

Цвет в VRML задается с помощью трех составляющих:

Любой цвет можно задать путем смешения этих составляющих в определенных пропорциях. Значения каждой составляющей лежат в диапазоне от 0.0 до 1.0 . Например:

Цвет Красный Синий Зеленый Белый 1.0 1.0 1.0 Желтый 1.0 1.0 0.0 Черный 0.0 0.0 0.0 Коричневый 0.5 0.2 0.0

Построим шар зеленого цвета, с центром, находящимся в точке пространства с координатами (1,1,1). Радиус шара равен 3. Для этого откроим блокнот и напишем следующий код:

ИЛИ

Сохраним полученный файл с расширением *.wrl.

Откроем полученный файл в браузере и посмотрим что получилось.

Самостоятельно создайте такие примитивы как Параллелепипед, Конус и Цилиндр различных цветов.

Попробуем создать более сложный объемный объект. Поскольку данные строки пишутся в канун Нового года, тема нашлась сразу — это снеговик. Симпатичный и вместе с тем простой с геометрической точки зрения объект.

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

Нетрудно видеть, что снеговик состоит из 5 сфер. В соответствии с этим в листинге 5 из 8 фрагментов очень похожи. Мы рассмотрим только один из них; поскольку первая (нижняя) сфера не является типичной (она имеет центр в начале координат и единичный радиус — см. рисунок), мы обратимся ко второй. Ее описание легко найти в тексте по комментарию middle.

Фрагмент, описывающий “средний” ком снеговика, начинается с узла типа Transform. Его назначение состоит в задании геометрических характеристик изображения объекта-потомка, в частности, наиболее часто используется его поле translation. В нашем случае это поле содержит тройку чисел 0 1.7 0, что является набором координат для центра рассматриваемой сферы. Таким способом обеспечивается позиционирование нашей сферы в виртуальном пространстве.

К описанному выше узлу через поле children подсоединяется стандартный узел типа Shape, описывающий уже знакомым нам образом сферу. Отметим только, что, кроме диффузного белого цвета снеговика, мы добавили ему еще некоторую “подсветку изнутри” с помощью поля emissiveColor. Желающие могут проверить, насколько хуже будет выглядеть снеговик без этой в общем-то не очень логичной меры.

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

Гораздо больший интерес представляют конический красный (VRML-цвет 1 0 0) нос, имитирующий традиционную морковку, и цилиндрические глаза.

С аналогичным поворотом строятся и оба цилиндрических глаза черного (0.1 0.1 0.1) цвета.

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

Читайте также: