如何优化颜色渐变着色器?

时间:2014-01-13 03:36:07

标签: opengl glsl shader

我创建了这个简单的片段着色器,用于实现垂直颜色渐变效果。 但我发现这对我的移动设备全屏负责。

有没有办法优化这个?

这是代码的链接

http://glsl.heroku.com/e#13541.0

1 个答案:

答案 0 :(得分:3)

你可以这样做。

vec2 position = (gl_FragCoord.xy / resolution.xy);

vec4 top = vec4(1.0, 0.0, 1.0, 1.0);
vec4 bottom = vec4(1.0, 1.0, 0.0, 1.0);

gl_FragColor = vec4(mix(bottom, top, position.y));

Example

您可以自己进一步更改颜色,我只使用随机颜色。


你甚至可以进一步消除x的计算,但这有点过分。

vec4 top = vec4(1.0, 0.0, 1.0, 1.0);
vec4 bottom = vec4(1.0, 1.0, 0.0, 1.0);

gl_FragColor = vec4(mix(bottom, top, (gl_FragCoord.y / resolution.y)));