Web3D , также называемый 3D Web , представляет собой группу технологий для отображения веб-сайтов и навигации по ним с использованием компьютерной 3D-графики .
Появление Web3D относится к 1994 году, с появлением VRML — формата файлов, предназначенного для хранения и отображения 3D-графических данных во Всемирной паутине . [1] В октябре 1995 года на выставке Internet World компания Template Graphics Software продемонстрировала плагин 3D/VRML для бета-версии Netscape 2.0 от Netscape Communications . [2]
Консорциум Web3D был создан для дальнейшего коллективного развития формата. VRML и его преемник X3D были приняты Международной организацией по стандартизации и Международной электротехнической комиссией в качестве международных стандартов . [ нужна цитата ]
Главным недостатком технологии было требование использовать сторонние плагины браузера для выполнения 3D-рендеринга, что замедлило принятие стандарта. [ нужна цитата ]
В период с 2000 по 2010 год один из этих плагинов, Adobe Flash Player , был широко установлен на настольных компьютерах и использовался для отображения интерактивных веб-страниц и онлайн-игр, а также для воспроизведения видео- и аудиоконтента. [3] Появилось несколько фреймворков на основе Flash, которые использовали программный рендеринг и ActionScript 3 для выполнения 3D-вычислений, таких как преобразования, освещение и текстурирование. Наиболее заметными среди них были Papervision3D и Away3D . [ нужна цитата ]
В конце концов, Abobe разработал Stage3D , API для рендеринга интерактивной 3D-графики с ускорением графического процессора для своего Flash-плеера и продуктов AIR [4] , который был принят поставщиками программного обеспечения. [5] [6]
В 2009 году Google представила 3D-веб-технологию с открытым исходным кодом под названием O3D . Для него также требовался плагин для браузера, но, в отличие от Flash/Stage3D, он был основан на API JavaScript . O3D был предназначен не только для игр, но и для рекламы, средств просмотра 3D-моделей , демонстраций продуктов , моделирования, инженерных приложений, систем управления и мониторинга, а также огромных виртуальных онлайн-миров . [7]
WebGL (сокращение от «Библиотека веб-графики») развился из экспериментов Canvas 3D, начатых Владимиром Вукичевичем из Mozilla Foundation . Вукичевич впервые продемонстрировал прототип Canvas 3D в 2006 году. К концу 2007 года и Mozilla [8] , и Opera [9] создали свои собственные отдельные реализации.
В начале 2009 года некоммерческий технологический консорциум Khronos Group основал рабочую группу WebGL с первоначальным участием Apple, Google, Mozilla, Opera и других. [10] Версия 1.0 спецификации WebGL была выпущена в марте 2011 года. [11]
Основные преимущества новой технологии включают соответствие веб-стандартам и почти нативную производительность 3D без использования каких-либо плагинов для браузера. [12] Поскольку WebGL основан на OpenGL ES , он работает на мобильных устройствах без каких-либо дополнительных уровней абстракции . На других платформах реализации WebGL используют ANGLE для преобразования вызовов OpenGL ES в вызовы API DirectX, OpenGL или Vulkan. [13]
Среди известных фреймворков WebGL — A-Frame , который использует разметку на основе HTML для создания возможностей виртуальной реальности; [14] PlayCanvas , движок с открытым исходным кодом, а также собственная облачная платформа для создания браузерных игр; [15] Three.js , фреймворк под лицензией MIT , используемый для создания демосцены с начала 2000-х годов; [16] Unity , которая получила серверную часть WebGL в версии 5; [17] и Verge3D , который интегрируется с Blender , 3ds Max и Maya для создания 3D-веб-контента. [18]
С быстрым распространением WebGL возникла новая проблема — отсутствие формата 3D-файлов, оптимизированного для Интернета. Данной проблемой занимался glTF — формат, который был задуман в 2012 году членами рабочей группы COLLADA . [19] На SIGGRAPH 2012 Хронос представил демо-версию glTF, которая тогда называлась форматом передачи WebGL (WebGL TF). 19 октября 2015 года была выпущена спецификация glTF 1.0. [20] Версия 2.0 glTF использует физически обоснованную модель материала рендеринга, предложенную Фраунгофером. [21] Другие обновления включают разреженные средства доступа и цели морфинга для таких методов, как лицевая анимация, а также настройки схемы и критические изменения для крайних случаев или производительности, такие как замена свойств объекта glTF верхнего уровня массивами для более быстрого доступа на основе индекса. [22]
«WebGPU» — это рабочее название потенциального веб-стандарта и API JavaScript для ускоренной графики и вычислений , целью которого является предоставление «современной 3D-графики и вычислительных возможностей». Он разработан группой сообщества W3C «GPU for the Web» с участием инженеров Apple, Mozilla, Microsoft и Google, среди других. [23]
WebGPU не будет основан на каком-либо существующем 3D API и будет использовать синтаксис, подобный Rust , для шейдеров . [24]