Search Unity

Готовящийся к выходу релиз Unity 5.3 — 4-я версия Unity, которая поддерживает WebGL. За то время, которое прошло с того момента, как в Unity 5.0 была реализована поддержка WebGL в формате превью, мы проделали большую работу, и теперь мы хотим поделиться с вами новостями.

Изменения в Unity 5.3

Unity 5.3 предлагает много полезных для разработчиков на WebGL улучшений:

  • Для WebGL теперь можно использовать те же стандартные шейдеры Unity, что и для десктопов. Ранее Unity WebGL использовал упрощенную версию стандартного шейдера, созданного для мобильных устройств и использующего графическую библиотеку OpenGL ES 2.0. Теперь WebGL использует те же функции отражения, что и десктоп, благодаря чему качество материалов становится выше.
  • Поддержка мягких теней.
  • Unity WebGL позволяет делать сжатие, если сервер не сконфигурирован для этого. Ранее WebGL требовал установить веб-сервер, чтобы передавать клиенту gzip-файлы. В противном случае приходилось работать с несжатыми данными, загрузка которых требовала больше времени, чем нужно. Кроме того, это было сложно в настройке. Теперь наш WebGL автоматически загружает gzip-файлы, если веб-сервер не сконфигурирован для корректной работы со сжатыми данными. Затем он распаковывает gzip-файл в JavaScript на стороне клиента с небольшой задержкой на уровне протокола (который работает, если ваш веб-сервер сконфигурирован правильно). Благодаря этому вам не придется читать инструкции по работе с сервером, чтобы избежать неоправданно больших загрузок (С Размером загрузок можно ознакомиться здесь).
  • Файлы данных теперь могут быть сжаты памяти в формате LZ4. В WebGL у вас нет доступа к файловой системе. По этой причине мы храним все ваши ассеты в памяти все время. В Unity 5.3 данные ассетов в памяти будут сжаты в формат LZ4 и распакованы только при загрузке. Это значит, что данные ассетов будут занимать меньше места.
  • Файлы билдов WebGL теперь легче перемещать в другие urls. Все файлы, которые создаются в процессе создания билдов, теперь привязываются напрямую к файлу index.html. Таким образом, если вы хотите развернуть ваш билд на внешнем хостинге, процесс конфигурирования будет значительно проще, так как все urls, которые вам надо настроить, находятся в одном месте. (С  Перемещением файлов сборки можно познакомиться здесь).
  • Поддержка веб-камер. 5.3 предлагает поддержку классов  WebCamTexture, чтобы дать доступ к подключенным камерам в браузерах, поддерживающих getUserMedia API.
  • WebGL теперь является одной из целевых платформ в Unity Cloud Build. Тестирование игры/приложения теперь можно делать в браузере.
  • Улучшенная документация. К выходу 5.3 мы подготовили документацию по WebGL.  Нам было важно детально описать, что в настоящий момент не поддерживается платформой WebGL или поддерживается лишь в некоторых браузерах.
  • Многочисленное исправление ошибок. Unity 5.3 включает 28 исправлений, касающихся именно WebGL, и много других исправлений, которые полезны пользователям WebGL, но не относятся непосредственно к платформе. Кроме того, в релизах 5.2.x в виде патчей был выпущен ряд исправлений, касающихся именно WebGL, и теперь они являются частью 5.3.

WebGL официально становится целевой платформой Unity

До недавних пор WebGL в Unity был доступен как неподдерживаемая технология в версии превью. В Unity 5.3 WebGL становится официально поддерживаемой целевой платформой.  WebGL также становиться частью пакетов поддержки Premium и Enterprise Support.

Unity 5.3 предлагает разработчикам на WebGL много улучшений, о некоторых из которых мы сказали выше. WebGL в Unity прошел длинный путь с момента своего выхода в Unity 5.0. Аналогично за это же время улучшались и технологии браузеров. Например, Microsoft представил новый браузер Edge вWindows 10, который поддерживает asm.js и работает с контентом Unity WebGL значительно лучше, чем это делал Internet Explorer 11.

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

Работа с поставщиками браузеров

Наша технология развертывания под WebGL сильно зависит от веб-технологий поставщиков браузеров. Последние несколько лет мы тесно работаем со всеми основными поставщиками браузеров, чтобы внести свой вклад в усовершенствование технологий.

Директор Platform Product Management, Mozilla, Мартин Бест (Martin Best) сказал: «Mozilla рада видеть, что Unity делает следующий шаг и предоставляет полную поддержку WebGL. Мы являемся первопроходцами во многих веб-технологиях, таких как asm.js, WebGL и Emscripten. Мы тесно работаем с Unity и другими поставщиками браузеров, чтобы предложить лучший игровой опыт в вебе».

Дэвид Катуэ (David Catuhe), Principal Program Manager, Microsoft, который работает над Edge и Open Web Standards, отметил: «WebGL и asm.js в Microsoft Edge являются важной частью веб-опыта пользователей Windows 10. Поддерживая WebGL как целевую платформу, Unity позволяет разработчикам предоставлять нашим пользователям отличный игровой опыт в вебе. Это также отличная возможность для нас продолжать вместе улучшать WebGL, asm.js и другие технические возможности веб-платформ».

