Урок 0: Приступаем к работе с WebGL

Урок 1 >>

Материал в оригинале можно найти здесь

Первое, что вам нужно сделать при начале работы с WebGL — обзавестись браузером, который его поддерживает. Что именно использовать — зависит от того, хотите ли вы просто посмотреть на готовые примеры WebGL или разработать свои.

Простой путь

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

  • При использовании Windows убедитесь, что установлена Исполняемая библиотека Microsoft DirectX — ее можно бесплатно скачать с сайта Microsoft.
  • После этого установите самую последнюю версию драйверов видеокарты.
  • Теперь выбирайте браузер:
    • Firefox: достаточно версии 4 и выше.
    • Chrome: вам нужно просто установить его. Если вы его уже используете, просто проверьте, что он обновлен до версии 10 — почти наверняка это произошло автоматически (версия выпущена в марте 2011), но вы можете убедиться в этом в пункте меню «О браузере Google Chrome».
    • Safari: на Mac, OS X 10.7 имеет поддержку WebGL, но она отключена по умолчанию. Для ее включения зайдите в меню разработчика и отметьте флажок «Включить WebGL».

Готово! Теперь вы готовы. Можете посмотреть на некоторые WebGL-страницы.

Сложный путь

Если вы сами разрабатываете на WebGL или вам нужны новейшие возможности, тогда вам просто необходимо иметь самую последнюю версию браузера. WebGL поддерживается в версиях для разработчиков всех браузеров, кроме Internet Explorer, поэтому вам остается просто выбрать подходящую версию для вашего компьютера. Насколько это легко — зависит от того, какой у вас компьютер:

  • Windows: Если вы еще этого не сделали, убедитесь, что у вас установлена исполняемая библиотека DirectX — ее можно бесплатно скачать с сайта Microsoft. После этого установите либо Firefox, либо Chromium в зависимости от своих предпочтений. Если это не сработало — проверьте инструкцию по устранению неполадок. (Экстренные новости: пре-бета версия Opera, которая теперь поддерживает WebGL на Windows, теперь доступна. Однако, она не такая стабильная, как другие браузеры, поэтому не полагайтесь на нее как на единственную реализацию WebGL. Кроме того, она будет работать, только если ваша видеокарта поддерживает OpenGL 2.0. В общем, ее не так просто заставить работать)
  • Macintosh: Если у вас Snow Leopard (OS X 10.6), то все должно быть хорошо. Я рекомендую использовать WebKit версию для разработчиков, которая будет альтернативой браузеру Safari. Если у вас Leopard (OS X 10.5), у вас не получится использовать эту версию WebKit, но вы можете работать в Firefox или Chromium. Пользователи Snow Leopard, конечно же, тоже могут использовать Firefox или Chromium. Если у вас более старая версия OS X, я, к сожалению, не знаю какого-либо браузера, который вы можете использовать :(.
  • Linux: К сожалению, довольно большое количество драйверов для видеокарты недостаточно хороши для работы с WebGL. То же самое было и с Windows, но разработчики браузеров смогли обойти это с помощью DirectX. К несчастью, в Linux нет подобного обходного пути. Вот, что у меня получилось найти:
    • Если у вас видеокарта Nvidia со свежими драйверами, то все должно работать хорошо в Firefox или Chromium.
    • Если у вас видеокарта ATI, наверное, лучшим выбором будет Firefox.
    • Если у вас видеокарта Intel, то вероятней всего у вас будет тормозить программный рендеринг, но во всяком случае вы сможете хотя бы увидеть работу WebGL. Попробуйте Firefox или Chromium, но вероятно они не будут работать на настройках по умолчанию (аппаратный рендеринг). Для использования программного рендеринга на Linux вам необходимо установить Mesa (и убедиться в менеджере пакетов, что у вас последняя версия) и затем использовать последний Firefox с небольшими дополнительными настройками.

Более подробно об этом в разделе устранения неполадок.

Firefox

«Нестабильная» версия Firefox для разработчиков называется Minefield. Она обновляется каждую ночь и уже довольно надежная: я не замечал падений в последнее время (а я использую ее постоянно). Она может работать наряду с обычной версией Firefox, поэтому не нужно волноваться, что придется удалять ее, если вы прекратите ей пользоваться или просто на время переключитесь в обычную версию Firefox.

Для получения Minefield:

  • Открывайте страницу ночных сборок и выбирайте подходящую версию для вашего компьютера. Будьте внимательны! Там может быть множество версий, с именами типа «firefox-10.0a1что-то там» или «firefox-10.0a2что-то там». Вам нужна самая последняя, где будет самое большое число после ‘a’ (альфа) или ‘b’ (бета).
  • Установите ее (на это время вам нужно будет закрыть все открытые экземпляры Firefox).
  • Запускайте Minefield.

Полезная подсказка — если вы хотите работать с Minefield вместе с обычным Firefox, вы можете сделать это добавлением аргументов командной строки: -P Minefield -no-remote. Первый аргумент запускает его с отдельным профилем (чтобы у вас были раздельные истории и наборы открытых вкладок в каждом браузере), а второй параметр обозначает, что при запуске Minefield, когда Firefox уже открыт, Minefield не будет открыт новой вкладкой в уже запущенном Firefox. Возможно, вы также захотите добавить -P default -no-remote к аргументам запуска обычного Firefox для аналогичного эффекта. Пользователям Windows: вы можете установить аргументы командной строки для любого приложения, кликнув правой кнопкой мыши на иконке приложения, затем выбрав «Свойства» и добавив параметры в конец поля «Объект». Пользователям Mac и Linux — я не знаю, как вы это делаете, но вероятно, что вы и сами в курсе :).

