我有一个片段着色器,以大约25fps的速度运行。如果屏幕分辨率较低,我猜测着色器会跑得更快。有没有办法让我的着色器说服它在较低分辨率的屏幕上运行?所以基本上牺牲细节 - 输出会更加笨拙 - 以获得性能。
答案 0 :(得分:2)
你可以做其他优化(比如渲染较少的原语)
但是如果你想以较低的分辨率渲染,那么首先应该渲染到较低分辨率的屏幕外帧缓冲,然后使用该缓冲区重新渲染为全屏四边形的纹理,以全分辨率
编辑:查看您的代码,您可以执行以下操作:
将代码移动到顶点着色器并将结果传递给varrying vec3 f_color
输出,您可以在片段着色器中将gl_FragColor设置为
在-1,-1和1,1之间制作一个均匀的三角形网格,其中三角形的数量取决于您所需的分辨率
绘制该网格
答案 1 :(得分:1)
从请求的语气我假设你是一个关于OpenGL的新东西(因为关于解决方案的请求是非常基本的,没有任何无视的意图,我们都开始某种方式):答案棘轮怪胎是正确的( - >渲染在低分辨率的纹理上,然后只是在屏幕上显示纹理是你的解决问题的直接答案)然而,正如棘轮怪胎也暗示,你应该寻找其他地方的方式解决您的问题(因为降低片段着色器的分辨率将使您的输出看起来错误™)。
一些提示:
您可以尝试在问题中发布片段着色器
希望这有帮助