Новости про 3D-Интернет и WebGL

Поддержка WebGL в браузерах улучшается

Следующие версии браузеров Chrome и Firefox будут поддерживать WebGL «из коробки».

Последняя (седьмая) бета-версия следующего крупного обновления браузера Firefox, Firefox 4, включает в себя улучшенную поддержку стандарта трёхмерной графики в Интернет WebGL, позволяющего создавать и просматривать страницы и сайты с 3D-контентом без необходимости в установке плагинов. Важным изменением также стало то, что поддержка WebGL включена по-умолчанию, без необходимости в изменении настроек браузера для просмотра WebGL-ресурсов.

Также новая версия Firefox использует API трёхмерной графики для совмещения различных слоёв веб-страницы: текста, графики и видео, подобно Internet Explorer 9. Аппаратное ускорение использует Direct3D в Windows и OpenGL в MacOS X, позволяя повысить скорость рендеринга сложных страниц и их «отзывчивость» на действия пользователя. Разработчики предупреждают, что работа ускорения может быть ненадёжной на некотором оборудовании и при использовании нестабильных драйверов, в особенности на Intel IGP. По этой же причине ускорение пока отключено в версии для Linux. Также новая бета-версия FireFox имеет улучшенную поддержку API Direct2D для ускорения отрисовки двумерной графики в Windows Vista и 7. Загрузить последнюю бета-версию FireFox 4 можно с официального сайта.

Разработчики браузера Chrome от Google тоже работают над поддержкой WebGL в следующей версии за номером 9. Появилось впечатляющее видео WebGL-демонстрации Aquarium, работающей на восьми компьютерах с Google Chrome одновременно:

Экземпляры браузеров синхронизируют между собой рендеринг сцены с помощью технологии WebSockets. Загрузить демонстрацию можно с сайта Google.

3D-моделлинг в браузере с помощью WebGL

Пробы нового применения технологий трёхмерной графики в Интернет.

Основанный на OpenGL стандарт WebGL уже вовсю исследуется как потенциальная платформа для игр в Интернет. Энтузиасты ищут и другие возможные применения стандарта, например, создание трёхмерных сцен прямо в браузере, чему примером две демонстрации онлайн-редакторов.

3DTin разрабатывается как попытка создать аналог известного редактора Google SketchUp, работающий прямо в браузере. Важным достоинством проекта является наличие поддержки HTML5 Canvas и Microsoft VML для обратной совместимости с обозревателями, не поддерживающими WebGL, в особенности Internet Explorer.

SceneCreator создаётся на базе библиотеки С3DL как аналог сервиса трёхмерной графики для социальных сетей SceneCaster.

Конечно, сейчас эти проекты находятся на уровне MSPaint, а на платформах Adobe Flash или Unity доступны куда более впечатляющие инструменты, но если WebGL получит распространение и на авторов обратит внимание какая-нибудь корпорация, в будущем такие поделки могут вырасти во вполне приличные инструменты начинающего художника 3D-графики, с которыми можно работать с компьютера в любой части света.

AMD выпускает драйвер с поддержкой OpenGL ES 2.0

Драйвер обеспечивает поддержку стандарта WebGL. Он предназначен для разработчиков, которые создают 3D-контент для интернет и/или портируют приложения между ПК и карманными компьютерами.

«AMD является твердым сторонником отраслевых стандартов, в том числе использования мощностей GPU для ускорения приложений», — сказал Manju Hegde, вице-президент корпорации AMD по Fusion направлению. «Со стороны AMD мы видим будущее компьютеров, интенсивно визуальных, требующих различных мультимедийных 2D и 3D приложений. Функциональность драйвера OpenGL ES 2.0 и передовые технологии стали возможны благодаря AMD Fusion APU, и мы стремимся создать идеальную платформу для разработки захватывающих онлайн-программ и программ, работающих практически на любом форм-факторе ПК».

Бета-драйвер Catalyst 10.7 с поддержкой OpenGL ES 2.0 доступен для загрузки на официальном сайте и может быть использован с AMD ATI FirePro, а так же с сериями карт Radeon HD 2000, HD 3000, HD 4000 и HD 5000.

Quake II и III в браузере

Как лучше всего продемонстрировать возможности современных веб-технологий? Сделать с их помощью классическую игру!

