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

RenderTexture

UnityEngine 中的类

/

继承自:Texture

/

实现于:UnityEngine.CoreModule

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

渲染纹理是可以渲染到的纹理。

它们可以用于实现基于图像的渲染效果、动态阴影、投影仪、反射或监控摄像头。

渲染纹理的一种典型用法是将其设置为相机的“目标纹理”属性(Camera.targetTexture),这将使相机渲染到纹理中,而不是渲染到屏幕上。

请记住,渲染纹理内容可能会在某些事件中“丢失”,例如加载新关卡、系统进入屏幕保护程序模式、全屏模式进出等等。发生这种情况时,现有的渲染纹理将再次变为“未创建”,您可以使用 IsCreated 函数检查这种情况。

与其他“原生引擎对象”类型一样,重要的是要注意任何渲染纹理的生命周期,并在使用完它们后使用 Release 函数释放它们,因为它们不会像普通托管类型那样被垃圾回收。

渲染纹理只在 GPU 上具有数据表示,您需要使用 Texture2D.ReadPixels 将其内容传输到 CPU 内存。

新创建的渲染纹理的初始内容是未定义的。在某些平台和 API 上,内容将默认设置为黑色,但您不应该依赖于此。您可以使用 LoadStoreActionDebugModeSettings 来突出显示显示屏中未定义的区域,这有助于您在构建的应用程序中调试渲染问题。

其他资源:Camera.targetTexture

静态属性

active当前活动的渲染纹理。

属性

antiAliasingRenderTexture 的抗锯齿级别。
autoGenerateMips设置此标志时,将自动生成mipmap 级别。
bindTextureMS如果为 true 且抗锯齿大于 1,则默认情况下不会解析渲染纹理。如果渲染纹理需要在着色器中绑定为多重采样纹理,请使用此选项。
colorBuffer渲染纹理的颜色缓冲区(只读)。
depth渲染纹理深度缓冲区的精度(位数)(支持 0、16、24 和 32)。
depthBuffer渲染纹理的深度/模板缓冲区(只读)。
depthStencilFormat深度/模板缓冲区的格式。
descriptor此结构包含创建 RenderTexture 所需的所有信息。它可以被复制、缓存和重复使用,以轻松创建共享相同属性的 RenderTexture。
dimension渲染纹理的维数(类型)。
enableRandomWrite在 Shader Model 5.0 级别的着色器中启用对该渲染纹理的随机访问写入。
graphicsFormat渲染纹理的颜色格式。您可以将颜色格式设置为 None 以实现仅深度渲染。
height渲染纹理的高度(以像素为单位)。
memorylessMode渲染纹理无内存模式属性。
sRGB该渲染纹理是否使用 sRGB 读/写转换?(只读)。
stencilFormat您可以封装在 RenderTexture 中的模板数据的格式。指定此属性将为 RenderTexture 创建一个模板元素并设置其格式。这允许将模板数据绑定为 Texture 到支持它的所有平台的所有着色器类型。此属性不指定模板缓冲区的格式,该格式受 RenderTexture.depth 中指定的深度缓冲区格式的约束。目前,大多数平台只支持 R8_UInt(DirectX11、DirectX12),而 PS4 还支持 R8_UNorm。
useDynamicScale当此标志设置为 true 时,渲染纹理被设置为用于动态分辨率系统。
useDynamicScaleExplicit当此标志设置为 true 时,渲染纹理被设置为用于动态分辨率系统。缩放通过显式调用 ApplyDynamicScale 应用。
useMipMap设置此标志时,渲染纹理具有 mipmap。
volumeDepth3D 渲染纹理的体积范围或数组纹理的切片数。
vrUsage如果此 RenderTexture 是立体渲染中使用的 VR 眼睛纹理,则此属性决定是否执行任何特殊渲染。
width渲染纹理的宽度(以像素为单位)。

构造函数

RenderTexture创建一个新的 RenderTexture 对象。

公共方法

ApplyDynamicScale应用动态分辨率系统缩放。
ConvertToEquirect将渲染纹理转换为等距格式(立体或单眼等距)。左眼将占据上半部分,右眼将占据下半部分。单眼版本将占据整个纹理。纹理维数必须为 TextureDimension.Cube 类型。
Create实际创建 RenderTexture。
DiscardContents提示 GPU 驱动程序 RenderTexture 的内容将不会被使用。
GenerateMips生成渲染纹理的 mipmap 级别。
GetNativeDepthBufferPtr检索指向深度缓冲区资源的原生(底层图形 API)指针。
IsCreated渲染纹理是否实际创建了?
Release释放 RenderTexture。
ResolveAntiAliasedSurface强制解析抗锯齿渲染纹理。
SetGlobalShaderProperty将此 RenderTexture 赋值为名为 propertyName 的全局着色器属性。

静态方法

GetTemporary分配一个临时渲染纹理。
ReleaseTemporary释放使用 GetTemporary 分配的临时纹理。
SupportsStencilRenderTexture 是否有模板缓冲区?

继承的成员

静态属性

