#include "colors.inc" #include "textures.inc" #include "shapes.inc" #declare Band = texture { pigment {color rgbf <0.8,0.8,0.1,0>} finish {specular 0.8 roughness 0.001 ambient 0.2} } #declare Shade = texture { pigment {color rgbf <0.9,0.9,0.8,0.3> omega 0.8} normal {bumps 0.4 scale 0.2} finish {ambient 0.2} } #declare Stand = texture { // pigment {DMFWood4 scale 4} pigment {DMFDarkOak scale 5} } #declare Plane = texture { pigment { agate agate_turb 0.5 color_map { [0.0 color rgb <0.3,0.7,0.3>] [0.3 color rgb <0.2,0.8,0.2>] [0.6 color rgb <0.1,0.9,0.1>] [1.0 color rgb <0,1,0>] } } } #declare topr = 8 #declare topy = 7 #declare botr = 2*topr #declare boty = -7 #declare ringh = 1 #declare stemh = 20 #declare stemr = 3 #declare stemtr = 1.5 #declare baseh = 5 #declare baser1 = 5 #declare baser2 = (2*topr+botr)/3 #declare sep = 170 #declare standh = baseh+stemh #declare delta = ringh * (botr-topr) / (topy-boty) #declare midh = (standh+topy)/2 #declare shade = union { cone { <0,topy,0>, topr <0,topy-ringh,0>, topr+delta open texture {Band} inverse } cone { <0,boty+ringh,0>, botr-delta <0,boty,0>, botr open texture {Band} inverse } cone { <0,topy-ringh,0>, topr+delta <0,boty+ringh,0>, botr-delta open texture {Shade} } light_source {<0,3,0> color Gray70 area_light <1,0,0>, <0,0,1>, 3, 3 adaptive 3 jitter } } #declare stand = union { cone {<0,stemh,0>, stemtr, <0,0,0>, stemr} cone {<0,0,0>, baser1, <0,-baseh,0>, baser2} texture {Stand} } #declare lamp = union { object {stand translate <0,baseh,0>} object {shade translate <0,standh,0>} bounded_by {sphere {<0,midh,0>, standh}} } object {lamp translate <0,0,0>} object {lamp translate <0,0,sep>} object {lamp translate <-sep,0,sep>} object {lamp translate <-sep,0,0>} light_source {<100,10,-100> color Gray60 area_light <1,0,1>, <-1,0,1>, 2, 2 adaptive 4 jitter } plane {y, 0 texture {Plane}} plane {z, 1.5*sep texture {Mirror pigment {color White}}} plane {z, -0.5*sep texture {Mirror pigment {color White}} clipped_by {plane {x, -10}} } plane {x, -1.5*sep texture {Mirror pigment {color White}}} plane {x, 0.5*sep texture {Mirror pigment {color White}} clipped_by {plane {-z, 0}} } #declare View1 = camera { location <90,40,-110> look_at <0,15,0> } #declare View2 = camera { direction <-0.6, -0.09, 0.65> location <55,40,-60> look_at <0,13,0> } camera {View2}