Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход
Разработка платформы Шаг 309 из 387

WebGL2

WebGL — это API для рендеринга графики в веб-браузерах, который основан на функциональности графической библиотеки OpenGL ES. WebGL 2.0 (WebGL2) — это версия WebGL, которую поддерживает Unity. WebGL2 почти совпадает с функциональностью OpenGL ES 3.0.

WebGL2 широко используется большинством браузеров и является веб-графикой по умолчанию API в Unity.

Рекомендации для WebGL2

Существуют рекомендации и ограничения для работы с WebGL2:

Рекомендация для камеры ясно

По умолчанию Unity Web очищает буфер рисования после каждого кадра, что означает, что содержимое буфера кадров очищается независимо от настройки Camera.clearFlags. Однако вы можете изменить это поведение во время экземплярирования. Для этого установите webglContextAttributes.preserveDrawingBuffer на true в файле index.html вашего веб-шаблона.

Примечание : Если вы устанавливаете какие-либо атрибуты контекста WebGL, вы также должны добавить строку для сохранения Power Preference Настройка плеера.

script.onload = () => {
  config['webglContextAttributes'] = {
    preserveDrawingBuffer: true, //Add this line to preserve the Camera.clearFlags setting
    powerPreference: {{{ WEBGL_POWER_PREFERENCE }}} //Add this line to preserve the Power Preference Player setting
  };
  createUnityInstance(canvas, config, (progress) => {

Включить сглаживание

WebGL поддерживает сглаживание на большинстве (но не на всех) комбинациях браузеров и GPUs. Сглаживание смягчает зубчатые края в вашей сцене.

Чтобы включить сглаживание:

  1. Перейдите в Настройки качества (меню: Изменить > Project Настройки, затем выберите категорию Качество).

  2. В разделе Рендеринг убедитесь, что Anti Aliasing не установлен на Инвалиды.

Дополнительные сведения о сглаживании см. в Документация по сглаживанию и Настройки качества.

Ограничения на веб-код шейдера

Спецификация WebGL 2.0 налагает некоторые ограничения на код шейдера OpenGL Shading Language (GLSL). Это особенно актуально, если вы пишете собственные шейдеры. Квалификаторы точности WebGL 2.0 требуют, чтобы вы указали точность всех переменных в шейдере. Вы можете использовать highp, mediumpили lowp для указания точности переменной. Если вы не указываете точность, шейдер будет использовать точность по умолчанию, которая равна mediump. Вы также можете использовать точность для указания точности блока переменных.

Рекомендации по использованию шрифтов в вебе

Unity Web поддерживает динамическое отображение шрифтов, подобно другим платформам Unity. Однако Unity Web не имеет доступа к шрифтам, установленным на компьютере пользователя, так что если вы хотите использовать какие-либо шрифты, включите их в папку проекта (включая любые резервные шрифты для международных символов или жирные/курсивные версии шрифтов) и установите в качестве резервных имен шрифтов.

Ограничения на глобальное освещение в Интернете

Unity Web только поддерживает Запеченное глобальное освещение. Realtime Global Illumination в настоящее время не поддерживается в Web. Кроме того, Unity Web поддерживает только ненаправленные lightmaps.

Рекомендации по использованию видео в Интернете

Вы не можете использовать VideoClipImporter для импортирования видеоклипов в ваш проект Unity, поскольку это может увеличить размер первоначальной загрузки данных ассета и воспрепятствовать потоковой передаче по сети.

  1. Используйте параметр URL в компоненте VideoPlayer.
  2. Поместите ресурс в каталог StreamingAssets, чтобы использовать встроенную сетевую потоковую передачу браузера.

Ограничения на варианты шейдеров в Веб

Из-за ограниченной памяти в Web, не включайте нежелательные варианты шейдеров, так как это может привести к ненужному использованию памяти. Поэтому рекомендуется ознакомиться с варианты шейдеров и шейдер стрипинг. Кроме того, убедитесь, что вы не добавляете шейдеры со слишком большим количеством вариантов (например, Unity’s Стандартный шейдер) к Всегда включённые шейдеры раздел в Настройки графики.

Дополнительные ресурсы