Version: 6000.3
语言: 中文
ShaderLab 参考中的 UsePass 指令
传入 ShaderLab 参考

ShaderLab 参考中的 GrabPass 指令

GrabPass 是一种命令,用于创建一种特殊类型的 Pass,用于将帧缓冲区的内容抓取到纹理中。此纹理可用于后续通道,以执行基于图像的高级效果。

此命令可以显着增加 CPU 和 GPU 帧时间。通常,除了快速原型设计之外,您应避免使用此命令,并尝试以其他方式实现效果。如果您确实使用此命令,请尽量减少屏幕抓取作的次数;通过减少此命令的使用,或使用将屏幕抓取到命名纹理(如果适用)的签名。

渲染管线兼容性

功能名称 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP)
高清渲染管线 (HDRP) 定制 SRP 内置渲染管线
抓取通行证 是的

语法

在 SubShader 块中使用此命令。

请注意,这两个不同的签名具有不同的功能和不同的性能影响。使用命名纹理可以显着减少屏幕抓取作,从而减少此资源密集型命令的影响。

签名 功能
GrabPass { } 将帧缓冲区内容抓取到纹理中,您可以在同一子着色器中的后续通道中使用该纹理。

使用名称 _GrabTexture 引用纹理。
使用此签名
时,Unity 每次渲染包含此命令的批处理时都会抓取屏幕。这意味着 Unity 每帧可以多次抓取屏幕:每批一次。
GrabPass { "ExampleTextureName" } 将帧缓冲区内容抓取到纹理中,你可以在同一帧中的后续通道中跨多个子着色器访问该纹理。

使用给定的名称引用纹理。
使用此签名
时,Unity 会在帧中首次获取屏幕,该批处理包含具有给定纹理名称的此命令。

其他资源

ShaderLab 参考中的 UsePass 指令
传入 ShaderLab 参考