3d (如何)着色器可以查看当前渲染缓冲区?

3d (如何)着色器可以查看当前渲染缓冲区?,3d,glsl,hlsl,shader,cg,3d,Glsl,Hlsl,Shader,Cg,像素着色器是否可以查看深度/颜色/模具缓冲区的当前状态?片段着色器没有为其正在处理的片段指定当前缓冲区值。尝试将这些缓冲区用作纹理来读取这些值,在一般情况下不会产生合理的结果。这是“未定义的行为” 在某些特定情况下,它可以发挥作用 首先,你可以使用。这在技术上是NVIDIA的扩展,但ATI也广泛支持它。屏障基本上是缓存刷新。它允许您将当前渲染目标绑定为纹理并从中读取:仅一次。您可以执行一次读取,然后,您将返回到“未定义行为”,除非您使用另一个屏障刷新缓存 是GL 4.x级硬件(又名:DX11)独

像素着色器是否可以查看深度/颜色/模具缓冲区的当前状态?

片段着色器没有为其正在处理的片段指定当前缓冲区值。尝试将这些缓冲区用作纹理来读取这些值,在一般情况下不会产生合理的结果。这是“未定义的行为”

在某些特定情况下,它可以发挥作用

首先,你可以使用。这在技术上是NVIDIA的扩展,但ATI也广泛支持它。屏障基本上是缓存刷新。它允许您将当前渲染目标绑定为纹理并从中读取:仅一次。您可以执行一次读取,然后,您将返回到“未定义行为”,除非您使用另一个屏障刷新缓存

是GL 4.x级硬件(又名:DX11)独有的功能。它允许您任意读取和写入绑定的图像。但是,要执行此操作,必须同步不同着色器实例之间的访问。这种方法有很多警告,所以你应该仔细阅读如何做到这一点