Mixcolorvex1.vfl

[index]

15th February 2009   7:12pm 11sec
/stuhome/vsfx419/vex/Mixcolorvex1.vfl


Vex_Mixcolor_++spec & textures



/*  */
#pragma hint    c1 color
#pragma label    c1 "color 1"
#pragma hint    c2 color
#pragma label    c2 "color 2"
  
#pragma hint    s_center float
#pragma label    s_center "centerS"
#pragma hint    t_center float
#pragma label    t_center "centerT"
#pragma hint    freq float
#pragma label    freq "frequency"
  
#pragma hint    Kd float
#pragma label    Kd "Diffuse Intensity"
  
#pragma hint    texname image
#pragma label    texname "Texture Map"
  
#pragma hint    Ks float
#pragma label    Ks "Specular Intensity"
#pragma hint    roughness float
#pragma label    roughness "Hilite Size"
#pragma hint    hilitecolor color 
#pragma label    hilitecolor "Hilite color"
  
  
  
surface
Mixcolorvex1(    vector c1 = {1,1,0};
                vector c2 = {1,0,1};
                float s_center = 0.5;
                float t_center = 0.5;
                float freq = 2;
                float Km = 0.1;
                
                float    Kd = 1,
                        Ks = 0.7,
                        roughness = 0.1;
                vector hilitecolor = {1,1,1};
                string texname ="")
{
    vector n = normalize(N),       
           nf = frontface(n, I);  
// adding Specular    
    
    vector diffusecolor;
    diffusecolor = Kd * diffuse(nf);
    
    vector i = normalize(-I);
    vector speccolor = Ks * specular(nf, i , roughness) * hilitecolor;
    vector texcolor = colormap(texname, s ,t);      
  
  
    float r = sqrt( pow(s-s_center, 2) + pow(t-t_center, 2) );
    float wave = (sin(r * 6.83 * freq) + 1) * 0.5;
    vector mix = lerp(c1, c2, wave);    
  
//fade_off--------------------
    //    float radius = -0.1;
    //    float fadeout = sqrt(pow(s-0.5,2) + pow(t-0.5,2));
    //    float fade_off = smoothstep( radius, fade, fadeout);
    //    vector R1 = mix(c1, c2, blend*wave*1-fade_off);
  
// Result for color
    Cf = Of * speccolor * (mix + texcolor); 
}