版本: Unity 6 (6000.0)
语言英语
  • C#

CommandBuffer.CopyTexture

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每一个建议更改,并在必要时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void CopyTexture(Rendering.RenderTargetIdentifier src, Rendering.RenderTargetIdentifier dst);

声明

public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, Rendering.RenderTargetIdentifier dst, int dstElement);

声明

public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, int srcMip, Rendering.RenderTargetIdentifier dst, int dstElement, int dstMip);

声明

public void CopyTexture(Rendering.RenderTargetIdentifier src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, Rendering.RenderTargetIdentifier dst, int dstElement, int dstMip, int dstX, int dstY);

参数

src 源纹理或 RenderTargetIdentifier
dst 目标纹理或 RenderTargetIdentifier
srcElement 要从中复制的源纹理中的元素。例如,立方体贴图中的 CubemapFace 或纹理数组中的切片。如果 src 是 2D 纹理,则将该值设置为 0
srcMip 要从中复制的 mipmap 级别。范围为 0 到纹理的 Texture.mipmapCount。默认值为 0
dstElement 要复制到的源纹理中的元素。例如,立方体贴图中的 CubemapFace 或纹理数组中的切片。如果 `dst` 是 2D 纹理,则将该值设置为 0
dstMip 要写入的 mipmap 级别。范围为 0 到纹理的 Texture.mipmapCount。默认值为 0
srcX 要从中复制的 src 的起始 x 坐标。0 是纹理的左侧。
srcY 要从中复制的 src 的起始 y 坐标。0 是纹理的底部。
srcWidth 要复制的 src 的宽度。
srcHeight 要复制的 src 的高度。
dstX 要复制到的 dst 的 x 坐标。
dstY 要复制到的 dst 的 y 坐标。

描述

添加一个命令,将像素数据从一个纹理复制到另一个纹理。

此方法将一个命令添加到 GPU 上,以将像素数据从一个纹理复制到另一个纹理。如果您将 Texture.isReadable 设置为 true,以便 srcdst 纹理都可读,则该方法还会在 CPU 上复制像素数据。

如果您将 Texture.isReadable 设置为 false,则 CopyTexture 是复制纹理最快的方法之一。但是,要使用 CopyTexture,以下必须在源和目标纹理区域中相同

您可能能够根据图形 API 在不兼容的格式之间进行复制。例如,在某些 API 上,您可以在具有相同位宽的格式之间进行复制。

根据您的图形 API,您可能无法在不同类型的纹理之间进行复制。有关兼容性的更多信息,请参阅 SystemInfo.copyTextureSupportCopyTextureSupport

如果 src 是一个深度专用渲染纹理,则必须复制整个纹理,而不是其中的一部分。深度专用渲染纹理将其颜色缓冲区设置为 None颜色格式,并将深度缓冲区设置为有效的 RenderTexture.depthStencilFormat

压缩纹理格式对使用区域变体的 CopyTexture 添加了一些限制。例如,PVRTC 格式不支持,因为它们不是基于块的(对于这些格式,您只能复制整个纹理或整个 mipmap 级别)。对于基于块的格式(例如,DXT、ETC),区域大小和坐标必须是压缩块大小的倍数(对于 DXT 为 4 个像素)。

即使您将 Texture.isReadable 设置为 true,如果您只复制压缩纹理的一部分,则此方法不会在 CPU 上复制像素数据。

其他资源:Graphics.CopyTextureCopyTextureSupport