Искать на сайте Unity

WebGL: WebAssembly и роадмап функций

18 июня 2015 г. через Технологии | 2 мин. читать
Охваченные темы
Поделиться

Is this article helpful for you?

Thank you for your feedback!

Вчера инженеры из Google, Microsoft и Mozilla (создатели Chrome, Edge и Firefox) объявили о том, что они работают над новой кросс-браузерной технологией под названием WebAssembly. Это очень радостная новость, так как это в значительной мере поспособствует улучшению Unity WebGL.

Хотя технически это определяется как новый независимый стандарт, с нашей точки зрения WebAssembly — это формат байт-кода для asm.js (asm.js используется для развертывания кода Unity на WebGL). По сравнению с используемыми в настоящее время текстовыми форматами, байт-код значительно снижает размер кода, составленный на asm.js. Это приводит к более быстрой загрузке кода, и, что более важно, дает возможность разобрать и скомпилировать код гораздо быстрее с меньшими затратами памяти. Это позволит улучшить время запуска крупного кода JavaScript и уменьшить его требования к памяти — два аспекта, о которых наиболее часто спрашивают разработчики, ориентированные на WebGL.

Мы планируем переключить Unity WebGL на вывод байт-кода сразу, как только будут выпущены браузеры с поддержкой WebAssembly. В браузерах, которые изначально не поддерживают эту функцию, байт-код может быть очень эффективно переведен в текстовый код asm.js, используя технологию JavaScript. Это в большинстве случаев по-прежнему способствует быстрой загрузке содержимого из-за улучшения времени загрузки.

Экспериментируя с прототип WebAssembly на сборке нашей демки AngryBots, мы увидели, что размер генерируемого кода JavaScript уменьшился с 19,0 Мб asm.js кода (при gzip-сжатии 4,1 Мб) до 6,3 Мб WebAssembly кода (при gzip-сжатии 3,0 Мб). Это означает, что объем данных, который браузер должен обработать, снизился в 3 раза, а при gzip-сжатии снизился в 1,4 раза. Результаты могут изменяться в зависимости от проекта, но мы ожидаем увидеть очень существенные улучшения, поэтому никому не придется беспокоиться о развертывании WebGL в Unity.

Для получения более подробной информации о WebAssembly см. FAQ здесь.

В свете этого заявления мы хотели бы дать дальнейшие обновления о текущем состоянии нашей работы над WebGL, изменениях в экосистеме, которые мы ожидаем в течение следующего года, и о том, над чем мы сейчас работаем, что включают в себя дальнейшее улучшение размера сборки, SIMD.js, Shared Array Buffers (которые добавляют поддержку потоков в JavaScript) и WebGL 2.0. Итак, я хотел бы пригласить вас обсудить наш роадмап WebGL в форуме этого поста, где имеется много дополнительной информации.

Если вы будете на Unite Europe в Амстердаме на следующей неделе, посмотрите мой доклад о WebGL в среду, или можете встретиться со мной, чтобы задать вопросы.

18 июня 2015 г. через Технологии | 2 мин. читать

Is this article helpful for you?

Thank you for your feedback!

Охваченные темы
Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.