Click on the filename to display or download the file.
texture_uv.mi
declare shader
color "texture_uv" (
color texture "tex",
scalar "u_scale" default 1,
scalar "v_scale" default 1,
scalar "u_offset" default 0,
scalar "v_offset" default 0 )
version 1
apply material, texture
end declare
texture_uv.c
#include "shader.h"
#include
struct texture_uv {
miTag tex;
miScalar u_scale;
miScalar v_scale;
miScalar u_offset;
miScalar v_offset;
};
DLLEXPORT
int texture_uv_version(void) {return 1;}
DLLEXPORT
miBoolean texture_uv (
miColor *result, miState *state, struct texture_uv *params )
{
miVector uv_coord = {0.0, 0.0, 0.0};
miScalar u_scale = *mi_eval_scalar(¶ms->u_scale);
miScalar v_scale = *mi_eval_scalar(¶ms->v_scale);
miScalar u_offset = *mi_eval_scalar(¶ms->u_offset);
miScalar v_offset = *mi_eval_scalar(¶ms->v_offset);
uv_coord.x = fmod((state->tex_list[0].x * u_scale) + u_offset, 1.0);
uv_coord.y = fmod((state->tex_list[0].y * v_scale) + v_offset, 1.0);
mi_lookup_color_texture(
result, state, *mi_eval_tag(¶ms->tex), &uv_coord);
return miTRUE;
}
22 April 2008 23:39:56