Мы уже приводили пример, как стандарт описания трёхмерной графики в Интернет WebGL может быть использован для создания полностью интегрированных в веб игровых приложений. Теперь к данному направлению подключились тяжеловесы.

Команда движка Google Web Kit взяла Java-реализацию игры Quake 2 Jake2 и портировала её движок в API HTML5/WebGL. Возможности HTML5 позволили даже имитировать файловую систему для сохранения состояния игры и реализовать многопользовательский режим, ну а WebGL обеспечил рендеринг с использованием аппаратного ускорения. Проект пока распространяется лишь в форме исходного кода для сборки на локальной машине. Из браузеров поддерживаются лишь последние версии Apple Safari и сборки Google Chrome для разработчиков, причём последние следует запускать с ключами --enable-webgl --no-sandbox. Для воспроизведения также потребуется видеокарта с поддержкой OpenGL 2.0.

Quake2 GWT Port

Создатели же JavaScript 3D/WebGL движка Copperlicht принялись за портирование следующей игры от iD Software и представили действительно работающую прямо в браузере демонстрацию Quake 3. В отношении браузеров создатели демонстрации допускают больше вариантов: кроме основанных на WebKit поддерживаются также и альфа-сборки Firefox.

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

EnergizeGL — framework для WebGL

WebGL также обрастает вспомогательными инструментами для разработки.

Сам по себе WebGL является достаточно низкоуровневым средством описания сцены — не все являются фанатами написания кода шейдеров и JavaScript в «блокноте». На помощь приходят фреймворки вроде EnergizeGL, прячущие механику и позволяющие вести разработку трёхмерных сайтов и приложений для Интернет на более высоких уровнях абстракции.

Пока что доступна альфа-версия с примером приложения (~0,1 Мб) и демонстрация среды разработки прямо в браузере. Для работы с примерами и демонстрацией требуется тестовая сборка браузера Firefox, с движком WebKit пока есть проблемы совместимости.

Эмулятор OpenGL ES 2.0 с помощью Direct3D 9

Хотя OpenGL ES 2.0 становится обычным делом на мобильных платформах, далеко не все ПК готовы к его поддержке.

Стандарт OpenGL ES 2.0 создавался для мобильных платформ на основе OpenGL 2.0, причём исключительно на базе программируемой шейдерами части. Вместе с тем, сам OpenGL 2.0 далёк от повсеместного распространения и на ПК. К примеру, интегрированные графические ядра Intel лишь начиная с X3500 получили поддержку OpenGL 2.0, мало того, IGP-компаньоны новых процессоров Atom для Windows поддерживают максимум OpenGL 1.5. А ведь OpenGL ES 2.0 лежит в основе стандарта трёхмерной графики в Интернет WebGL.

Выходом может стать проверенный метод — врапперы в Direct3D. Разработкой такого враппера ANGLE занялись съевшие собаку на вопросах преобразований графических API программисты из Transgaming, известные своими продуктами SwiftShader (с помощью которого была решена та же проблема для конкурирующего с WebGL стандарта O3D от Google) и Cider/Cedega. Проект пока находится на ранней стадии разработки, но если о удастся, проблема поддержки великого множества компьютеров, особенно нетбуков, будет решена.

Демонстрация игры на WebGL

Технологии трёхмерного Интернет могут создать новую игровую платформу.

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

Для того, чтобы воспользоваться демонстрацией, нужен браузер с поддержкой WebGL, например Firefox 3.7a1 (требуется включать поддержку WebGL в about.config) или последняя версия Apple Safari. В принципе, со временем новые веб-технологии могут составить конкуренцию Adobe Flash в качестве платформы для казуальных игр в Интернет.

XML3D — еще один претендент на звание стандарта трёхмерной графики в Интернет

Новое расширение языка разметки HTML-XML обещает добавить легкореализуемую 3D-графику на веб-страницы.

