OpenGL:只模糊纹理的一部分;可以使用顶点着色器加速?

时间:2016-01-27 18:56:52

标签: opengl vertex-shader

我们说有一个纹理:6000x6000

我只需要模糊一个部分,让我们说中心矩形100x100

如果我使用顶点着色器将感兴趣的区域放到此中心矩形,通过在大纹理中输入4个点的坐标及其对应的纹理坐标,我认为片段着色器仅处理中心矩形中的像素。

据我了解,常规GPU无法同时处理6000x6000像素;它将分为几个部分。 现在使用100x100,所有像素都可以同时处理,因此速度会更快。

我的理解是否正确?

1 个答案:

答案 0 :(得分:1)

你可以做一个"渲染到纹理",这样你就可以使用你的"顶点着色器"选择要模糊的区域...然后片段着色器将仅在该区域应用模糊。

您的理解似乎是正确的:考虑到GPU只会花费efford处理由顶点着色器确定的区域内的碎片,因此如果您将顶点设置为目标的子集[就像屏幕一样,您的目标可能是纹理,通过framebuffers],然后你的GPU将只处理所需的区域。