自定义渲染纹理是对渲染纹理的扩展,它允许您使用着色器直接渲染到纹理。
自定义渲染纹理是对渲染纹理的扩展,它允许您使用着色器更新纹理,然后在常规材质中使用它。这对于实现各种复杂的模拟很有用,例如:水光学现象、雨滴效果的波纹模拟或液体溅到墙壁上的效果。还提供了脚本和着色器框架来帮助处理更复杂的配置,例如部分或多遍更新以及不同的更新频率。
cubemapFaceMask | 您可以使用此位域来启用或禁用对每个立方体贴图面的更新。从最低位到最高位的位顺序如下:+X、-X、+Y、-Y、+Z、-Z。 |
doubleBuffered | 将此参数设置为 true 时,Unity 会对自定义渲染纹理进行双缓冲,以便您可以在其自身更新期间访问它。 |
initializationColor | Unity 用于初始化自定义渲染纹理的颜色。如果设置了初始化材质,Unity 会忽略此参数。 |
initializationMaterial | Unity 用于初始化自定义渲染纹理的材质。如果设置了此参数,则会忽略初始化纹理和颜色。 |
initializationMode | 确定 Unity 如何初始化纹理。 |
initializationSource | 确定 Unity 是否使用纹理和颜色或材质来初始化自定义渲染纹理。 |
initializationTexture | Unity 用于初始化自定义渲染纹理的纹理,乘以初始化颜色。如果设置了初始化材质,Unity 会忽略此参数。 |
material | Unity 用于初始化自定义渲染纹理内容的材质。 |
shaderPass | Unity 用于更新自定义渲染纹理的着色器通道。 |
updateMode | 确定 Unity 如何更新自定义渲染纹理。 |
updatePeriod | Unity 更新实时自定义渲染纹理的周期(以秒为单位)。值为 0.0 表示 Unity 每帧更新实时自定义渲染纹理。 |
updateZoneSpace | Unity 中表示更新区域的空间。您可以将其设置为归一化空间或像素空间。 |
wrapUpdateZones | 将此参数设置为 true 时,Unity 会将更新区域环绕自定义渲染纹理的边界。否则,Unity 会在自定义渲染纹理的边界处裁剪更新区域。 |
CustomRenderTexture | 创建新的自定义渲染纹理。 |
ClearUpdateZones | 清除所有更新区域。 |
EnsureDoubleBufferConsistency | 更新自定义渲染纹理用于双缓冲的内部渲染纹理,使其与自定义渲染纹理的大小和格式匹配。 |
GetDoubleBufferRenderTexture | 获取此自定义渲染纹理用于双缓冲的渲染纹理。 |
GetUpdateZones | 返回更新区域列表。 |
Initialize | 在下一帧开始时初始化自定义渲染纹理。Unity 会在 /CustomRenderTexture.Update/ 之前调用 /Initialise/。 |
SetUpdateZones | 设置自定义渲染纹理的更新区域列表。 |
Update | 触发自定义渲染纹理的更新。 |
active | 当前活动的渲染纹理。 |
allowThreadedTextureCreation | 允许 Unity 内部在任何线程(而不是专用渲染线程)上执行纹理创建。 |
currentTextureMemory | 场景中所有纹理使用的内存量。 |
desiredTextureMemory | Unity 加载的纹理的总大小(以字节为单位),前提是没有其他约束。在 Unity 加载任何纹理之前,它会应用内存预算,如果纹理大小超出其值,则会降低加载的纹理分辨率。desiredTextureMemory 值会考虑 Unity 请求或手动设置的mipmap 级别。例如,如果 Unity 由于纹理距离很远或其请求的 mipmap 级别大于 0 而未以全分辨率加载纹理,则 Unity 会降低 desiredTextureMemory 值以匹配所需的总内存量。desiredTextureMemory 值可能大于 Texture.targetTextureMemory 值。 |
GenerateAllMips | 可与接受 mip 数量的纹理构造函数一起使用,以指示应生成所有 mip。 |
nonStreamingTextureCount | 场景中非流式纹理的数量。这包括 Texture2D 和 CubeMap 纹理的实例。这并不包括任何其他纹理类型,也不包括 Unity 内部创建的 2D 和 CubeMap 纹理。 |
nonStreamingTextureMemory | Unity 为场景中的非流式纹理分配的内存量。这仅包括 Texture2D 和 CubeMap 纹理的实例。这并不包括任何其他纹理类型,也不包括 Unity 内部创建的 2D 和 CubeMap 纹理。 |
streamingMipmapUploadCount | 由于纹理 mipmap 流式传输,纹理被上传的次数。 |
streamingRendererCount | 向纹理流式传输系统注册的渲染器数量。 |
streamingTextureCount | 流式纹理的数量。 |
streamingTextureDiscardUnusedMips | 此属性强制流式传输纹理系统丢弃所有未使用的 mipmap,而不是将它们缓存,直到纹理内存预算被超出。这在您分析或编写测试以保持内存中可预测的纹理集时很有用。 |
streamingTextureForceLoadAll | 强制流式传输纹理加载所有 mipmap 级别。 |
streamingTextureLoadingCount | 当前正在加载 mipmap 的流式传输纹理的数量。 |
streamingTexturePendingLoadCount | 待加载的流式传输纹理的 mipmap 数量。 |
targetTextureMemory | Unity 在应用内存预算并完成纹理加载后分配给场景中的纹理的总纹理内存量。`targetTextureMemory`还会考虑 mipmap 流式传输设置。此值仅包括 Texture2D 和 CubeMap 纹理的实例。此值并不包括任何其他纹理类型,也不包括 Unity 内部创建的 2D 和 CubeMap 纹理。 |
totalTextureMemory | 如果 Unity 以 mipmap 级别 0 加载所有纹理,则 Unity 将使用的总纹理内存量。这是一个理论值,没有考虑来自流式传输系统的任何输入或任何其他输入,例如当您手动设置`Texture2D.requestedMipmapLevel`时。要查看考虑输入的纹理内存值,请使用`desiredTextureMemory`.`totalTextureMemory`仅包括 Texture2D 和 CubeMap 纹理的实例。此值并不包括任何其他纹理类型,也不包括 Unity 内部创建的 2D 和 CubeMap 纹理。 |
hideFlags | 对象是否应该隐藏、与场景一起保存或用户可修改? |
name | 对象的名称。 |
antiAliasing | 渲染纹理的反锯齿级别。 |
autoGenerateMips | 设置此标志后,会自动生成 mipmap 级别。 |
bindTextureMS | 如果为 true 且反锯齿大于 1,则默认情况下不会解析渲染纹理。如果需要将渲染纹理绑定为着色器中的多重采样纹理,请使用它。 |
colorBuffer | 渲染纹理的颜色缓冲区(只读)。 |
depth | 渲染纹理深度缓冲区的精度(以位为单位)(支持 0、16、24 和 32)。 |
depthBuffer | 渲染纹理的深度/模板缓冲区(只读)。 |
depthStencilFormat | 深度/模板缓冲区的格式。 |
descriptor | 此结构包含创建渲染纹理所需的所有信息。它可以被复制、缓存和重复使用,以便轻松创建共享相同属性的所有渲染纹理。 |
dimension | 渲染纹理的维度(类型)。 |
enableRandomWrite | 在着色器模型 5.0 级着色器上启用对该渲染纹理的随机访问写入。 |
graphicsFormat | 渲染纹理的颜色格式。您可以将颜色格式设置为 None 以实现仅深度渲染。 |
height | 渲染纹理的高度(以像素为单位)。 |
memorylessMode | 渲染纹理无内存模式属性。 |
sRGB | 此渲染纹理是否使用 sRGB 读/写转换?(只读)。 |
stencilFormat | 您可以封装在 RenderTexture 中的模板数据的格式。指定此属性会为 RenderTexture 创建一个模板元素并设置其格式。这允许将模板数据绑定为所有支持它的平台上的所有着色器类型的纹理。此属性不会指定模板缓冲区的格式,模板缓冲区的格式受 RenderTexture.depth 中指定的深度缓冲区格式的约束。当前,大多数平台仅支持 R8_UInt(DirectX11、DirectX12),而 PS4 还支持 R8_UNorm。 |
useDynamicScale | 将此标志设置为 true 时,渲染纹理设置为由动态分辨率系统使用。 |
useDynamicScaleExplicit | 将此标志设置为 true 时,渲染纹理设置为由动态分辨率系统使用。通过显式调用 ApplyDynamicScale 应用缩放。 |
useMipMap | 设置此标志后,渲染纹理具有 mipmap。 |
volumeDepth | 3D 渲染纹理的体积范围或数组纹理的切片数量。 |
vrUsage | 如果此 RenderTexture 是立体声渲染中使用的 VR 眼睛纹理,则此属性决定是否执行任何特殊渲染。 |
width | 渲染纹理的宽度(以像素为单位)。 |
anisoLevel | 定义纹理的各向异性过滤级别。 |
filterMode | 纹理的过滤模式。 |
graphicsTexture | 代表上传到图形设备的纹理资源的 GraphicsTexture(只读)。 |
imageContentsHash | 纹理的哈希值。 |
isDataSRGB | 如果纹理像素数据位于 sRGB 颜色空间,则返回 true(只读)。 |
isReadable | Unity 是否在 CPU 可寻址内存中存储此纹理像素数据的附加副本。 |
mipMapBias | 纹理的 mipmap 偏差。 |
mipmapCount | 此纹理中包含的mipmap级别数量(只读)。 |
updateCount | 纹理更新时,此计数器会递增。 |
wrapMode | 纹理坐标环绕模式。 |
wrapModeU | 纹理U坐标环绕模式。 |
wrapModeV | 纹理V坐标环绕模式。 |
wrapModeW | 纹理3D的纹理W坐标环绕模式。 |
GetInstanceID | 获取对象的实例ID。 |
ToString | 返回对象的名称。 |
ApplyDynamicScale | 应用动态分辨率系统缩放。 |
ConvertToEquirect | 将渲染纹理转换为等矩形格式(立体声或单声道等矩形)。左眼将占据上半部分,右眼将占据下半部分。单声道版本将占据整个纹理。纹理尺寸必须是 TextureDimension.Cube 类型。 |
Create | 实际创建渲染纹理。 |
DiscardContents | 提示GPU驱动程序渲染纹理的内容将不会被使用。 |
GenerateMips | 生成渲染纹理的mipmap级别。 |
GetNativeDepthBufferPtr | 检索指向深度缓冲区资源的原生(底层图形API)指针。 |
IsCreated | 渲染纹理是否已实际创建? |
Release | 释放渲染纹理。 |
ResolveAntiAliasedSurface | 强制解析抗锯齿渲染纹理。 |
SetGlobalShaderProperty | 将此渲染纹理分配给名为 propertyName 的全局着色器属性。 |
GetNativeTexturePtr | 检索指向纹理资源的原生(底层图形API)指针。 |
IncrementUpdateCount | 递增更新计数器。 |
Destroy | 删除游戏对象、组件或资源。 |
DestroyImmediate | 立即销毁对象obj。强烈建议使用Destroy代替。 |
DontDestroyOnLoad | 加载新场景时,不要销毁目标对象。 |
FindAnyObjectByType | 检索任何类型为type的活动加载对象。 |
FindFirstObjectByType | 检索类型为type的第一个活动加载对象。 |
FindObjectsByType | 检索所有类型为type的加载对象列表。 |
Instantiate | 克隆对象original并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某些游戏对象相关)的快照,并返回AsyncInstantiateOperation。 |
GetTemporary | 分配一个临时渲染纹理。 |
ReleaseTemporary | 释放使用GetTemporary分配的临时纹理。 |
SupportsStencil | 渲染纹理是否具有模板缓冲区? |
SetGlobalAnisotropicFilteringLimits | 设置各向异性限制。 |
SetStreamingTextureMaterialDebugProperties | 此函数在mipmap流系统已知的材料上设置mipmap流调试属性。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,查看它们是否引用同一个对象。 |