Создатели XML3D выбрали несколько иной путь интеграции трёхмерной графики в веб. В то время как основные претенденты на трон наследника VRML, O3D от Google и WebGL от Khronos/Mozilla выбрали направление расширения Java-Script, XML3D расширяет сам язык разметки HTML 5.0/XML, интегрируясь в модель DOM. Глубина интеграции обещается вплоть до возможности, к примеру, задания текстур в привычных тегах <img>. Привычно обещаются полная независимость от оборудования (и даже от API рендеринга), полная программируемость через шейдеры, готовность к рендерингу на стороне сервера. Никаких подробностей и примеров использования пока недоступно, кроме видео, демонстрирующего трёхмерный рендеринг на странице Википедии:

XML3D - Raytraced Venice in Wikipedia

и, не много не мало, ray-tracing автомобиля прямо в браузере Firefox:

GPGPU станет возможным прямо в веб-браузере

Из-за спины стандарта трёхмерной графики в Интернет WebGL уже выглядывает…WebCL?

Основанный на OpenGL ES WebGL уже продемонстрировал способность обеспечить новое качество и скорость графики в Интернет, но стандарт может найти и неграфические применения, чему свидетельствуют новые публикации и демонстрации.

В демонстрации приводится пример ускорения операций перемножения матриц путем помещения данных в текстуру и осуществления умножения в шейдере GLSL. Как сообщает автор, умножение матриц 1024x1024 на GPU занимает 5 секунд — заметное ускорение в сравнении с 35 секундами для той же задачи при расчётах на CPU. Для использования демонстрации необходим браузер на основе последней версии Webkit, такой как Apple Safari.

Но не только отдельные энтузиасты изучают потенциал использования графических процессоров веб-приложениями. Для API Jetpack, разрабатываемого в Mozilla Labs для браузера Firefox, изучается возможность ускорения практически любого JavaScript-кода с помощью GPU. Уже существует первая реализация, использующая NVIDIA CUDA, в будущем же вполне вероятно появление некоего общего стандарта для универсальных вычислений через Интернет. Если Khronos Group возьмётся за задачу, мы, возможно, в скором времени увидим новую аббревиатуру: WebCL.

Новая демонстрация WebGL

Появилась новая демонстрация использования WebGL, API трёхмерной графики для Интернет.

WebGL — перспективный скриптовый язык описания трёхмерных объектов для Интернет, основанный на «портативной» версии OpenGL ES. Весь код и большая часть ресурсов трёхмерной сцены помещаются прямо в код Web-страницы и воспроизводятся интерпретатором браузера (при условии, что тот имеет поддержку WebGL). В конце прошлого года Khronos Group опубликовала предварительную спецификацию стандарта с надеждой, что будущие версии браузеров будут поддерживать WebGL «из коробки», без необходимости в установке плагинов как в конкурирующем формате O3D от Google.

В новой демонстрации Shader Toy упор сделан на использование языка описания шейдеров GLSL. В демонстрации использовано 29 различных шейдеров для создания эффектов, приближённых к качеству графики «толстых» OpenGL приложений.

Для просмотра демонстрации потребуется установить последнюю тестовую сборку браузера Firefox 3.7 с поддержкой WebGL.

Первые демонстрации WebGL

Хотя новый стандарт 3D графики в Интернет WebGL еще только разрабатывается, уже появились первые демонстрации с его использованием. 

Напоминаем, что проект WebGL, разрабатываемый Khronos Group, призван стандартизировать использование 3D графики в Интернет, сделав возможным описание трёхмерных сцен с помощью JavaScript, рендеринг которых будет осуществляться через облегчённую версию OpenGL, OpenGL ES 2.0. В идеале поддержка WebGL должна быть встроена в интерпретаторы JavaScript основных браузеров, не требуя загрузки специальных плагинов конечными пользователями. Хотя официально о формировании рабочей группы было объявлено лишь 4 августа этого года, уже сейчас появляются первые демонстрации использования нового API. Следует отметить, что пока для их просмотра придется установить альфа-сборки браузера Firefox, после чего вручную включить поддержку WebGL в about.config через переменную webgl.enabled_for_all_sites.

Демонстрация Puls:

Демонстрация эффекта Эшера-Дросте:

Демонстрация Туннель:

Отметим, что говорить что-то о перспективах WebGL пока рано. WebGL неодинок в 3D Internet гонке, конкуренты, такие как Google O3D и Adobe Flash, стартовали раньше и сейчас демонстрируют намного превосходящие результаты, и даже стандартизация не гарантирует успеха, как показал в прошлом печальный опыт VRML.