我想优化我的着色器,我想知道着色器如何处理制服的计算。 准确地说,我想知道我是否应该在 CPU 上计算这些东西并将现成的结果作为制服发送,或者我是否可以在着色器上计算它而不会在性能方面造成重大损失。
例如我有这样简单的着色器:
uniform vec2 screenSize;
vec2 pixelSize = vec2(1.0, 1.0) / screenSize;
void main()
{
//... some code that is using pixelSize, for example for reading something from sampler2D
}
每次 OpenGL 绘制调用将在着色器中计算多少次
pixelSize
,例如全屏尺寸四边形(后期处理效果)?
也许这取决于它是顶点着色器还是片段着色器?