src | 源纹理。 |
dst | 目标纹理。 |
srcElement | 源纹理元素(立方体贴图面、纹理数组层或 3D 纹理深度切片)。 |
srcMip | 源纹理的 Mipmap 级别。 |
dstElement | 目标纹理元素(立方体贴图面、纹理阵列层或 3D 纹理深度切片)。 |
dstMip | 目标纹理的 Mipmap 级别。 |
srcX | 要复制的源纹理区域(左侧为零)的 X 坐标。 |
srcY | 要复制的源纹理区域(底部为零)的 Y 坐标。 |
srcWidth | 要复制的源纹理区域的宽度。 |
srcHeight | 要复制的源纹理区域的高度。 |
dstX | 目标纹理中的复制目标区域(左侧为零)的 X 坐标。 |
dstY | 目标纹理中的复制目标区域(底部为零)的 Y 坐标。 |
复制纹理内容。
该函数可在纹理之间高效复制像素数据。
此外,它还可以从元素(例如立方体贴图面)或特定的 Mip 级别以及纹理的子区域进行复制。
复制不进行任何缩放,也就是说,源和目标的大小必须相同。纹理格式应该兼容
(例如,TextureFormat.ARGB32 和 RenderTextureFormat.ARGB32 兼容)。有关格式兼容的确切规则因图形 API 而异;
一般说来,始终可以在完全相同的格式之间进行复制。
在某些平台(例如,D3D11)上,还可以在位宽度相同的格式之间进行复制。
Compressed texture formats add some restrictions to the CopyTexture with a region variant. For example, PVRTC formats
are not supported since they are not block-based (for these formats you can only copy whole texture or whole mip level).
For block-based formats (e.g. DXT, BCn, ETC), the region size and coordinates must be a multiple of compression block size
(4 pixels for DXT).
如果源和目标纹理都标记为“可读”(即系统内存中存在
用于 CPU 读取/写入的数据副本),这些函数也将复制它。
有些平台可能没有全部纹理复制的功能(例如,从渲染纹理
复制到常规纹理中)。请参阅 CopyTextureSupport 并使用
SystemInfo.copyTextureSupport 进行检查。
在 CopyTexture
之后调用 Texture2D.Apply、Texture2DArray.Apply 或 Texture3D.Apply 会产生未定义的结果,因为 CopyTexture
以独占方式对 GPU 端数据进行操作,而 Apply
会将数据从 CPU 端传输到 GPU 端。
另请参阅:CopyTextureSupport。