babylon.js против three.js на ionic, проблема с webgl

Я разрабатываю приложение для Android с ionic 3. У меня есть часть, использующая babylon.js, а другая часть (не связанная друг с другом), использующая three.js. Я тестировал приложение на нескольких устройствах. Те, у кого установлена ​​Android 5.1.1, не могут отображать файлы three.js. Там написано «webGL не поддерживается» или что-то в этом роде. Также, если я попробую document.createElement("canvas").getContext("webgl"), я получу null. ТАК пока это имеет смысл.

С другой стороны, Babylon.js может без проблем показывать свои трехмерные объекты. Если я попробую document.createElement("canvas").getContext("webgl"), я также получу null. НО: если я попробую engine.webGLversion, я получу 2.

На Android 6 или 7 все работает нормально. THREE.js говорит, что использует движок webgl, как и Вавилон. Я знаю, что веб-просмотр Chrome не позволяет использовать webgl на Android 5.1.1 или ниже (???). В любом случае, WebGL отлично работает на Android 6 и 7. Также document.createElement("canvas").getContext("webgl") возвращает нормально.

Затем я установил Crosswalk в свое приложение (добавив элемент игнорирования черного списка), и THREE.js перестал жаловаться, а document.createElement("canvas").getContext("webgl") нормально вернул контекст webGL.

Я до сих пор не знаю, если:

  1. У babylon есть средство визуализации холста, и он возвращается к нему, когда не может найти webgl.
  2. Вавилон обладает некоторыми магическими способностями и МОЖЕТ использовать webGL, когда Three.js НЕ МОЖЕТ

Кто-нибудь прошел через то же самое? Благодарность


person Facundo Pixeloide    schedule 26.02.2018    source источник


Ответы (1)


Я могу по крайней мере ответить на вопрос 1: мы решили поддерживать только контексты WebGL в Babylon.js, поскольку стоимость моделирования аппаратного ускорения рендеринга с использованием чистого холста непомерно высока.

person David Catuhe    schedule 21.03.2018