Брендон Джонс (Brandon Jones), Женьяо Мо (Zhenyao Mo) и Кен Расселл (Ken Russell) из команды WebGL Google Chrome выразили схожее для сообщества разработчиков мнение: «Поддержка Unity развертывания под HTML5 и WebGL является одним из наиболее захватывающих событий в экосистеме. Разработчики со всего мира создадут в вебе удивительный контент, используя инструменты Unity. Мы с нетерпением ждем улучшения производительности и функциональности веб-платформы, которая позволит создавать еще более увлекательные интерактивные приложения».

Ваша очередь

Мы верим, что Unity WebGL – это будущее игр в вебе. Станьте частью проектов, которые уже созданы с помощью Unity WebGL: Heroes Of ParagonSpider BoxBig Buck Hunter.

Что нужно, чтобы начать:

Комментарии закрыты.

  1. What’s up all, here every one is sharing these know-how, therefore it’s good to
    read this blog, and I used to pay a visit this weblog every day.

    My website quickbooks company file will not open

  2. Any closer on WebGL for Mobile device browsers?

  3. WebGL much improved!, but the camera in the web build ends up pointing down. Plays fine in the editor and loads correctly in the web build but as soon as the mouse enters the frame camera points down.

  4. I build game for WebGL, and shwadow still pixeled, not soft, why ?

  5. can you displAy interactive html content on a 3d quad?

    1. No. This would be nice, but there is currently no API to render arbitrary html to a canvas (which we could then upload as a texture), or to use arbitrary html elements as a source for WebGL texture uploads.

    2. You can with the 3rd party library Coherent: http://coherent-labs.com/

  6. 4k display on unity, 125 DPI there is nothing…

  7. Fantastic news, WebGL is going to be a big platform for us in our upcoming release, great to hear it has come in leaps and bounds in 5.3 :-)

  8. Good news!!
    I am interesting it.

  9. Luis Eduardo Nery Santos

    Декабрь 8, 2015 в 7:54 пп

    I Updating my Unity to 5.3. But the build modules managers are missing.

  10. Thanks Jonas for this update. WebGL is huge for us and we are absolutely excited what Unity is already bringing us today. 2016 will hopefully make haste with experimental webworkers+shared array buffers as that is the key feature that prevents us from porting our 3D GIS webapp to a (performant) WebGL app. Cheers for the Unity team with this milestone 5.3 release!

  11. Great News!

  12. What about high-level networking? Where’s the Roadmap? News?

    1. If you mean Networking specific to WebGL, there’s an overview here:
      http://docs.unity3d.com/530/Documentation/Manual/webgl-networking.html

  13. For the WebGL platform, What are the limitations of Asset bundles? Max # you can have in a project and max size of the bundles? Is there any update to the limits for these?

    1. There is no platform-specific limitation. Like everywhere else you will be limited by the available memory (which can vary between devices and browsers), by how fast the AssetBundles can be downloaded (which varies between different connections).

  14. «WebGL in Unity Cloud Build is now a platform option. Team members can directly test the game/application in the browser.» YYYAAAAAAAYYYY!!!! ^_^

  15. Hi.
    Can You share details on a time of day when it’s going to be released on 8 December ?
    And what timezone You’re using in Your road map, Pacific Time?
    Thanks.

    1. It is live now.

  16. Does this mean that those of us who have been working to get WebGL working on ARM based Chromebooks are going to see a performance hit as compared to the 5.2.x builds?

    1. Well that didn’t work. I had attempted to do a block quote cite of «The Unity Standard Shader now uses Desktop-quality reflection functions for WebGL.» but it didn’t work and I can’t edit the old message. Thus, my question is in the context of the standard shader feature.

      1. It depends. The version of the shader as it is used now does require more resources then the version used before (which was optimized for mobile OpenGLES 2.0 devices). So, if you are bound by shader fragment rate, the new shader may indeed be slower. Most likely, however, that is not your bottleneck running WebGL content a Chromebook.

  17. Right, and how about render texture support? This is preventing me from building my projects for webGL, and with the looming death of the Webplayer the situation is looking dire.

    1. What about render textures? They do work on WebGL just fine.

  18. Nice improvements! what about global illumination? any chance of using it in webgl builds?

    Thanks and great work!

    1. Baked GI works today. Realtime GI does not. The code is making heavy use of threads, so we’d either have to rewrite it to a single threaded model (and then see how bad it performs), or wait for proper threading support in JS.

      1. So web workers don’t work for your needs and it means you’ll need something like WebAssembly to implement correctly?

        1. WebWorkers don’t allow sharing of memory like threads do, so existing multi-threaded code does not really map to WebWorkers. There is a JS draft spec called Shared Array Buffers, which aims to fix this, but currently only exists in experimental implementations.

      2. Why do you guys keep saying «realtime GI»? Enlighten isn’t even close to realtime. It’s even less realtime than Beast because the bake times are much longer.

        1. I mean, it still doesn’t solve the issues with procedural generation. Iteration times are still gigantic. The only improvement is that the lights can change without baking. But if you change anything else, better prepare to wait several hours.

          Actual realtime GI would solve all those issues. I understand that it’s not practical to do right now, but calling Enlighten realtime is just misrepresenting it.

        2. It is pre-computed realtime GI, but it’s realtime GI nonetheless. It is the terminology they are using to clearly separate it from the baked version.