/* shader_swirl.pov ================ An attempt to reproduce the swirl effect I made with a very slow set of function calls ... Author: ------ Written by Michael Andrews, 10th July 2001 Version 0.2 Purpose: ------- A test scene for the swirl2.sl shader. This file works with POVMan 0.71.4 and needs the shader file swirl2.slp produced from swirl2.sl */ #version unofficial MegaPov 0.7; global_settings { max_trace_level 10 assumed_gamma 1 ambient_light 1 } #declare CL = <0.1, 1, -9>*2; #declare BC = 0.25; camera { location CL direction 1.4*z right x*image_width/image_height look_at <5, -2.5, 0> } background { color rgb BC } #declare O_Test = sphere { 0, 5 } #declare Type = 1; // Axis along Dir #if (Type = 0) #declare Dir = -z; #end // Axis along intersection (point) - Dir (point) #if (Type = 1) #declare Dir = <0,0,0>; #end // Axis along geometric normal of object // This can't be used in a displace warp? #if (Type = 2) #declare Dir = <0,0,0>; #end #declare swirl = pigment { shader{ shader_file "swirl2.slp" "Rot" 1.5 "Power" 3 "Dir" Dir "Steps" 5 "Type" Type } } object { O_Test texture{ pigment{ average pigment_map { [1 bozo colour_map {[0 rgb 3*x][1 rgb 0]}translate 10 rotate 1987] [1 bozo colour_map {[0 rgb 3*y][1 rgb 0]}translate 20 rotate 4854] [1 bozo colour_map {[0 rgb 3*z][1 rgb 0]}translate 30 rotate 8654] } scale 1/2 warp { displace { swirl type 0 } } scale 5 warp { displace { swirl type 0 } } scale 1/5 translate 0 } finish{ ambient 1 diffuse 0 } } rotate 45*y } object { O_Test texture{ pigment{ average pigment_map { [1 bozo colour_map {[0 rgb 3*x][1 rgb 0]}translate 10 rotate 1987] [1 bozo colour_map {[0 rgb 3*y][1 rgb 0]}translate 20 rotate 4854] [1 bozo colour_map {[0 rgb 3*z][1 rgb 0]}translate 30 rotate 8654] } scale 1/2 translate 0 } finish{ ambient 1 diffuse 0 } } rotate 45*y translate <10,-5,0> }