Shader show_barycentric

Click on the filename to display or download the file.

show_barycentric.mi
declare shader 
    color "show_barycentric" ( 
        color "a" default 1 .3 .3, 
        color "b" default .3 1 .3, 
        color "c" default .3 .3 1 ) 
    version 1 
    apply material 
end declare 

show_barycentric.c
#include "shader.h" 
#include "miaux.h" 
 
struct show_barycentric { 
    miColor a; 
    miColor b; 
    miColor c; 
}; 
 
DLLEXPORT 
int show_barycentric_version(void) {return 1;} 
 
DLLEXPORT 
miBoolean show_barycentric (   
    miColor *result, miState *state, struct show_barycentric *params  ) 
{ 
    miaux_add_scaled_color(result, mi_eval_color(&params->a), state->bary[0]); 
    miaux_add_scaled_color(result, mi_eval_color(&params->b), state->bary[1]); 
    miaux_add_scaled_color(result, mi_eval_color(&params->c), state->bary[2]); 
    return miTRUE; 
} 

show_barycentric_util.c
void miaux_add_scaled_color(miColor *result, miColor *color, miScalar scale) 
{ 
    result->r += color->r * scale; 
    result->g += color->g * scale; 
    result->b += color->b * scale; 
} 

22 April 2008 23:40:00