Что такое vrml файл

Обновлено: 07.07.2024

Программы, которые поддерживают VRML расширение файла

В следующем списке перечислены программы, совместимые с файлами VRML, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с расширением VRML, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.

Программы, обслуживающие файл VRML

Как открыть файл VRML?

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

Шаг 1. Получить FreeWRL

Шаг 2. Проверьте версию FreeWRL и обновите при необходимости

Update software that support file extension VRML

Вы по-прежнему не можете получить доступ к файлам VRML, хотя FreeWRL установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия FreeWRL, она может не поддерживать формат VRML. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью FreeWRL.

Шаг 3. Настройте приложение по умолчанию для открытия VRML файлов на FreeWRL

Если у вас установлена последняя версия FreeWRL и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления VRML на вашем устройстве. Метод довольно прост и мало меняется в разных операционных системах.

Associate software with VRML file on Windows

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле VRML и выберите « Открыть с помощью опцией».
  • Выберите Выбрать другое приложение → Еще приложения
  • Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен FreeWRL, установите флажок Всегда использовать это приложение для открытия VRML файлы свой выбор, нажав кнопку ОК

Изменить приложение по умолчанию в Mac OS

Шаг 4. Проверьте VRML на наличие ошибок

Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным VRML файлом. Проблемы с открытием файла могут возникнуть по разным причинам.

Check VRML file for viruses

1. Проверьте VRML файл на наличие вирусов или вредоносных программ.

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

2. Убедитесь, что структура файла VRML не повреждена
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

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

4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия FreeWRL

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

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

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

Технология виртуальной реальности 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

Знаете ли Вы, в чем фокус эксперимента Майкельсона? Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.

Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.

В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.

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

VRML ( язык моделирования виртуальной реальности , произносится как vermal или по его инициалам, первоначально - до 1995 года - известный как язык разметки виртуальной реальности) - это стандартный формат файла для представления трехмерной (3D) интерактивной векторной графики , разработанный специально для World Wide Имеется в виду Интернет. Он был заменен X3D .

СОДЕРЖАНИЕ

Формат файла WRL

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

Файлы VRML обычно называют «мирами» и имеют расширение .wrl (например, island.wrl). Файлы VRML представляют собой обычный текст и обычно хорошо сжимаются с помощью gzip , что полезно для более быстрой передачи через Интернет (некоторые файлы, сжатые с помощью gzip , используют расширение .wrz ). Многие программы 3D-моделирования могут сохранять объекты и сцены в формате VRML.

Стандартизация

Консорциум Web3D был сформирован для дальнейшего коллективного развития формата. VRML (и его преемник X3D ) были приняты в качестве международных стандартов Международной организацией по стандартизации (ISO).

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

Появление, популярность и конкурентное техническое обновление

Термин VRML был введен Дэйвом Раггеттом в статье под названием «Расширение WWW для поддержки независимой от платформы виртуальной реальности», представленной на Первой всемирной веб-конференции в 1994 году и впервые обсужденной на WWW94 VRML BOF, учрежденной Тимом Бернерс-Ли , где Марк Пеше представил демоверсию Labyrinth, которую он разработал вместе с Тони Паризи и Питером Кеннардом . VRML был представлен более широкой аудитории в курсе SIGGRAPH , VRML: использование 3D для просмотра веб-страниц в августе 1995 года. В октябре 1995 года в Internet World компания Template Graphics Software (TGS) продемонстрировала плагин 3D / VRML для бета-версии. Netscape 2.0 от Netscape Communications.

В 1997 году была завершена новая версия формата VRML97 (также известная как VRML2 или VRML 2.0), которая стала стандартом ISO . VRML97 использовался в Интернете на некоторых личных страницах и сайтах, таких как « CyberTown », который предлагал трехмерный чат с использованием программного обеспечения Blaxxun, а также программу Sony SAPARi , которая была предустановлена ​​на компьютерах Vaio с 1997 по 2001 год. компанией SGI Cosmo Software; когда SGI реструктурировала в 1998 году, подразделение было продано VREAM Division of Platinum Technology , которая затем была передана Computer Associates , которая не занималась разработкой и распространением программного обеспечения. Чтобы заполнить пустоту, в течение следующих нескольких лет появилось множество проприетарных форматов Web 3D, включая Microsoft Chrome и Adobe Atmosphere , ни один из которых сегодня не поддерживается. Возможности VRML остались в основном теми же, в то время как 3D-графика в реальном времени продолжала улучшаться. Консорциум VRML изменил свое название на Консорциум Web3D и начал работу над преемником VRML - X3D .

У SGI был веб-сайт vrml.sgi.com, на котором была размещена серия регулярных коротких выступлений персонажа по имени "Floops", который был персонажем VRML в мире VRML. Floops был продуктом компании под названием «Protozoa».

H-Anim - это стандарт анимированных гуманоидов, основанный на VRML, а затем на X3D. Первую версию 1.0 стандарта H-Anim планировалось представить в конце марта 1998 года.

VRML никогда не видел широкого распространения. Одной из причин этого могло быть отсутствие доступной полосы пропускания . Во времена популярности VRML большинство пользователей, как деловых, так и личных, использовали медленный коммутируемый доступ в Интернет .

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

Бесплатная кроссплатформенная реализация VRML доступна в OpenVRML . Его библиотеки можно использовать для добавления в приложения поддержки как VRML, так и X3D, а для визуализации миров VRML / X3D в веб-браузерах доступен плагин GTK +.

В 2000-х годах многие компании, такие как Bitmanagement, повысили уровень качества виртуальных эффектов в VRML до уровня качества DirectX 9.0c, но за счет использования проприетарных решений. Все основные функции, такие как моделирование игры, уже завершены. Они включают многопроходный рендеринг с настройкой низкого уровня для Z-буфера, BlendOp, AlphaOp, Stencil, Multi-texture, Shader с поддержкой HLSL и GLSL, Render To Texture в реальном времени, Multi Render Target (MRT) и PostProcessing. Многие демонстрации показывают, что VRML уже поддерживает карту освещения, карту нормалей, SSAO, CSM и отражение среды в реальном времени вместе с другими виртуальными эффектами.

Язык 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) позволяет перемещать, вращать и масштабировать формы в VRML мире.

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

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

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

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

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

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

Поворот осуществляется по правилу «правой руки».

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

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

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

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

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

геометрию формы (поле geometry) - форму или структуру

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

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

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

diffuseColor - цвет отраженного света emissiveColor - цвет излучаемого света

Цвет в 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) цвета.

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

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