Shader show_uv_steps

Click on the filename to display or download the file.

show_uv_steps.mi
declare shader 
    color "show_uv_steps" ( 
	integer "u_count" default 4, 
	integer "v_count" default 4 ) 
    version 1 
    apply material, texture 
end declare 

show_uv_steps.c
#include "shader.h" 
 
struct show_uv_steps { 
    miInteger u_count; 
    miInteger v_count; 
}; 
 
DLLEXPORT 
int show_uv_steps_version(void) {return 1;} 
 
miScalar quantize(miScalar value, miInteger count) 
{ 
    miScalar q = (miScalar)count; 
    if (count < 2) 
        return q; 
    else 
        return (miScalar)((int)(value * q) / (q - 1)); 
} 
 
DLLEXPORT 
miBoolean show_uv_steps ( 
    miColor *result, miState *state, struct show_uv_steps *params ) 
{ 
    result->r = quantize(state->tex_list[0].x,  
                         *mi_eval_integer(&params->u_count)); 
    result->g = quantize(state->tex_list[0].y,  
                         *mi_eval_integer(&params->v_count)); 
    result->b = 0; 
    return miTRUE; 
} 

22 April 2008 23:39:55