/* Shader description goes here */
surface
flamecl(float    Kfb = 1,
                flameBegin = 0.35,
                flameEnd = 0.55;    /* fake brightness */
        color     col [3] = { color(0.2,0.4,1.0),
                            color(1,1,1),
                            color(1.0,0.945,0.725)} )
    
{
color    surfcolor = spline ( s, col [0], col [0], col [0],
                                col [1],col [1],
                                col [2],col [2],col [2]);
normal nf = faceforward ( normalize(N), I);
vector i = normalize (-I);
float dot = nf . i;
color dotColor = 1 - dot;
color ramp2 = smoothstep (flameBegin , flameEnd ,s);
color mixColor = mix ( ramp2 , dotColor , s )  ;
  
Oi = mixColor + (s * s * s * s)/2; 
  
/* STEP 2 - calculate the apparent surface color */
Ci = Oi * Cs * surfcolor * Kfb;
}