// Persistence of Vision Ray Tracer Scene Description File // File: all_phot.pov // Vers: 3.5 // Desc: Casting photons all over the place // Date: 21.02.03 (dd.mm.yy) // Auth: Tim Nikias Wenclawiak //Description: // Casting photons all over the place! //Homepage: // www.digitaltwilight.de/no_lights //Email: // Tim.Nikias@gmx.de //Switch to yes to cast photons, use no to load them and use diffuse surfaces #declare Reflect_Photons=yes; //How good are photons reflected? #declare Reflect_Value=.8; //Tracelevel for scene and photons #declare Tracer=10; global_settings{ assumed_gamma 1 ambient_light 0 max_trace_level Tracer photons{ spacing .01 autostop 0 max_trace_level Tracer #if (Reflect_Photons) save_file "all_phot.pho" #else load_file "all_phot.pho" #end } } light_source{ <-4,7,-5> rgb 1 spotlight point_at <0,1.25,2> radius 8 falloff 10 } camera{location <0,2,-5> look_at <0,2,0>} //Blurred-Reflection texture, not used #declare Refl_Blur=3; #declare Blurred_Surface= texture{ average texture_map{ #declare C=0; #while(C #end} ] #declare C=C+1; #end } } //Note that all reflection-values are multiplied with some //vector close to the original pigment-color. This creates //colored photons (red ones off of red surfaces) but still //sustains some other light-info (not pure red photons) //so that they may still bounce off of the green surface //(otherwise x*y=0, so no photon reflected) //Union around the entire scene... union{ //Surroung Cornell-Room box{<-8,0,-8><8,8,8> inverse pigment{rgb 1} finish{ #if (Reflect_Photons) reflection Reflect_Value metallic #end } } plane{x,5 pigment{rgb x} finish{ #if (Reflect_Photons) reflection Reflect_Value*<1,.5,.5> metallic #end } } plane{-x,5 pigment{rgb y} finish{ #if (Reflect_Photons) reflection Reflect_Value*<.5,1,.5> metallic #end } } //Object to show it all! sphere{<0,1.25,2>,1 pigment{rgb <1,.5,0>} finish{ #if (Reflect_Photons) reflection Reflect_Value*<1,.5,.25> metallic #end } } //Closing of union and photon-target photons{target reflection on refraction off} }