#include "colors.inc" #include "stones.inc" #include "golds.inc" #declare Clock = clock; //#declare Clock = 5/10; #declare AngleT = Clock * 360; // ---- Camera, lighting, background ------------------------------------ camera { location <-1, 7, -7.0> angle 60 look_at <1.125, 2, 0.0> } sky_sphere { pigment { gradient y color_map { [0.0 color blue 0.6] [1.0 color rgb 1] } } } light_source { <-30, 30, -30> color Gray35 } light_source { <1, 20, 0> color White spotlight point_at <1, 1, 0> radius 20 // hotspot (inner, in degrees) tightness 80 // tightness of falloff (1...100) lower is softer, higher is tighter falloff 20 // intensity falloff radius (outer, in degrees) } // ---- Texture and object definitions ------------------------------------ #declare T_SlickPlastic = texture { pigment { color Red } finish { phong 1.5 reflection 0.05 roughness .15 } } #declare T_Beachball = texture { pigment { radial frequency 1 color_map { [0/6 Blue] [1/6 Blue] [1/6 White] [2/6 White] [2/6 Green] [3/6 Green] [3/6 White] [4/6 White] [4/6 Red] [5/6 Red] [5/6 White] [6/6 White] } } finish { specular 2 roughness 0.005 } } #declare GoldSphere_Offset = sphere { <3, 2, 0>, .5 texture {T_Gold_3B} } #declare GoldSphere_Set = union { object { GoldSphere_Offset rotate y* 0 } object { GoldSphere_Offset rotate y* 60 } object { GoldSphere_Offset rotate y* 120 } object { GoldSphere_Offset rotate y* 180 } object { GoldSphere_Offset rotate y* 240 } object { GoldSphere_Offset rotate y* 300 } } #declare Beachball = sphere { 0, 1 texture {T_Beachball} } // ---- Objects ------------------------------------ plane { y, 0 texture { pigment {checker color White color Blue scale .5} finish {reflection 0.6} } } object { Beachball translate y* 2 rotate y* AngleT*3 } object { GoldSphere_Set rotate (AngleT + 30)*y translate <1, 1, 0> } cylinder { <0, 0, 0>, <0, 2, 0>, .8 open pigment {color Brown} } // box & cone set #declare ConeSteps = 5; #declare ConePosition = Clock * ConeSteps; box { <1.25, 0, -1>, <3.25, 2, 1> texture {T_Stone25 scale 4} } cone { <2.25, 1, 0>, 1 <2.25, 2, 0>, 0 texture { T_SlickPlastic pigment { Orange } } #if (ConePosition > ConeSteps/2) translate y* max(1, ConePosition) #else translate y* max(1, ConeSteps-ConePosition) #end } cone { <2.25, -.5, 0>, 1 <2.25, .5, 0>, 0 open texture { T_SlickPlastic } #if (ConePosition > ConeSteps/2) #if (ConePosition > 1) rotate x* max(180, 180*(ConePosition-1)) #end translate y* max(2, ConePosition) #else #if (ConePosition < ConeSteps-1) rotate x* max(180, 180*(ConeSteps-ConePosition-1)) #end translate y* max(2, ConeSteps-ConePosition) #end translate y* 1.5 }