Shader Playground

);
vec4 CoronaVertexUserData = vec4(, , , );
vec4 color (rgb: , α:); vec4 bg (rgb: , α:);
x
 
1
P_COLOR vec4 FragmentKernel( P_UV vec2 texCoord ) {
2
3
    P_COLOR vec4 c = texture2D(CoronaSampler0, texCoord);  
4
    P_COLOR float alpha = c.a;
5
    P_COLOR vec4 gold       = vec4(.87, .73, 0, alpha);
6
    P_COLOR vec4 brightGold = vec4(  1, .84, 0, alpha);
7
    P_COLOR float waveT = (texCoord.x * texCoord.y * 10.0);
8
    P_COLOR float wavePos = sin(4.0 * CoronaTotalTime + waveT);
9
10
    //get average color. for now, we'll assume that darker things are in the bg
11
    P_COLOR float gray = (c.r + c.g + c.b) * .33;
12
    //we lighten gray a bit.
13
    gray = gray + .1;
14
      
15
    //higher grayness causes wavePos to be less
16
    wavePos = wavePos * gray * gray * gray * gray;
17
      
18
    P_COLOR vec4 finalGold = mix(gold, brightGold, wavePos);
19
    P_COLOR float sharpGray = gray * gray * gray;
20
    P_COLOR float finalGray = mix(sharpGray, gray, wavePos);
21
      
22
    
23
    c = vec4(finalGray, finalGray, finalGray, alpha);
24
    c = mix(c, finalGold, .75);
25
    c.a = alpha;
26
    
27
    if(alpha < .01) {
28
        c = vec4(0,0,0,0);
29
    }
30
31
    return CoronaColorScale(c);  
32
  }
33
34