Shader depth_fade_tint_3

Click on the filename to display or download the file.

depth_fade_tint_3.mi
declare shader 
    color "depth_fade_tint_3" ( 
        scalar "near", 
	color  "near_color" default 1 1 1, 
        scalar "far", 
	color  "far_color" default 0 0 0 ) 
    version 1 
end declare 

depth_fade_tint_3.c
#include "shader.h" 
#include "miaux.h" 
 
struct depth_fade_tint_3 {  
    miScalar near; 
    miColor near_color; 
    miScalar far; 
    miColor far_color; 
}; 
 
DLLEXPORT 
int depth_fade_tint_3_version(void) { return(1); } 
 
DLLEXPORT 
miBoolean depth_fade_tint_3 (  
    miColor *result, miState *state, struct depth_fade_tint_3 *params  ) 
{ 
    miaux_blend_colors(result,  
                       mi_eval_color(&params->near_color), 
                       mi_eval_color(&params->far_color), 
                       miaux_fit(state->point.z,  
                                 *mi_eval_scalar(&params->far), 
                                 *mi_eval_scalar(&params->near), 
                                 0.0, 1.0)); 
    return miTRUE; 
} 

depth_fade_tint_3_util.c
void miaux_blend_colors(miColor *result,  
			miColor *color1, miColor *color2, miScalar factor) 
{ 
    result->r = miaux_blend(color1->r, color2->r, factor); 
    result->g = miaux_blend(color1->g, color2->g, factor); 
    result->b = miaux_blend(color1->b, color2->b, factor); 
} 
 
double miaux_blend(miScalar a, miScalar b, miScalar factor) 
{ 
    return a * factor + b * (1.0 - factor); 
} 
 
double miaux_fit( 
    double v, double oldmin, double oldmax, double newmin, double newmax)     
{ 
    return newmin + ((v - oldmin) / (oldmax - oldmin)) * (newmax - newmin); 
} 

22 April 2008 23:39:52