#include "colors.inc" #include "textures.inc" #include "stones2.inc" #include "stoneold.inc" #version unofficial MegaPov 0.4; global_settings { photons { spacing .01 gather 60, 100 //media 6, 1.5 autostop 0 jitter 1 max_trace_level 4 media on }} #declare Seed=seed(5); //pyramid macro, builds a trigonal pyramid of spheres of certain radius #macro pyramid (X0,Y0,Z0,R,spheres) #declare counter = 0; #declare row = 0; #declare X=X0; #declare Z=Z0; #while (row R texture{pigment {color rgbf<1-(0.2*rand(Seed)),1-(0.2*rand(Seed)),1-(0.2*rand(Seed)),1>}} interior {ior 1.5 dispersion 1.1} finish { ambient 0.1 diffuse 0.4 reflection 0.9 phong 1 phong_size 200} photons{ target .5 refraction on reflection on ignore_photons} hollow} #declare X = X+2*R; #declare counter = counter+1; #end #declare Z=Z+sqrt(3)*R; #declare row = row+1; #declare X = X0+R*row; #end #declare X0=X0+R ; #declare Y0=((2*sqrt(2))/sqrt(3))*R+Y0; #declare Z0=(sqrt(3)/3)*R+Z0; #declare spheres=spheres-1; #if (spheres > 0) pyramid (X0,Y0,Z0,R,spheres) #else #end #end //end macro //------------------------------------------------------------------------------------------------------// camera {location <-10,5,-5> up <0,1,0> right <-4/3,0,0> look_at <0,2,0>} light_source { <10,8,-15> color rgb<1,.9.9> spotlight point_at <3,2,-5> radius 30 falloff 40 // media_interaction on //media_attenuation on photons{ global refraction on reflection on} } light_source { <-10,3,0> color rgb <.9,1,.9> spotlight point_at <-4,3,3> radius 30 falloff 40 // media_interaction on //media_attenuation on photons{ global refraction on reflection on} } light_source { <3,20,3> color White spotlight point_at <3,4,-3> radius 5 falloff 8 // media_interaction on //media_attenuation on photons{ global refraction on reflection on} } // the tile floor #declare counter=0; #declare row =50; #declare col= 50; union{ #while (counter scale <.9,0.2,.9>translate <(1.8*counter)-(row-1),-.16,1.8*counter2-(col-1)> texture{T_Stone12 scale 10} scale<0.2,1,0.2>} #declare counter2=counter2+1 ; #end #declare counter=counter+1; #end box {<-(row+1),-2,-(col+1)><(row+1),-.1,(col+1)> texture {Stone15 scale 0.2}} scale <5,1,5>} //object declarations #declare glass_sphere= sphere {<0,1,0> 1 pigment {color rgbt<1,.9,.9,.98>} interior {ior 1.5 dispersion 1.05} hollow finish {ambient 0.1 diffuse 0.4 reflection 0.9 phong 0.6 phong_size 200} photons{ target 1 refraction on reflection on ignore_photons}} #declare metal_box = box{<-1,-0,-1> <1,1,1> texture{Brushed_Aluminum} finish { ambient 0.1 diffuse 0.4 reflection 1 phong 1 phong_size 200 } photons { target 1 refraction on reflection on }} #declare metal_cone = union{ cone{ <0, 0, 0>, 1.5 // Center and radius of one end <0, 4, 0>,0 // Center and radius of other end texture{Gold_Nugget} finish { ambient 0.1 diffuse 0.4 reflection 1 phong 1 phong_size 200 } photons { target 1 refraction on reflection on }} object {glass_sphere translate <0,4,0>}} //placement of objects.... pyramid (4,1,4,1,2) pyramid (-5,1,5,1,4) object {metal_box rotate <0,45,0> translate <-4,0,-6>} object {metal_box rotate <0,15,0> translate <-1,0,-4>} object {metal_cone translate <3,0,-3>} object {glass_sphere translate <-1,1,-4>} box {<-1,-1,-1> <1,1,1> scale 40 hollow inverse /*interior{ media{ intervals 1 scattering { 4, rgb 0.04 extinction 1} // for some reason more extinction is needed for adaptive? samples 50, 50 //use 1,4 or so for "quick" tests method 3 aa_threshold .1 aa_level 2 jitter .2 }}*/ }