VRML ( язык моделирования виртуальной реальности , произносится как «вермал» или по его инициалам, изначально — до 1995 года — известный как язык разметки виртуальной реальности) — стандартный формат файла для представления трехмерной (3D) интерактивной векторной графики , разработанный специально для Всемирной паутины . Он был заменен на X3D . [1]
VRML — это текстовый формат файла , в котором, например, вершины и ребра для 3D- полигона могут быть указаны вместе с цветом поверхности, текстурами UV-карты , блеском , прозрачностью и т. д. [2] [3] URL-адреса могут быть связаны с графическими компонентами, так что веб-браузер может извлечь веб-страницу или новый файл VRML из Интернета , когда пользователь щелкает по определенному графическому компоненту. Анимации , звуки , освещение и другие аспекты виртуального мира могут взаимодействовать с пользователем или могут быть вызваны внешними событиями, такими как таймеры . Специальный узел скрипта позволяет добавлять программный код (например, написанный на Java или ECMAScript ) в файл VRML.
Файлы VRML обычно называются «мирами» и имеют расширение .wrl (например, island.wrl). Файлы VRML представляют собой обычный текст и обычно хорошо сжимаются с помощью gzip , что полезно для более быстрой передачи через Интернет (некоторые сжатые gzip файлы используют расширение .wrz ). Многие программы 3D-моделирования могут сохранять объекты и сцены в формате VRML.
Консорциум Web3D был сформирован для дальнейшей коллективной разработки формата. VRML (и его преемник X3D ) были приняты в качестве международных стандартов Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC).
Первая версия VRML была определена в ноябре 1994 года. Эта версия была определена на основе API и формата файла программного компонента Open Inventor , изначально разработанного SGI , и очень напоминала их . Разработка версии 2.0 велась под руководством ad hoc VRML Architecture Group (VAG). [4] Рабочий проект был опубликован в августе 1996 года. [5] Формальное сотрудничество между VAG и SC24 ISO/IEC началось в 1996 году [6] , и VRML 2.0 был представлен в ISO для принятия в качестве международного стандарта. Текущая и функционально полная версия — VRML97 (ISO/IEC 14772-1:1997). VRML теперь заменен X3D (ISO/IEC 19775-1).
Термин VRML был придуман Дэйвом Рэггеттом в статье под названием «Расширение WWW для поддержки платформенно-независимой виртуальной реальности» [7], представленной на Первой конференции Всемирной паутины [8] в 1994 году, и впервые обсужден на конференции WWW94 VRML BOF, организованной Тимом Бернерсом-Ли , где Марк Песке представил демоверсию Labyrinth, разработанную им совместно с Тони Паризи [9] и Питером Кеннардом . [10] VRML был представлен более широкой аудитории в курсе SIGGRAPH VRML: использование 3D для веб-серфинга [11] в августе 1995 года. В октябре 1995 года на конференции Internet World компания Template Graphics Software (TGS) продемонстрировала подключаемый модуль 3D/VRML для бета-версии Netscape 2.0 от Netscape Communications . [12]
В 1997 году была завершена новая версия формата, как VRML97 (также известная как VRML2 или VRML 2.0), и стала стандартом ISO/IEC. VRML97 использовался в Интернете на некоторых персональных домашних страницах и сайтах, таких как « CyberTown », который предлагал 3D-чат с использованием Blaxxun Software, а также в программе SAPARi от Sony , которая была предустановлена на компьютерах Vaio с 1997 по 2001 год. [13] Формат был представлен Cosmo Software от SGI; когда SGI реструктурировалась в 1998 году, подразделение было продано VREAM Division of Platinum Technology , которое затем было приобретено Computer Associates , которая не разрабатывала и не распространяла программное обеспечение. Чтобы заполнить пустоту, в течение следующих нескольких лет появилось множество фирменных форматов Web 3D, включая Microsoft Chrome и Adobe Atmosphere , ни один из которых сегодня не поддерживается. Возможности VRML остались в основном теми же, в то время как 3D-графика в реальном времени продолжала совершенствоваться. Консорциум VRML изменил свое название на Консорциум Web3D и начал работу над преемником VRML — X3D . [14]
SGI управляла веб-сайтом vrml.sgi.com, на котором размещалась серия регулярных коротких выступлений персонажа по имени «Флупс», который был персонажем VRML в мире VRML. Флупс был творением компании Protozoa. [15] [16]
H-Anim — это стандарт для анимированных гуманоидов, основанный на VRML, а позже и на X3D. Первоначальная версия 1.0 стандарта H-Anim была запланирована к представлению в конце марта 1998 года. [17]
VRML никогда не получал серьезного широкого распространения. [18] Одной из причин этого могла быть нехватка доступной полосы пропускания . [19] Во времена популярности VRML большинство пользователей, как деловых, так и личных, использовали медленный коммутируемый доступ в Интернет .
Эксперименты с VRML в основном проводились в сфере образования и исследований, где открытая спецификация ценится больше всего. [20] Теперь он был переработан в X3D . MPEG-4 Interactive Profile (ISO/IEC 14496) был основан на VRML [21] (теперь на X3D), и X3D в значительной степени обратно совместим с ним. VRML также широко используется как формат файла для обмена 3D-моделями, особенно из систем CAD . [22]
Бесплатная кроссплатформенная реализация среды выполнения VRML доступна в OpenVRML . Ее библиотеки можно использовать для добавления поддержки VRML и X3D в приложения, а плагин GTK+ доступен для рендеринга миров VRML/X3D в веб-браузерах.
В 2000-х годах многие компании, такие как Bitmanagement, улучшили уровень качества виртуальных эффектов в VRML до уровня качества DirectX 9.0c, но за счет использования собственных решений. Все основные функции, такие как игровое моделирование, уже завершены. Они включают многопроходный рендеринг с настройкой низкого уровня для Z-буфера, BlendOp, AlphaOp, Stencil, [23] Multi-texture, [24] Shader с поддержкой HLSL и GLSL, [25] Render To Texture в реальном времени, Multi Render Target (MRT) и PostProcessing. [26] Многие демонстрации показывают, что VRML уже поддерживает lightmap, normalmap, SSAO, CSM и Realtime Environment Reflection вместе с другими виртуальными эффектами. [27]
В этом примере показана та же сцена, что и в примере X3D § .
#VRML V2.0 utf8Форма { геометрия IndexedFaceSet { coordIndex [ 0, 1, 2 ] координировать Координата { точка [ 0, 0, 0, 1, 0, 0, 0.5, 1, 0 ] } }}
В эссе ACM за март 1998 года «Игра в 3D-пространствах — почему Quake лучше VRML и что это значит для проектирования программного обеспечения» Клей Ширки резко раскритиковал VRML как «технологию, ищущую проблему», тогда как «Quake делает что-то хорошо, а не делает много плохого... Сообщество VRML не смогло придумать ничего столь же убедительного — не вопреки лучшим намерениям сообщества, а из-за них. Каждый раз, когда специалисты по VRML подходят к проблеме представления пространства на экране, у них нет четкой причины идти на какой-либо конкретный компромисс между детализацией и скоростью рендеринга или созданием объектов и созданием пространств, потому что VRML не предназначен ни для чего, кроме себя самого. Зачастую наличие конкретной, краткосрочной потребности в решении резко выделяет достоинства проекта и дает ему достаточно ясности, чтобы жить самостоятельно». [28]