allowThreadedTextureCreation允许 Unity 内部在任何线程(而不是专用渲染线程)上执行纹理创建。
currentTextureMemory场景中所有 Texture 使用的内存量。
desiredTextureMemoryUnity 加载的 Texture 的总大小(以字节为单位),如果没有其他约束。在 Unity 加载任何 Texture 之前,它会应用内存预算,如果 Texture 大小超过其值,则会降低加载的 Texture 分辨率。desiredTextureMemory 值会考虑 Unity 请求或手动设置的 mipmap 级别。例如,如果 Unity 由于距离较远或请求的 mipmap 级别大于 0 而不以全分辨率加载 Texture,则 Unity 会降低 desiredTextureMemory 值以匹配所需的总内存。desiredTextureMemory 值可能大于 Texture.targetTextureMemory 值。
GenerateAllMips可用于接受 mip 计数的 Texture 构造函数,以指示应生成所有 mip。此字段的值为 -1。
nonStreamingTextureCount场景中非流式 Texture 的数量。这包括 Texture2D 和 CubeMap Texture 的实例。这并不包括任何其他 Texture 类型,也不包括 Unity 在内部创建的 2D 和 CubeMap Texture。
nonStreamingTextureMemoryUnity 为场景中的非流式 Texture 分配的内存量。这仅包括 Texture2D 和 CubeMap Texture 的实例。这并不包括任何其他 Texture 类型,也不包括 Unity 在内部创建的 2D 和 CubeMap Texture。
streamingMipmapUploadCount由于 Texture mipmap 流式传输而上传 Texture 的次数。
streamingRendererCount在 Texture 流式传输系统中注册的渲染器的数量。
streamingTextureCount流式 Texture 的数量。
streamingTextureDiscardUnusedMips此属性强制流式传输 Texture 系统丢弃所有未使用的 mipmap,而不是在超出 Texture 内存预算之前缓存它们。这在您分析或编写测试以保持可预测的 Texture 集在内存中时很有用。
streamingTextureForceLoadAll强制流式传输 Texture 加载所有 mipmap 级别。
streamingTextureLoadingCount当前正在加载 mipmap 的流式 Texture 的数量。
streamingTexturePendingLoadCount待加载的流式 Texture 的 mipmap 数量。
targetTextureMemoryUnity 在应用内存预算并完成 Texture 加载后,为场景中的 Texture 分配的 Texture 内存总量。`targetTextureMemory`还会考虑 mipmap 流式传输设置。此值仅包括 Texture2D 和 CubeMap Texture 的实例。此值不包括任何其他 Texture 类型,也不包括 Unity 在内部创建的 2D 和 CubeMap Texture。
totalTextureMemory如果 Unity 以 mipmap 级别 0 加载所有 Texture,则 Unity 将使用的 Texture 内存总量。这是一个理论值,不会考虑来自流式传输系统或任何其他输入的任何输入,例如,当您手动设置`Texture2D.requestedMipmapLevel` 时。要查看考虑了输入的 Texture 内存值,请使用`desiredTextureMemory`.`totalTextureMemory`仅包括 Texture2D 和 CubeMap Texture 的实例。此值不包括任何其他 Texture 类型,也不包括 Unity 在内部创建的 2D 和 CubeMap Texture。

属性

hideFlags对象是否应隐藏、与场景一起保存或由用户修改?
name对象的名称。
anisoLevel定义 Texture 的各向异性过滤级别。
dimensionTexture 的维数(类型)(只读)。
filterModeTexture 的过滤模式。
graphicsFormat返回 Texture 对象的 GraphicsFormat 格式或颜色格式。
graphicsTexture表示上传到图形设备的纹理资源的 GraphicsTexture(只读)。
heightTexture 的高度(以像素为单位)(只读)。
imageContentsHashTexture 的哈希值。
isDataSRGB如果纹理像素数据位于 sRGB 颜色空间,则返回 true(只读)。
isReadableUnity 是否在 CPU 可寻址内存中存储此纹理的像素数据的额外副本。
mipMapBiasTexture 的 mipmap 偏差。
mipmapCount此 Texture 中有多少个 mipmap 级别(只读)。
updateCount更新 Texture 时,此计数器将递增。
widthTexture 的宽度(以像素为单位)(只读)。
wrapMode纹理坐标包装模式。
wrapModeU纹理 U 坐标包装模式。
wrapModeV纹理 V 坐标包装模式。
wrapModeWTexture3D 的纹理 W 坐标包装模式。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。
GetNativeTexturePtr检索指向 Texture 资源的原生(底层图形 API)指针。
IncrementUpdateCount递增更新计数器。

静态方法

Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索任何已加载的类型为 type 的活动对象。
FindFirstObjectByType检索第一个已加载的类型为 type 的活动对象。
FindObjectsByType检索所有已加载的类型为 type 的对象列表。
Instantiate克隆原始对象并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照并返回 AsyncInstantiateOperation。
SetGlobalAnisotropicFilteringLimits设置各向异性限制。
SetStreamingTextureMaterialDebugProperties此函数在 mipmap 流式传输系统已知的材质上设置 mipmap 流式传输调试属性。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,查看它们是否引用同一个对象。