Теперь можете посмотреть на некоторые WebGL-страницы.

Запуск Minefield с программным рендерингом на Linux

Если ваша видеокарта — или драйвер, что более вероятно — не поддерживают OpenGL 2.0, то единственный способ добиться работы WebGL на Linux — использовать библиотеку под названием Mesa. По существу, Mesa эмулирует видеокарту на программном уровне, поэтому работает она медленнее — но это лучше, чем ничего. Mesa интегрируется с Minefield, «нестабильной» версией Firefox для разработчиков, обычно это часть вашего дистрибутива Linux. И вот как все это можно сделать:

  • Скачайте последнюю версию Minefield
  • Установите ее (на это время вам нужно будет закрыть все открытые экземпляры Firefox).
  • Через менеджер пакетов Linux убедитесь, что Mesa установлена и обновлена до последней версии
  • Запускайте Minefield.
  • Перейдите на страницу «about:config»
  • Отфильтруйте по «webgl»
  • Установите значение настройки «webgl.enabled_for_all_sites» в значение «true».
  • Установите значение настройки «webgl.software_rendering» в значение «true».
  • Пропишите в «webgl.osmesalib» путь к библиотеке OSMesa (обычно это /usr/lib/libOSMesa.so).

Теперь все должно быть настроено и вы можете посмотреть на некоторые WebGL-страницы.

Safari

Запомните, что Safari поддерживает WebGL на Mac с системой Snow Leopard (OS X 10.6). Если у вас Leopard (10.5), Windows или Linux, то вам нужно использовать Firefox или Chromium (при более старой версии OS/X я не знаю браузера, который вы могли бы использовать 🙁 ).

Итак, если у вас Snow Leopard, вам необходимо:

  • Убедитесь, что у вас по крайней мере четвертая версия Safari.
  • Загрузите и установите ночную сборку WebKit
  • Откройте терминал и выполните в нем команду: defaults write com.apple.Safari WebKitWebGLEnabled -bool YES
  • Запустите установленный WebKit

Теперь можете посмотреть на некоторые WebGL-страницы.

Chromium

Если вы хотите создаете страницы с использованием WebGL, разработчики Chrome рекомендуют использовать ночные сборки Chromium — браузера с открытым исходным кодом, на котором основан Chrome. Схема немного отличается для каждой операционной системы. Здесь инструкции для Windows, Macintosh и Linux. (Предупреждение: я пробовал только на Windows, но мне сказали, что настройки остальных ОС тоже в порядке. Оставляйте комментарии, если это не так 🙂 ).

