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(¶ms->A);
miColor *B = mi_eval_color(¶ms->B);
miColor *F = mi_eval_color(¶ms->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