Unity 6.3
0 онлайн 102 гостей 3 в системе
Вход
Видео и скетчи Шаг 14 из 30

Введение в поддержку прозрачности видео в Unity

Альфа-прозрачность позволяет частям видео или последовательности изображений выглядеть полупрозрачными или полностью прозрачными.

Прозрачные видео полезны, если вы хотите создать накладки и визуальные эффекты, потому что вы можете слой видео в ваших Unity сцен.

Эта страница содержит обзор альфа-прозрачности, объясняет различные типы прозрачности в видео и описывает, как Unity обрабатывает и транскодирует альфа-значения для использования с прозрачными видео.

Альфа-значения

Значение альфа определяет уровень прозрачности видео или пикселя внутри видео.

Значения альфы могут принимать любое значение в диапазоне от 0 до 1 или от 0 до 255. Этот диапазон позволяет производить плавные и постепенные изменения прозрачности.

Значение Уровень прозрачности
Самый низкий (0) Изображение или пиксель полностью прозрачен.
Наибольшее (1 или 255) Изображение или пиксель полностью непрозрачен.
Промежуточные значения Изображение или пиксель частично прозрачен. Вы можете видеть как изображение, так и фон за ним одновременно.

Управляет ли значение альфы всем изображением видео или пикселем, зависит от типа значения: глобальное или на пиксель.

Прозрачность глобального альфа-значения

Компонент Video Player поддерживает глобальное значение альфы при воспроизведении контента в близких или отдаленных плоскостях камеры. При изменении этого значения каждый пиксель в видео изменяет прозрачность. Если вы установите значение 0.0f, все видео становится полностью прозрачным.

Инструкции по изменению прозрачности глобального альфа-значения см. в Изменение прозрачности всего видео (глобальная альфа).

Альфа-значение прозрачности на пиксель

Видео могут иметь альфа-значения на пиксель, что означает, что прозрачность может варьироваться по видеоизображению. Например, фон видео прозрачен, а объект на переднем плане непрозрачен.

Инструкции по импорту видео с альфа-изображением на пиксель см. в Изменение прозрачности пикселей в видео (альфа-изображение на пиксель).

Для прозрачных форматов, поддерживаемых Unity, см. Поддерживаемые кодеки для альфа-прозрачности на пиксель.

Как Unity транскодирует видео с альфа-значениями

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

  • Ваше видео имеет кодек VP8, но платформа, на которую вы хотите нацелиться, не поддерживает встроенную прозрачность VP8.
  • Вы хотите использовать кодек H.264, который не имеет встроенной поддержки альфа-значений.

При транскодировании видео с альфа-значениями (например, видео WebM), Unity упаковывает альфа-значения в цветовой поток. Этот процесс позволяет использовать прозрачные видео с H.264 и VP8.

Во время этого процесса Unity удвояет ширину изображения видео. Например, если у вас есть видео 1280 x 720 с альфа-значениями, внутренне это становится видео 2560 x 720.

После того, как Unity удвоит ширину видео, полученный файл содержит два раздела:

  • В левой половине хранится оригинальное (без альфы) изображение.
  • Правая половина хранит альфа-частицу в виде монохромного изображения.

Обе половины затем перепакуются шейдерами в RGBA, который создает окончательную текстуру в Видеоплеере. После этого видеовыход может отображать прозрачность. Чтобы получить список этих шейдеров (которые автоматически включаются в ваши сборки), перейдите в Project Настройки > Графика > Настройки шейдера > Видео.

Примечание: Этот процесс снижает максимальное разрешение видео. H.264 имеет типичное максимальное разрешение 4096 x 2304. Если вы импортируете видео с прозрачностью, которое имеет это разрешение, оно становится 8192 x 2304, что не удается, потому что большинство кодеров не поддерживают этот размер.

VP8 имеет максимальное разрешение 16383 x 16383, так что он скорее всего будет принимать эти более высокие разрешения. Но VP8 часто реализуется с помощью программного пути, который медленнее и может привести к низкой производительности при этих более высоких разрешениях.

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