Открыть GL изменить цвет с течением времени - PullRequest
0 голосов
/ 04 декабря 2018

Итак, у меня работает программа, в которой частицы текут от верхней части экрана (снега) к нижней части, и я хочу, чтобы цвет частиц со временем менялся с белого на серебристый, но моя проблема в том, что частицы начинаютзеленым и меняет цвет на голубой

Код, который я использую, находится в файле фрагмента

#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 голосов
/ 05 декабря 2018

Если вы хотите интерполировать между 2 цветами, я рекомендую определить 2 цвета:

например

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); 
...