Version: 6000.3
语言: 中文
视频透明度支持
透明视频支持的编解码器(每像素 alpha)

Unity 中的视频透明度支持简介

Alpha 透明度允许视频或图像序列的某些部分显示为半透明或完全透明。

如果您想创建叠加层和视觉效果,透明视频非常有用,因为您可以在 Unity 中对视频进行分层场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分部分设计和构建游戏。更多信息
请参阅术语表
.

本页概述了 alpha 透明度,解释了视频中不同类型的透明度,并描述了 Unity 如何处理和转码 alpha 值以用于透明视频。

Alpha 值

alpha 值确定视频的透明度级别或像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
在视频中。

Alpha 值可以采用 0 到 1 或 0 到 255 范围内的任何值。此范围允许透明度的平滑和渐进变化。

价值 透明度级别
最低 (0) 图像或像素是完全透明的。
最高(1 或 255) 图像或像素完全不透明。
中间值 图像或像素部分透明。您可以同时查看图像及其后面的背景。

alpha 值是控制整个视频的图像还是像素取决于值的类型:全局或每像素。

全局 alpha 值透明度

视频播放器组件在播放相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
的近平面或远平面。更改此值时,视频中的每个像素都会更改透明度。如果将值设置为0.0f,整个视频变得完全透明。

有关如何更改全局 Alpha 值透明度的说明,请参阅更改整个视频的透明度(全局 Alpha)。

每像素 alpha 值透明度

视频可以具有每像素的 alpha 值,这意味着透明度可能会在视频图像中有所不同。例如,视频的背景是透明的,而前景中的对象是不透明的。

有关如何导入每像素 Alpha 视频的说明,请参阅更改视频中像素的透明度(每像素 Alpha)。

有关 Unity 支持的透明格式,请参阅支持的每像素 alpha 透明度编解码器

Unity 如何使用 alpha 值对视频进行转码

在 Unity 中使用透明视频时,在某些情况下,可能需要对视频进行转码,以确保其支持使用 alpha 值。如果出现以下情况,则需要对视频进行转码:

  • 您的视频具有 VP8 编解码器,但您要定位的平台不支持 VP8 的内置透明度。
  • 您想要使用 H.264 编解码器,该编解码器没有对 alpha 值的内置支持。

当您对具有 alpha 值的视频(例如 WebM 视频)进行转码时,Unity 会将 alpha 值打包到颜色流中。此过程允许您将透明视频与 H.264 和 VP8 一起使用。

在此过程中,Unity 会将视频的图像宽度加倍。例如,如果您有一个带有 alpha 值的 1280 x 720 视频,则在内部这将成为 2560 x 720 视频。

将视频宽度加倍后,生成的文件包含两个部分:

  • 左半部分存储原始(不带 alpha)图像。
  • 右半部分将 alpha 存储为单色图像。

然后,着色器将两半重新打包到 RGBA 中,从而在视频播放器中生成最终纹理。之后,视频输出可以显示透明度。有关这些着色器(自动包含在构建中的)的列表,请转到 项目设置(Project Settings) > 图形(Graphics) > 着色器设置(Shader Settings) > 视频(Video)。

注意:此过程会降低视频可以具有的最大分辨率。H.264 的典型最大分辨率为 4096 x 2304。如果导入具有此分辨率的透明度视频,则视频将变为 8192 x 2304,这会失败,因为大多数编码器不支持此大小。

VP8 的最大分辨率为 16383 x 16383,因此更有可能接受这些更高的分辨率。但 VP8 通常使用纯软件路径实现,这速度较慢,并且可能会导致在这些较高分辨率下性能低下。

其他资源

视频透明度支持
透明视频支持的编解码器(每像素 alpha)