所以我的编程工作是使粒子从屏幕(雪)的顶部流到底部,并且我希望粒子的颜色随时间从白色变为银色,但是我的问题是粒子开始绿色,然后变成浅蓝色
我正在使用的代码在片段文件中
#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);
}
答案 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);