Shader op_mix_ccc

Click on the filename to display or download the file.

op_mix_ccc.mi
declare shader 
    color "op_mix_ccc" ( 
        color "A", 
        color "B", 
        color "F" ) 
    version 1 
    apply material 
end declare 

op_mix_ccc.c
#include "shader.h" 
#include "miaux.h" 
 
DLLEXPORT 
int op_mix_ccc_version(void) { return 1; } 
 
struct op_mix_ccc { 
    miColor A; 
    miColor B; 
    miColor F; 
}; 
 
DLLEXPORT 
miBoolean op_mix_ccc (miColor *result, miState *state, struct op_mix_ccc *params ) 
{ 
    miColor *A = mi_eval_color(&params->A); 
    miColor *B = mi_eval_color(&params->B); 
    miColor *F = mi_eval_color(&params->F); 
    result->r = miaux_blend(A->r, B->r, F->r); 
    result->g = miaux_blend(A->g, B->g, F->g); 
    result->b = miaux_blend(A->b, B->b, F->b); 
    return miTRUE; 
} 

op_mix_ccc_util.c
double miaux_blend(miScalar a, miScalar b, miScalar factor) 
{ 
    return a * factor + b * (1.0 - factor); 
} 

22 April 2008 23:40:23