// Sample scene. // 'yuqk BW_nan_inf.pov +w800 +h800 +p +mv3.8' global_settings { assumed_gamma 1.0 } #declare VarOrthoMult = 3.0/max(image_width/image_height,image_height/image_width); #declare Camera01z = camera { orthographic location <0,0,-2> direction z right VarOrthoMult*x*max(1,image_width/image_height) up VarOrthoMult*y*max(1,image_height/image_width) } #declare Fn_NANn = function (x) { pow(-2,2.5) } #declare Fn_NANp = function (x) { -pow(-2,2.5) } #declare INFn = -(1/0); #declare INFp = 1/0; #debug concat("\nNANn = ",str(Fn_NANn(0),25,17),"\n") #debug concat("\nNANp = ",str(Fn_NANp(0),25,17),"\n") #debug concat("\nINFn = ",str(INFn,25,17),"\n") #debug concat("\nINFp = ",str(INFp,25,17),"\n") #debug "\n" plane { -z 0 pigment { //function { INFn } // Red / Magenta function { INFp } // Green / Cyan //function { Fn_NANn(0) } // Red / Magenta (Reliable?) //function { Fn_NANp(0) } // Red / Magenta (Reliable?) // // 0 to 1, modifiers supported //function_interval // -1 to +1, modifiers supported raw_wave // Raw vals (no other modifiers) #if (0) color_map { [-1 rgb <1,0,0>] [-0.01 rgb 0] [+0.01 rgb 0] [+1 rgb <0,1,0>] } #else color_map { [-2 rgb <1,0,1>] [-1 rgb <1,0,1>] [-1 rgb <1,0,0>] [-0.01 rgb 0] [+0.01 rgb 0] [+1 rgb <0,1,0>] [+1 rgb <0,1,1>] [+2 rgb <0,1,1>] } #end } finish { emission 1 } } camera { Camera01z } // If you want to see linear values in the preview display // over gamma corrected ones, add display_gamma=1.0 to the // command line.