src | 源纹理。纹理必须是 Texture2D 或 Cubemap。 |
dst | 目标纹理。纹理必须是 Texture2D、Texture2DArray、Cubemap 或 CubemapArray。纹理还必须未压缩,并对应于受支持的 RenderTextureFormat。 |
srcElement | 要从中复制的源纹理中的元素。如果 src 是 Cubemap,则使用 CubemapFace。如果 src 是 2D 纹理,则将值设置为 0 。 |
dstElement | 要复制到的源纹理中的元素。例如,Cubemap 中的 CubemapFace 或纹理数组中的切片。如果 `dst` 是 2D 纹理,则将值设置为 0 。 |
添加一个命令来复制一个纹理中的像素数据,将数据转换为不同的格式,并将其复制到另一个纹理中。
此方法添加一个命令,用于在 GPU 上将一个纹理的像素数据转换为另一种格式并复制到另一个纹理。
当您使用 ConvertTexture
时,Unity 会执行以下操作
dst
纹理的大小和格式匹配的临时 RenderTexture。src
纹理复制到临时渲染纹理,并转换为 dst
的格式。dst
纹理。这意味着在将纹理加载到 Unity 之前转换它可能会更快。或者,如果您可以在渲染纹理中创建 dst
,则可以使用 CommandBuffer.Blit 代替。
您可以对 src
和 dst
使用不同大小的纹理。ConvertTexture
不支持以下转换
如果您在 MacOS 上使用 OpenGL,则无法使用 ConvertTexture
。根据您的图形 API,您可能无法执行某些类型的转换。有关兼容性的更多信息,请参阅 SystemInfo.copyTextureSupport、CopyTextureSupport 和 CommandBuffer.CopyTexture。
要将转换后的纹理从 GPU 复制到 CPU,请使用 Texture2D.RequestIntoNativeArray。
其他资源:CopyTextureSupport。