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