IOS: HTML5 с разработкой Three.js

Я планирую разработать HTML5 с страницами Three.js, чтобы я мог легко создавать 3D-экраны с помощью этого и поддерживать мобильные платформы в кросс-платформенном методе. Я читал, что Three.js использует WebGL, но браузеры iOS и Android не поддерживают его, поэтому я не могу разработать такие комбинированные приложения.

Может кто-нибудь, пожалуйста, посоветуйте, могу ли я разработать HTML5 с страницами Three.js для достижения трехмерных взаимодействий в приложениях iOS и Android или нет в качестве веб-приложения? Если нет, сообщите мне официальные ссылки, где указано, что они не поддерживаются.

Спасибо.

Ответ 1

Three.js отлично работает без WebGL. Вы можете использовать рендеринг Canvas - он описан в документации Three.js, я уверен, что вы можете найти его на github, используя Google или даже Bing. Это не так быстро, как использование WebGL, но никто не участвует в гонках в Монте-Карло в Nissan Sentra.

Вы не должны ожидать высокой производительности 3D на любой мобильной платформе - в основном, потому что производительность javascript может омрачаться медленно. Попытайтесь получить доступ к некоторым из примеров Three.js, используя мобильные устройства (как с webgl, так и без них), чтобы получить представление о производительности.

Ответ 2

", но браузеры iOS и Android не поддерживают его" Я могу использовать Three.js и его демоверсии webgl на Android-браузере, начиная с версии 2.3.7. до 4.3+. Ваш аргумент недействителен: P

Ответ 3

Я попытался запустить демонстрационные ролики Three.js Canvas на своем iPad Air, и это было ужасно. Обычно Safari падает, и даже если рендер работает, он выполняет 2-3 кадра в секунду. Так кажется, что он очень сырой на устройствах iOS прямо сейчас

Ответ 4

iOS и поддержка браузера Android webgl не так хорошо, как веб-браузер, иногда вы можете уменьшить эффекты рендеринга, чтобы заставить его работать. Обычно это происходит. Для приложения скорость рендеринга в андроиде невелика. У Иоса лучше.

И вы можете подключить к нему какое-то средство рендеринга, такое как XWalkView, вот post, как использовать его для визуализируйте 3D-модели с помощью three.js в моем приложении android4.2.0. Для IOS существуют также релевантные решения.

Ответ 5

iOS Safari и Android Chrome поддерживали WebGL уже несколько лет.

Проблема, о которой вы можете иметь в виду, - это Android WebView или iOS UIWebView (элемент управления, который вы можете поместить в собственное приложение для отображения веб-страницы) может поддерживать или не поддерживать WebGL. WebGL поддерживается в WebViews с Android 5.0, видимо,, хотя люди сталкиваются с проблемами

Другой вариант - использовать что-то вроде CocoonJS. Они, по-видимому, предоставляют пользовательские реализации веб-просмотра для Android 4.0 и iOS 8+.

Что касается производительности, три .js будут отлично работать на простых сценах с мобильным телефоном. Есть много примеров. 3D на мобильном телефоне в целом, хотя требует оптимизированных активов (более низкие модели полигонов, меньшие текстуры, более простые шейдеры, меньше огней и т.д.) По сравнению с настольными компьютерами и, в частности, с three.js

Ответ 6

Выбранный ответ на этот вопрос рекомендует использовать Three.js CanvasRenderer, но как показано здесь в документации Three.js, CanvasRenderer устарел:

ПРИМЕЧАНИЕ. Средство рендеринга Canvas устарело и больше не является частью ядра Three.js.

Важно отметить, что он все еще может использоваться для простых 3D-сцен и может быть найден на Github здесь

WebGL поддерживается в Androids WebView v36 и выше, как показано здесь. В качестве альтернативы более старым браузерам Android Chrome WebGL можно включить, введя: chrome://flags в браузер и выбрав ссылку Включить, которая отображается в заголовке Включить WebGL в окне браузера, или путем обновления веб-просмотра в Android-магазине Google Play.

WebGL был поддержан на Mobile Safari с момента выхода iOS 8.0b.

В mobilehtml5.org вы можете увидеть, какие версии мобильных устройств поддерживают определенные функции HTML5:

поддержка мобильного WebGL

Sony Xperia Android 2.3 также поддерживает WebGL.