# Arithmetic operator shaders for use in mental ray Phenomena # See http://www.writingshaders.com/arithmetic_operators.html declare shader color "op_add_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_add_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_add_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_add_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_add_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_add_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_add_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_sub_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_sub_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_sub_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_sub_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_sub_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_sub_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_sub_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_mul_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_mul_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_mul_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_mul_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_mul_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_mul_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_mul_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_div_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_div_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_div_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_div_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_div_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_div_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_div_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_min_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_min_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_min_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_min_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_min_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_min_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_min_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_max_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_max_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_max_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_max_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_max_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_max_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_max_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_pow_cc" ( color "A", color "B" ) version 1 apply material end declare declare shader color "op_pow_cv" ( color "A", vector "B" ) version 1 apply material end declare declare shader color "op_pow_cs" ( color "A", scalar "B" ) version 1 apply material end declare declare shader vector "op_pow_vc" ( vector "A", color "B" ) version 1 apply material end declare declare shader vector "op_pow_vv" ( vector "A", vector "B" ) version 1 apply material end declare declare shader vector "op_pow_vs" ( vector "A", scalar "B" ) version 1 apply material end declare declare shader scalar "op_pow_ss" ( scalar "A", scalar "B" ) version 1 apply material end declare declare shader color "op_mix_ccs" ( color "A", color "B", scalar "F" ) version 1 apply material end declare declare shader color "op_mix_ccc" ( color "A", color "B", color "F" ) version 1 apply material end declare