- Code: Select all
typedef struct
{
miColor render;
miBoolean enable_fb0;
miColor buffer_0;
miInteger buffer_num1;
miBoolean enable_fb1;
miColor buffer_1;
miInteger buffer_num2;
}environment_buffer_t;
extern "C"
{
DLLEXPORT int environment_buffer_version( void ) { return( 2 ); }
DLLEXPORT miBoolean environment_buffer(
miColor *result,
miState *state,
environment_buffer_t *paras)
{
miInteger num1 = *mi_eval_integer( ¶s->buffer_num1 );
miInteger num2 = *mi_eval_integer( ¶s->buffer_num2 );
if( state->type == miRAY_SHADOW || state->type == miRAY_DISPLACE )
return miFALSE;
if(( state->type == miRAY_ENVIRONMENT ) || ( state->type == miRAY_TRANSPARENT ))
{
if( *mi_eval_boolean( ¶s->enable_fb0 ))
mi_fb_put( state, num1, mi_eval_color( ¶s->buffer_0 ));
if( *mi_eval_boolean( ¶s->enable_fb1 ))
mi_fb_put( state, num2, mi_eval_color( ¶s->buffer_1 ));
}
*result = *mi_eval_color( ¶s->render );
return( miTRUE );
}
}
Bei
- Code: Select all
mi_fb_put( state, num1, mi_eval_color( ¶s->buffer_0 ));
Mi-File:
- Code: Select all
declare shader "environment_buffer" (
color "render",
boolean "enable_fb0",
color "buffer_0",
integer "buffer_num1",
boolean "enable_fb1",
color "buffer_1",
integer "buffer_num2"
)
apply environment, texture
version 2
end declare
Freue mich über Vorschläge