Windows

  • Открывайте страницу непрерывной интеграции, прокрутите вниз до самой последней сборки и нажмите на ссылку для получения chrome-win32.zip
  • Распакуйте файл в удобном для себя месте
  • В распакованном каталоге запустите chrome.exe

Macintosh

  • Открывайте страницу непрерывной интеграции, прокрутите вниз до самой последней сборки и нажмите на ссылку для получения chrome-mac.zip
  • Распакуйте файл в удобном для себя месте
  • Откройте терминал и перейдите в распакованный каталог chrome-mac
  • Убедитесь, что Chrome не запущен
  • Выполните следующую команду: ./Chromium.app/Contents/MacOS/Chromium
  • После того как убедитесь, что все работает, вы, возможно, захотите немного автоматизировать вещи, чтобы не набирать команду каждый раз. Julien Limoges подсказал для этого полезный shell-скрипт.

Linux

  • Открывайте 32-разрядную или 64-разрядную страницу непрерывной интеграции, прокрутите вниз до самой последней сборки и нажмите на ссылку для получения chrome-linux.zip
  • Распакуйте файл в удобном для себя месте
  • Убедитесь, что Chrome не запущен
  • Выполните следующую команду: ./chrome

Теперь можете посмотреть на некоторые WebGL-страницы.

Несколько примеров

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

Если же WebGL работает, то все настроено правильно! К сожалению, последние изменения в WebGL поломали многие примеры, но есть несколько обновленных:

На этом и остановимся, достаточно для моего первого поста о начале работы с WebGL. Если вы хотите продолжить и научиться создавать собственные страницы WebGL, взгляните на мой первый урок.

Устранение неполадок

Mac

У меня нет полезных советов и подсказок для настройки WebGL на Mac, потому что никто никогда не просил меня о помощи и я никогда не видел вопросов на форумах. Я могу предположить, что это означает, что на OS X все работает хорошо…

Windows

Самая распространенная проблема на Windows — не установлена исполняемая библиотека DirectX — ее можно бесплатно скачать с сайта Microsoft, поэтому стоит попробовать это сделать. Также стоит проверить, не появилось ли новых драйверов для видеокарты — проверьте в обновлениях Windows или на веб-сайте производителя видеокарты. Если это не сработало, возможно драйвер видеокарты находится в «черном списке». На Windows это случается реже, чем на Linux, но все-таки бывает. Посмотрите инструкцию для Linux для подробностей.

Linux

Чаще всего WebGL не работает на Linux из-за проблем с драйверами видеокарты. Все текущие реализации WebGL в браузерах основаны на OpenGL, которая в свою очередь работает благодаря драйверам видеокарты. Для работы WebGL нужен как минимум OpenGL 2.0. В частности, обладатели видеокарт Intel испытывают проблемы, потому что Intel не выпускает драйвера для большинства своих видеокарт с этой поддержкой. Если у вас видеокарт Intel, попробуйте использовать программный рендеринг Mesa. Если и это не помогает, то оставьте комментарий и я попробую помочь.

Если у вас видеокарта ATI или Nvidia, первым делом проверьте свою версию OpenGL. Для этого запустите glxinfo и посмотрите на строку с заголовком «OpenGL version string». Если версия, которую вы видите, меньше 2.0, вам необходимо обновить ваши драйвера. Проверьте веб-сайт производителя видеокарты/компьютера и загляните в менеджер пакетов.

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

По состоянию на 6 октября 2011 года, как выяснил пользователь Nardon, «Google занес в черный список все драйвера Linux, кроме официальных драйверов nVidia … Firefox 6 и выше разрешил большинство последних драйверов ATI, поэтому WebGL должно работать в этом браузере».

Если вы не боитесь аварийных завершений работы и используете драйвер из черного списка, вы можете запустить Chrome с параметром командной строки –ignore-gpu-blacklist и посмотреть, что случится (спасибо Jonas Antunes da Silva за подсказку). Если это не исправит положение вещей, возможно для вашей видеокарты просто нет приличных драйверов для работы OpenGL. Возможно, лучшим выбором для вас будет использование программного рендеринга. Снова оставлю ссылку на инструкцию.

Урок 1 >>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *