包含此页的版本:
不含此页的版本:
GrabPass 是一种命令,用于创建一种特殊类型的 Pass,用于将帧缓冲区的内容抓取到纹理中。此纹理可用于后续通道,以执行基于图像的高级效果。
此命令可以显着增加 CPU 和 GPU 帧时间。通常,除了快速原型设计之外,您应避免使用此命令,并尝试以其他方式实现效果。如果您确实使用此命令,请尽量减少屏幕抓取作的次数;通过减少此命令的使用,或使用将屏幕抓取到命名纹理(如果适用)的签名。
| 功能名称 | 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息 请参阅术语表(URP) |
高清渲染管线 (HDRP) | 定制 SRP | 内置渲染管线 |
|---|---|---|---|---|
| 抓取通行证 | 不 | 不 | 不 | 是的 |
在 SubShader 块中使用此命令。
请注意,这两个不同的签名具有不同的功能和不同的性能影响。使用命名纹理可以显着减少屏幕抓取作,从而减少此资源密集型命令的影响。
| 签名 | 功能 |
|---|---|
GrabPass { } |
将帧缓冲区内容抓取到纹理中,您可以在同一子着色器中的后续通道中使用该纹理。 使用名称 _GrabTexture 引用纹理。 使用此签名 时,Unity 每次渲染包含此命令的批处理时都会抓取屏幕。这意味着 Unity 每帧可以多次抓取屏幕:每批一次。 |
GrabPass { "ExampleTextureName" } |
将帧缓冲区内容抓取到纹理中,你可以在同一帧中的后续通道中跨多个子着色器访问该纹理。 使用给定的名称引用纹理。 使用此签名 时,Unity 会在帧中首次获取屏幕,该批处理包含具有给定纹理名称的此命令。 |