我有这个片段着色器。在一些“精灵”上,我想要纹理的不同“饱和度”。目前我只设置一次,但后来我会根据绘制的精灵蜜蜂设置每次绘制。如代码中所述,如果我只写 * 0.5,我不会看到性能下降,但如果我使用 * u_test,速度会降低约 5-7 毫秒。这可能吗?你能想到其他解决方案吗?我完全走错了吗?
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
varying vec4 v_secondFragmentColor;
uniform sampler2D CC_Texture0;
uniform vec3 u_topColor;
uniform vec3 u_centerColor;
uniform vec3 u_bottomColor;
uniform float u_intensity;
uniform lowp float u_test;
void main()
{
//vec4 base = texture2D(CC_Texture0, v_texCoord) * v_fragmentColor * u_test; // 1. 5-7 ms slower that 2.
vec4 base = texture2D(CC_Texture0, v_texCoord) * v_fragmentColor * 0.5; // 2. fast
vec3 blend = v_secondFragmentColor.rgb;
vec3 overlay = vec3( 2.0 * base.rgb * blend + base.rgb * base.rgb - 2.0 * base.rgb * base.rgb * blend);
gl_FragColor = vec4(overlay, base.a);
}