Поддержка Canvas и WebGL (three.js) на мобильных устройствах? - PullRequest
11 голосов
/ 29 ноября 2011

Есть замечательный фреймворк для 3D-приложений под названием three.js.Насколько я понял, у него есть несколько подсистем рендеринга: на основе Canvas и на WebGL.

Итак, что насчет поддержки мобильных устройств?(Android, iOS)

Ответы [ 3 ]

13 голосов
/ 29 ноября 2011

Независимо от three.js он разбивается следующим образом:

Элемент Canvas может использоваться либо с контекстом 2D, либо с контекстом WebGL.Threejs может использовать либо WebGL, либо 2D-контекст.

Большинство мобильных телефонов поддерживают контекст 2D.

Немногие поддерживают контекст WebGL.Firefox для мобильных устройств поддерживает WebGL и доступен по крайней мере для некоторых сборок Android, и BlackBerry PlayBook может использовать его тоже.

См .:

http://caniuse.com/canvas (он же 2D)

http://caniuse.com/webgl

5 голосов
/ 28 июля 2014

Обновление 12-12-2014 http://caniuse.com/#feat=webgl

  • В IOS8 будет включен WebGL.
  • В браузерах Android включен WebGl.
  • Однако, если вы хотите создать приложение, вы можете использовать Crosswalk для запуска приложения на последней версии Chromium (с включенным WebGL).
  • В качестве альтернативы CocoonJS имеет "Canvas +", который является нативной реализацией элемента Canvas для Android / iOS, включая виртуальную среду javascript.(Другими словами, пользовательский браузер, который может отображать только элементы Canvas)
3 голосов
/ 29 ноября 2011

Вы можете использовать Three.js на мобильных устройствах, как минимум на iOS и только с использованием CanvasRenderer из three.js.WebGLRenderer не будет работать на iOS.

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

У меня было несколько тестов с анимированной геометрией, только примитивы.
Я могу проверить это на iPodTouch 1G и iPodTouch 4G.Оба работали хорошо, с хорошей частотой кадров.

Я не мог попробовать это на Android, но я думаю, что это тоже работает.

...