打开GL随时间更改颜色

时间:2018-12-04 20:56:25

标签: opengl glsl shader

所以我的编程工作是使粒子从屏幕(雪)的顶部流到底部,并且我希望粒子的颜色随时间从白色变为银色,但是我的问题是粒子开始绿色,然后变成浅蓝色

JSFiddle

我正在使用的代码在片段文件中

#version 430 core

in float ee_time;
out vec4 fColor;

void main()
{
    if (ee_time >0.8f) discard;
    fColor = vec4(0*(ee_time - int(ee_time)), 1 - ee_time - int(ee_time),  ee_time - int(ee_time), 0.0);
}

1 个答案:

答案 0 :(得分:3)

如果要在两种颜色之间进行插值,我建议定义两种颜色:

例如

vec4 color1 = vec4(1.0, 1.0, 1.0, 1.0);
vec4 color2 = vec4(0.0, 0.0, 0.0, 1.0);

并使用mix函数在它们之间进行线性插值:

float a = ee_time - int(ee_time);
fColor = mix(color1, color2, a);