Opengl es 如何在WebGL中访问相邻像素的深度值?

Opengl es 如何在WebGL中访问相邻像素的深度值?,opengl-es,webgl,shader,Opengl Es,Webgl,Shader,我想制作一个卡通边框效果。对于它,我将使用每个像素的相邻像素的深度值来确定它是否应该变黑。如何在片段着色器中访问该信息?以正常方式渲染场景(顶点着色器,然后是片段着色器-单遍)时,在片段着色器中无法访问其他像素的深度值 但是: 可以将场景渲染两次,并执行一些后处理效果。在第一次运行中,将深度值和其他值(如法线等)存储在RenderTarget(在纹理中),然后在第二次运行中使用这些纹理 在这里,您可以从XNA获得效果,但可以快速移植到GLSL: 这里有一些关于渲染到纹理的链接: 提示:深度值不足

我想制作一个卡通边框效果。对于它,我将使用每个像素的相邻像素的深度值来确定它是否应该变黑。如何在片段着色器中访问该信息?

以正常方式渲染场景(顶点着色器,然后是片段着色器-单遍)时,在片段着色器中无法访问其他像素的深度值

但是: 可以将场景渲染两次,并执行一些后处理效果。在第一次运行中,将深度值和其他值(如法线等)存储在RenderTarget(在纹理中),然后在第二次运行中使用这些纹理

在这里,您可以从XNA获得效果,但可以快速移植到GLSL:

这里有一些关于渲染到纹理的链接:


提示:深度值不足以进行边界检测,您还必须使用法线。但是上面的XNA教程已经介绍了这一点。

可能想要接受答案……您也可以使用标准导数扩展并使用fwidth或。它只允许您访问某个值与另一个片段中的值之间的差异。使它完全无用的是,它只能访问同一三角形中的相邻像素。