You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
964 B
GLSL
38 lines
964 B
GLSL
uniform vec4 fadeInColor;
|
|
uniform vec4 fadeOutColor;
|
|
uniform float maximumDistance;
|
|
uniform bool repeat;
|
|
uniform vec2 fadeDirection;
|
|
uniform vec2 time;
|
|
|
|
float getTime(float t, float coord)
|
|
{
|
|
float scalar = 1.0 / maximumDistance;
|
|
float q = distance(t, coord) * scalar;
|
|
if (repeat)
|
|
{
|
|
float r = distance(t, coord + 1.0) * scalar;
|
|
float s = distance(t, coord - 1.0) * scalar;
|
|
q = min(min(r, s), q);
|
|
}
|
|
return clamp(q, 0.0, 1.0);
|
|
}
|
|
|
|
czm_material czm_getMaterial(czm_materialInput materialInput)
|
|
{
|
|
czm_material material = czm_getDefaultMaterial(materialInput);
|
|
|
|
vec2 st = materialInput.st;
|
|
float s = getTime(time.x, st.s) * fadeDirection.s;
|
|
float t = getTime(time.y, st.t) * fadeDirection.t;
|
|
|
|
float u = length(vec2(s, t));
|
|
vec4 color = mix(fadeInColor, fadeOutColor, u);
|
|
|
|
color = czm_gammaCorrect(color);
|
|
material.emission = color.rgb;
|
|
material.alpha = color.a;
|
|
|
|
return material;
|
|
}
|