Pull to refresh

Опера, WebGL и аппаратное ускорение

Reading time3 min
Views15K
Original author: Opera core concerns
Много лет назад, в одном далёком-далёком офисе. Опера представила отдельную сборку с реализацией отрисовки 3D. Теперь, больше трёх лет спустя, мы представляем первую публичую сборку с реализацией 3D ускорения соответствующего стандарту используемого для WebGL в Windows.

image
WebGL это стандарт разработанный группой Khronos, где Опера является активным членом, участвующем в процессе стандартизации. Мы работаем на реализацией WebGL с начала 2009 года, когда начался процесс стандартизации. Спецификация менялась довольно часто за эти несколько лет, однако теперь она начала стабилизироваться, что делает это время идеальным для выпуска публичной сборки с нашей текущей реализацией WebGL.

Для тех из вас, кто еще не слышал о WebGL, это холст, элемент который дает вам возможность аппаратного ускорения 3D-рендеринга в яваскрипте. API базируется на OpenGL ES 2.0, что означает, что WebGL может быть запущен на различных устройствах, таких как настольные компьютеры, мобильные телефоны и телевизоры. WebGL вики содержит всю информации о стандарте, в том числе учебники и много примеров — так что это лучше место место, если вы хотите увидеть нашу реализацию WebGL в действии.

Аппаратное ускорение
В июне 2008 – примерно в одно время с нашими первыми экспериментами с 3D холстом – мы демонстрировали видео с реализацией полного аппаратного ускорения. Одно из требований которое мы имели для включение этого кода, был быстрый возврат к софт режиму, когда аппаратное ускорение недоступно и он должен был быть таким же быстрым как во всех программах которые мы использовали в то время. Чтобы достичь этого мы потратили много времени и ресурсов для оптимизации нашего софт рендера, который был использован в Опера 10.50(Vega lib), который теперь является одним из самых быстрых. После выпуска 10.50 мы снова сфокусировались на реализации аппаратного ускорения.

Результаты этой работы собраны в этой сборке, эта сборка имеет полное аппаратное ускорение(на системах с совместимым оборудование и драйверами).

Наша реализация аппаратного ускорения немного отличается от того что делают остальные браузеры. Подобно IE9 и FF4 мы делаем полное аппаратное ускорения для всех операция отрисовки, но в отличии от этих браузеров, которые имеют это ускорение в Windows Vista и Windows 7, наша реализация будет работать под любой платформой лишь бы имелось совместимое оборудование. Это значит что мы имеем полную поддержку аппаратного ускорения в Windows XP, Linux, Mac OS X и на любом устройстве поддерживающем OpenGL ES 2 включая последние смартфоны и даже TV Приставки.

OpenGL

Эта сборка имеет только OpenGL бэкенд. Это значит что ваша система должна поддерживать OpenGL 2.x и иметь последние драйвера для поддержки аппаратного ускорения и WebGL. В следующих сборках мы также добавим поддержку Direct3D бэкенда, что снизит требования к драйверам и позволит работать из коробки на большом количестве систем.

image
Итак, как можно узнать что аппаратное ускорение работает? Есть два простых способа это проверить. Первый это загрузить любой пример с WebGL и если он заработает то значит ваша система соответствует всем требованиям и ускорение работает. Альтернативный способ, это заглянуть на страницу opera:about и и посмотреть на строчку «Vega backend», если там значится OpenGL то ускорение работает, если software, то нет.

Качаем!
На данный момент у нас имеется сборка только под Windows, но ведётся работа над сборками под другие платформы.

Opera 11 с поддержкой WebGL и аппаратного ускорения под Windows

Внимание: это не стабильная сборка, все эксперименты на свой страх и риск.

Пожалуйста оставляйте отзывы, но не забудьте включить информацию о видеокарте и драйверах которые вы имеете, и что использует Vega в качестве бэкенда, OpenGL или Software.
Tags:
Hubs:
Total votes 44: ↑41 and ↓3+38
Comments21

Articles