//****************************************************************************** //** //** Author: Dennis M. Clarke //** Copyright: Copyright (c) 1999 ThoughtWare Systems //** Date: 2 August 1999 //** //** //****************************************************************************** //** //** Notes on animation. //** //** It was decided to implement the animation features of POV-Ray //** by taking advantage of the clock feature. In this file there //** are two possible camera settings, simply ensure that one of them //** is commented out before rendering. The first camera definition //** is a simple circular motion in the x-z plane centered at //** < 0.0, 9.0, 0.0 > with a radius of 4.5. This gives the viewer //** a simple walk-around view of the tetrons. The tetrons all rotate //** about various axi and at various rates. This camera is best suited //** to a cyclic animation with the following settings : //** //** [320x240, AA, 120 Frames cyclic] //** Width=320 //** Height=240 //** Cyclic_Animation=on //** Initial_Frame=1 //** Final_Frame=120 //** Antialias=On //** Antialias_Threshold=0.3 //** Sampling_Method=2 //** Jitter=Off //** Antialias_Depth=4 //** Subset_Start_Frame = 1 //** Subset_End_Frame = 120 //** //** //** The second camera setting is best described as a 'fly-by' that uses //** logarithmic parameters to cause the camera motion to slow down as //** it approaches the point < 4.5, 9.0, 4.5 > and then to increase in //** speed as it leaves this point. This motion does not lend itself to //** cyclic animation even though it follows a closed loop. //** //****************************************************************************** //** //** Notes on global settings: 5 May 99 //** //** I have yet to appreciate the value or impact of the gamma parameter. //** The max_trace_level was set to a high value of 20 in order to cause //** the internal glass elements to be more effectively rendered. While //** this will increase render time dramatically it also ensures that //** there are no dark or blank regions in the glass because the render //** algorithm bailed out early. //** The max_intersections setting was an experiment that had no visible //** effect. global_settings { assumed_gamma 2.2 max_trace_level 20 max_intersections 128 ambient_light color <0.7, 0.7, 0.7> } //****************************************************************************** //********* CAMERA 1 - smooth cyclic rotation about a fixed point ************** //** //** Notes on camera 1 : 6 May 99 //** //** Since the equation for a circle may be described by the parameters x and //** y in a simple plane thusly : //** //** x = R * Cos ( angle ) //** y = R * Sin ( angle ) //** where x, y, R, angle are all Real numbers //** R is the radius of the circle, //** angle is the clockwise radian angular separation //** between the lines [ < 0,0 > - < x,0 > ] //** and [ < 0,0 > - < x,y > ] . //** //** We may cause a point to follow a smooth circular path given some parameter t //** that varies from 0 to 1 thus: //** //** x = R * Cos ( 2 * pi * t ) //** y = R * Sin ( 2 * pi * t ) //** //** Since our clock value provided by POV-Ray varies from 0 to 1 then we may //** select our camera location on a circular path thus: //** //** x = R * Cos ( 2 * 3.14159265 * clock ) //** y = R * Sin ( 2 * 3.14159265 * clock ) //** //** And if we want rotation about the point < 0, 9, 0> with a radius of 4.5 //** then we know that y is constant at 9. Hence : //** //** x = 4.5 * Cos ( 2 * 3.14159265 * clock ) //** z = 4.5 * Sin ( 2 * 3.14159265 * clock ) //** camera { location < (2.5 * cos( 2 * 3.14159265 * clock ) ) , ( 8.0 ), (2.5 * sin( 2 * 3.14159265 * clock ) ) > direction <-1.0, 0.0, 0.0> up <0.0, 0.0, 1.0> right <0, -4/3, 0.0> look_at <0, 7.0, 0> } //****************************************************************************** //********* CAMERA 2 - non-cyclic 'orbit' about a fixed point ************* //** //** Notes on camera 2 : 7 May 99 //** see Edwin J. Purcell & Dale Varberg //** Calculus with Analytic Geometry, Fourth Edition //** Section 14.5 - Velocity, Acceleration and Curvature //** //** Dennis : This was a quick hack - no attempt was made to make the //** curve piecewise smooth at all points, thus there is //** a noticable 'snap-turn' at the beginning and ending //** point when this is used for cyclic rendering. //** //****************************************************************************** //** //** Q: How did this come about? //** //** A: After creating a brief animation using the circular path from //** camera 1 I decided that I would like to see the table and other //** objects in the scene. The distance from the tetrons in camera 1 //** was perfect so I decided that was what I wanted again but with //** an approach path and an exit path much like a comet about the sun. //** A function that would vary from some distant value to 1 and back //** up again seemed perfect so I chose 25 at random and a function //** of d=25^p where p varied from 1 to 0 and then to 1 again. Since //** the clock varies from 0 to 1 it was easy to hack this to //** //** d = 25 ^ ( 2.0 * abs( clock - 0.5 ) ) //** //** This function decreases to 1 at its lowest so I picked a new //** radius value of 3.5 + d. This would then vary from 28.5 down //** to 4.5 and then back 'out' to 28.5 as the clock varied from //** 0 to 1. The circular motion is still there, somewhat, but this //** is neither a circular path nor a hyperbolic path. In short, its //** a hack. The 'altitude' of the camera also varies in a similar //** fashion from 13 down to 9 and then back 'up' to 13. //** //****************************************************************************** //camera { // location < ( ( 3.5 + pow( 25, ( 2.0 * abs ( clock - 0.5 ) ) ) ) * cos(clock * 4 * 3.14159265 ) ) , // ( 8.0 + pow( 5, ( 2.0 * abs ( clock - 0.5 ) ) ) ), // ( ( 3.5 + pow( 25, ( 2.0 * abs ( clock - 0.5 ) ) ) ) * sin(clock * 4 * 3.14159265 ) ) > // direction <-1.0, 0.0, 0.0> // up <0.0, 0.0, 1.0> // right <0, -4/3, 0.0> // look_at <0, 8.0, 0> //} //****************************************************************************** //******************** Light sources ******************************************* #declare Grayscale = 0.25; #declare AmbientLight = color red Grayscale green Grayscale blue Grayscale; light_source { <-20, 30, -100> color rgb 1 } // White light light_source { <50, 50 ,15> color AmbientLight } // This illuminates the table structure and creates nice // shadows under and around the structure ... light_source { 0*x // light's position (translated below) color rgb <1,1,1> // light's color spotlight // this kind of light source translate <40, 80, -40> // position of light point_at <0, 0, 0> // direction of spotlight radius 5 // hotspot (inner, in degrees) tightness 50 // tightness of falloff (1...100) lower is softer, higher is tighter falloff 8 // intensity falloff radius (outer, in degrees) } //******************** Glass definitions *************************************** #declare I_Glass= interior { ior 1.5 } #declare F_Glass3 = finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } #declare T_Glass3 = texture { pigment { color rgbf <0.98, 0.98, 0.98, 0.9> } finish { F_Glass3 } } #declare T03 = texture { T_Glass3 } #declare F_Glass4 = finish { ambient 0.1 diffuse 0.1 reflection .25 specular 1 roughness 0.001 } #declare T_Winebottle_Glass= texture { finish { F_Glass4 } pigment { color rgbf <0.4, 0.72, 0.4, 0.6> } } #declare T06 = texture { T_Winebottle_Glass } #declare T_Ruby_Glass = texture { finish { F_Glass4 } pigment { color rgbf <0.9, 0.1, 0.2, 0.8> } } #declare T08 = texture { T_Ruby_Glass } #declare T_Yellow_Glass= texture { finish { F_Glass4 } pigment { color rgbf <0.8, 0.8, 0.2, 0.8> } } #declare T11 = texture { T_Yellow_Glass } #declare T_Vicksbottle_Glass= texture { finish { F_Glass4 } pigment { color rgbf <0.1, 0.15, 0.5, 0.9> } } //******************** Wood definitions *************************************** #declare P_WoodGrain3B = pigment { wood turbulence <0.1, 0.5, 1> octaves 5 lambda 3.25 scale <0.15, .5, 1> rotate <5, 10, 5> translate -x*2 } #declare M_Wood19A = color_map { [0.00 color rgb <0.5, 0.25, 0.125>] [0.40 color rgb <1.0, 0.50, 0.250> ] [0.60 color rgb <1.0, 0.50, 0.250> ] [1.00 color rgb <0.5, 0.25, 0.125>] } #declare M_Wood19B = color_map { [0.00 0.30 color rgb <0.35, 0.175, 0.0875> color rgb <1.00, 0.500, 0.2500> ] [0.30 1.00 color rgbf 1 color rgbf 1] } #declare P_WoodGrain19A = pigment { wood scale <0.075, 0.075, 1> turbulence 0.065 omega 0.45 lambda 2.3 color_map { M_Wood19A } rotate x*4 } #declare P_WoodGrain19B = pigment { bozo color_map { M_Wood19B } scale <0.013, 0.013, 0.75> } #declare T_Wood20 = texture { pigment{ P_WoodGrain19A color_map { M_Wood19A }}} texture { pigment{ P_WoodGrain19B color_map { M_Wood19B }}} #declare M_Ash = color_map { [0.000000 rgb <0.298039, 0.188235, 0.125490>] [0.003922 rgb <0.313726, 0.203922, 0.141176>] [0.007843 rgb <0.313726, 0.203922, 0.172549>] [0.011765 rgb <0.329412, 0.188235, 0.109804>] [0.015686 rgb <0.329412, 0.219608, 0.125490>] [0.019608 rgb <0.329412, 0.219608, 0.156863>] [0.023529 rgb <0.329412, 0.235294, 0.172549>] [0.027451 rgb <0.329412, 0.250980, 0.125490>] [0.031373 rgb <0.345098, 0.203922, 0.141176>] [0.035294 rgb <0.345098, 0.219608, 0.109804>] [0.039216 rgb <0.345098, 0.219608, 0.188235>] [0.043137 rgb <0.345098, 0.235294, 0.141176>] [0.047059 rgb <0.360784, 0.203922, 0.109804>] [0.050980 rgb <0.360784, 0.219608, 0.156863>] [0.054902 rgb <0.360784, 0.235294, 0.109804>] [0.058824 rgb <0.360784, 0.235294, 0.203922>] [0.062745 rgb <0.360784, 0.250980, 0.156863>] [0.066667 rgb <0.376471, 0.219608, 0.094118>] [0.070588 rgb <0.376471, 0.219608, 0.125490>] [0.074510 rgb <0.376471, 0.235294, 0.141176>] [0.078431 rgb <0.376471, 0.235294, 0.172549>] [0.082353 rgb <0.376471, 0.250980, 0.125490>] [0.086275 rgb <0.376471, 0.266667, 0.172549>] [0.090196 rgb <0.376471, 0.266667, 0.203922>] [0.094118 rgb <0.392157, 0.203922, 0.109804>] [0.098039 rgb <0.392157, 0.219608, 0.156863>] [0.101961 rgb <0.392157, 0.235294, 0.109804>] [0.105882 rgb <0.392157, 0.250980, 0.156863>] [0.109804 rgb <0.392157, 0.250980, 0.188235>] [0.113725 rgb <0.392157, 0.250980, 0.219608>] [0.117647 rgb <0.392157, 0.266667, 0.141176>] [0.121569 rgb <0.392157, 0.282353, 0.172549>] [0.125490 rgb <0.392157, 0.282353, 0.219608>] [0.129412 rgb <0.392157, 0.298039, 0.188235>] [0.133333 rgb <0.407843, 0.219608, 0.094118>] [0.137255 rgb <0.407843, 0.219608, 0.125490>] [0.141176 rgb <0.407843, 0.235294, 0.172549>] [0.145098 rgb <0.407843, 0.250980, 0.125490>] [0.149020 rgb <0.407843, 0.266667, 0.172549>] [0.152941 rgb <0.407843, 0.266667, 0.203922>] [0.156863 rgb <0.407843, 0.298039, 0.235294>] [0.160784 rgb <0.407843, 0.313726, 0.266667>] [0.164706 rgb <0.423529, 0.235294, 0.109804>] [0.168627 rgb <0.423529, 0.235294, 0.141176>] [0.172549 rgb <0.423529, 0.250980, 0.188235>] [0.176471 rgb <0.423529, 0.266667, 0.109804>] [0.180392 rgb <0.423529, 0.266667, 0.141176>] [0.184314 rgb <0.423529, 0.282353, 0.188235>] [0.188235 rgb <0.423529, 0.282353, 0.219608>] [0.192157 rgb <0.423529, 0.298039, 0.250980>] [0.196078 rgb <0.423529, 0.313726, 0.219608>] [0.200000 rgb <0.423529, 0.313726, 0.282353>] [0.203922 rgb <0.423529, 0.345098, 0.266667>] [0.207843 rgb <0.439216, 0.219608, 0.125490>] [0.211765 rgb <0.439216, 0.250980, 0.094118>] [0.215686 rgb <0.439216, 0.250980, 0.125490>] [0.219608 rgb <0.439216, 0.250980, 0.156863>] [0.223529 rgb <0.439216, 0.266667, 0.203922>] [0.227451 rgb <0.439216, 0.282353, 0.156863>] [0.231373 rgb <0.439216, 0.298039, 0.125490>] [0.235294 rgb <0.439216, 0.298039, 0.203922>] [0.239216 rgb <0.439216, 0.298039, 0.235294>] [0.243137 rgb <0.439216, 0.313726, 0.188235>] [0.247059 rgb <0.439216, 0.313726, 0.266667>] [0.250980 rgb <0.439216, 0.329412, 0.298039>] [0.254902 rgb <0.454902, 0.235294, 0.141176>] [0.258824 rgb <0.454902, 0.266667, 0.109804>] [0.262745 rgb <0.454902, 0.266667, 0.141176>] [0.266667 rgb <0.454902, 0.266667, 0.172549>] [0.270588 rgb <0.454902, 0.282353, 0.219608>] [0.274510 rgb <0.454902, 0.298039, 0.141176>] [0.278431 rgb <0.454902, 0.298039, 0.172549>] [0.282353 rgb <0.454902, 0.298039, 0.250980>] [0.286275 rgb <0.454902, 0.313726, 0.219608>] [0.290196 rgb <0.454902, 0.313726, 0.282353>] [0.294118 rgb <0.454902, 0.329412, 0.250980>] [0.298039 rgb <0.454902, 0.329412, 0.313726>] [0.301961 rgb <0.454902, 0.345098, 0.282353>] [0.305882 rgb <0.454902, 0.360784, 0.329412>] [0.309804 rgb <0.470588, 0.235294, 0.109804>] [0.313726 rgb <0.470588, 0.250980, 0.125490>] [0.317647 rgb <0.470588, 0.282353, 0.125490>] [0.321569 rgb <0.470588, 0.282353, 0.156863>] [0.325490 rgb <0.470588, 0.282353, 0.188235>] [0.329412 rgb <0.470588, 0.298039, 0.235294>] [0.333333 rgb <0.470588, 0.313726, 0.188235>] [0.337255 rgb <0.470588, 0.313726, 0.266667>] [0.341176 rgb <0.470588, 0.329412, 0.298039>] [0.345098 rgb <0.470588, 0.345098, 0.219608>] [0.349020 rgb <0.470588, 0.345098, 0.250980>] [0.352941 rgb <0.470588, 0.345098, 0.313726>] [0.356863 rgb <0.470588, 0.360784, 0.266667>] [0.360784 rgb <0.470588, 0.360784, 0.298039>] [0.364706 rgb <0.486275, 0.250980, 0.156863>] [0.368627 rgb <0.486275, 0.266667, 0.109804>] [0.372549 rgb <0.486275, 0.266667, 0.172549>] [0.376471 rgb <0.486275, 0.298039, 0.141176>] [0.380392 rgb <0.486275, 0.298039, 0.172549>] [0.384314 rgb <0.486275, 0.298039, 0.203922>] [0.388235 rgb <0.486275, 0.329412, 0.172549>] [0.392157 rgb <0.486275, 0.329412, 0.203922>] [0.396078 rgb <0.486275, 0.329412, 0.235294>] [0.400000 rgb <0.486275, 0.329412, 0.266667>] [0.403922 rgb <0.486275, 0.345098, 0.282353>] [0.407843 rgb <0.486275, 0.360784, 0.235294>] [0.411765 rgb <0.486275, 0.376471, 0.282353>] [0.415686 rgb <0.486275, 0.376471, 0.313726>] [0.419608 rgb <0.501961, 0.250980, 0.094118>] [0.423529 rgb <0.501961, 0.266667, 0.141176>] [0.427451 rgb <0.501961, 0.282353, 0.125490>] [0.431373 rgb <0.501961, 0.282353, 0.172549>] [0.435294 rgb <0.501961, 0.313726, 0.156863>] [0.439216 rgb <0.501961, 0.313726, 0.188235>] [0.443137 rgb <0.501961, 0.313726, 0.219608>] [0.447059 rgb <0.501961, 0.313726, 0.250980>] [0.450980 rgb <0.501961, 0.345098, 0.219608>] [0.454902 rgb <0.501961, 0.345098, 0.250980>] [0.458824 rgb <0.501961, 0.360784, 0.266667>] [0.462745 rgb <0.501961, 0.360784, 0.298039>] [0.466667 rgb <0.501961, 0.376471, 0.250980>] [0.470588 rgb <0.501961, 0.392157, 0.329412>] [0.474510 rgb <0.517647, 0.282353, 0.156863>] [0.478431 rgb <0.517647, 0.298039, 0.141176>] [0.482353 rgb <0.517647, 0.298039, 0.203922>] [0.486275 rgb <0.517647, 0.329412, 0.172549>] [0.490196 rgb <0.517647, 0.329412, 0.203922>] [0.494118 rgb <0.517647, 0.329412, 0.235294>] [0.498039 rgb <0.517647, 0.345098, 0.282353>] [0.501961 rgb <0.517647, 0.360784, 0.203922>] [0.505882 rgb <0.517647, 0.360784, 0.235294>] [0.509804 rgb <0.517647, 0.376471, 0.282353>] [0.513726 rgb <0.517647, 0.376471, 0.313726>] [0.517647 rgb <0.517647, 0.407843, 0.313726>] [0.521569 rgb <0.517647, 0.407843, 0.345098>] [0.525490 rgb <0.533333, 0.282353, 0.125490>] [0.529412 rgb <0.533333, 0.298039, 0.172549>] [0.533333 rgb <0.533333, 0.313726, 0.141176>] [0.537255 rgb <0.533333, 0.313726, 0.219608>] [0.541176 rgb <0.533333, 0.345098, 0.156863>] [0.545098 rgb <0.533333, 0.345098, 0.188235>] [0.549020 rgb <0.533333, 0.345098, 0.219608>] [0.552941 rgb <0.533333, 0.345098, 0.250980>] [0.556863 rgb <0.533333, 0.360784, 0.298039>] [0.560784 rgb <0.533333, 0.376471, 0.250980>] [0.564706 rgb <0.533333, 0.392157, 0.298039>] [0.568627 rgb <0.533333, 0.392157, 0.329412>] [0.572549 rgb <0.549020, 0.313726, 0.188235>] [0.576471 rgb <0.549020, 0.329412, 0.235294>] [0.580392 rgb <0.549020, 0.360784, 0.172549>] [0.584314 rgb <0.549020, 0.360784, 0.203922>] [0.588235 rgb <0.549020, 0.360784, 0.235294>] [0.592157 rgb <0.549020, 0.360784, 0.266667>] [0.596078 rgb <0.549020, 0.376471, 0.313726>] [0.600000 rgb <0.549020, 0.392157, 0.235294>] [0.603922 rgb <0.549020, 0.392157, 0.266667>] [0.607843 rgb <0.549020, 0.407843, 0.313726>] [0.611765 rgb <0.549020, 0.407843, 0.345098>] [0.615686 rgb <0.564706, 0.282353, 0.125490>] [0.619608 rgb <0.564706, 0.313726, 0.125490>] [0.623529 rgb <0.564706, 0.313726, 0.156863>] [0.627451 rgb <0.564706, 0.329412, 0.203922>] [0.631373 rgb <0.564706, 0.345098, 0.141176>] [0.635294 rgb <0.564706, 0.345098, 0.250980>] [0.639216 rgb <0.564706, 0.376471, 0.219608>] [0.643137 rgb <0.564706, 0.376471, 0.250980>] [0.647059 rgb <0.564706, 0.376471, 0.282353>] [0.650980 rgb <0.564706, 0.392157, 0.329412>] [0.654902 rgb <0.564706, 0.407843, 0.250980>] [0.658824 rgb <0.564706, 0.407843, 0.282353>] [0.662745 rgb <0.564706, 0.423529, 0.329412>] [0.666667 rgb <0.564706, 0.423529, 0.360784>] [0.670588 rgb <0.580392, 0.329412, 0.172549>] [0.674510 rgb <0.580392, 0.345098, 0.219608>] [0.678431 rgb <0.580392, 0.360784, 0.172549>] [0.682353 rgb <0.580392, 0.360784, 0.266667>] [0.686275 rgb <0.580392, 0.392157, 0.235294>] [0.690196 rgb <0.580392, 0.392157, 0.266667>] [0.694118 rgb <0.580392, 0.392157, 0.298039>] [0.698039 rgb <0.580392, 0.407843, 0.345098>] [0.701961 rgb <0.580392, 0.423529, 0.266667>] [0.705882 rgb <0.580392, 0.423529, 0.298039>] [0.709804 rgb <0.580392, 0.439216, 0.345098>] [0.713726 rgb <0.580392, 0.454902, 0.392157>] [0.717647 rgb <0.596078, 0.345098, 0.156863>] [0.721569 rgb <0.596078, 0.345098, 0.188235>] [0.725490 rgb <0.596078, 0.360784, 0.235294>] [0.729412 rgb <0.596078, 0.376471, 0.188235>] [0.733333 rgb <0.596078, 0.407843, 0.250980>] [0.737255 rgb <0.596078, 0.407843, 0.282353>] [0.741176 rgb <0.596078, 0.407843, 0.313726>] [0.745098 rgb <0.596078, 0.423529, 0.360784>] [0.749020 rgb <0.596078, 0.439216, 0.313726>] [0.752941 rgb <0.596078, 0.454902, 0.360784>] [0.756863 rgb <0.611765, 0.360784, 0.172549>] [0.760784 rgb <0.611765, 0.360784, 0.203922>] [0.764706 rgb <0.611765, 0.376471, 0.250980>] [0.768627 rgb <0.611765, 0.392157, 0.203922>] [0.772549 rgb <0.611765, 0.423529, 0.266667>] [0.776471 rgb <0.611765, 0.423529, 0.298039>] [0.780392 rgb <0.611765, 0.423529, 0.329412>] [0.784314 rgb <0.611765, 0.439216, 0.376471>] [0.788235 rgb <0.611765, 0.454902, 0.298039>] [0.792157 rgb <0.611765, 0.454902, 0.329412>] [0.796078 rgb <0.611765, 0.470588, 0.376471>] [0.800000 rgb <0.627451, 0.376471, 0.188235>] [0.803922 rgb <0.627451, 0.376471, 0.219608>] [0.807843 rgb <0.627451, 0.392157, 0.266667>] [0.811765 rgb <0.627451, 0.407843, 0.219608>] [0.815686 rgb <0.627451, 0.439216, 0.235294>] [0.819608 rgb <0.627451, 0.439216, 0.282353>] [0.823529 rgb <0.627451, 0.439216, 0.313726>] [0.827451 rgb <0.627451, 0.439216, 0.345098>] [0.831373 rgb <0.627451, 0.470588, 0.345098>] [0.835294 rgb <0.627451, 0.486275, 0.392157>] [0.839216 rgb <0.643137, 0.392157, 0.203922>] [0.843137 rgb <0.643137, 0.392157, 0.235294>] [0.847059 rgb <0.643137, 0.407843, 0.282353>] [0.850980 rgb <0.643137, 0.423529, 0.250980>] [0.854902 rgb <0.643137, 0.423529, 0.329412>] [0.858824 rgb <0.643137, 0.454902, 0.298039>] [0.862745 rgb <0.643137, 0.454902, 0.329412>] [0.866667 rgb <0.643137, 0.454902, 0.360784>] [0.870588 rgb <0.643137, 0.486275, 0.360784>] [0.874510 rgb <0.658824, 0.407843, 0.219608>] [0.878431 rgb <0.658824, 0.423529, 0.298039>] [0.882353 rgb <0.658824, 0.439216, 0.266667>] [0.886275 rgb <0.658824, 0.470588, 0.282353>] [0.890196 rgb <0.658824, 0.470588, 0.313726>] [0.894118 rgb <0.658824, 0.470588, 0.345098>] [0.898039 rgb <0.658824, 0.470588, 0.376471>] [0.901961 rgb <0.658824, 0.501961, 0.376471>] [0.905882 rgb <0.674510, 0.423529, 0.235294>] [0.909804 rgb <0.674510, 0.454902, 0.250980>] [0.913725 rgb <0.674510, 0.454902, 0.298039>] [0.917647 rgb <0.674510, 0.454902, 0.329412>] [0.921569 rgb <0.674510, 0.486275, 0.298039>] [0.925490 rgb <0.674510, 0.486275, 0.329412>] [0.929412 rgb <0.674510, 0.486275, 0.360784>] [0.933333 rgb <0.674510, 0.486275, 0.392157>] [0.937255 rgb <0.674510, 0.517647, 0.392157>] [0.941176 rgb <0.690196, 0.439216, 0.266667>] [0.945098 rgb <0.690196, 0.470588, 0.266667>] [0.949020 rgb <0.690196, 0.470588, 0.313726>] [0.952941 rgb <0.690196, 0.470588, 0.345098>] [0.956863 rgb <0.690196, 0.501961, 0.345098>] [0.960784 rgb <0.690196, 0.501961, 0.376471>] [0.964706 rgb <0.690196, 0.533333, 0.407843>] [0.968627 rgb <0.705882, 0.454902, 0.250980>] [0.972549 rgb <0.705882, 0.454902, 0.282353>] [0.976471 rgb <0.705882, 0.486275, 0.329412>] [0.980392 rgb <0.705882, 0.517647, 0.360784>] [0.984314 rgb <0.705882, 0.517647, 0.392157>] [0.988235 rgb <0.721569, 0.486275, 0.282353>] [0.992157 rgb <0.721569, 0.549020, 0.407843>] [0.996078 rgb <0.737255, 0.501961, 0.313726>] } //***************** Sky definitions ******************************* #declare P_Cloud2 = pigment { wrinkles turbulence 0.65 octaves 6 omega 0.7 lambda 2 color_map { [0.0, 0.1 color red 0.85 green 0.85 blue 0.85 color red 0.75 green 0.75 blue 0.75] [0.1, 0.5 color red 0.75 green 0.75 blue 0.75 color rgb <0.258, 0.258, 0.435> ] [0.5, 1.001 color rgb <0.258, 0.258, 0.435> color rgb <0.258, 0.258, 0.435> ] } scale <6, 1, 6> } #declare P_Cloud3 = pigment { bozo color_map { [0.0, 0.1 color red 0.85 green 0.85 blue 0.85 color red 0.55 green 0.60 blue 0.65] [0.1, 0.5 color red 0.55 green 0.60 blue 0.65 color rgb <0.184, 0.184, 0.309> ] [0.5, 1.001 color rgb <0.184, 0.184, 0.309> color rgb <0.1, 0.1, 0.2>] } turbulence 0.65 octaves 6 omega 0.707 lambda 2 scale <6, 4, 6> } #declare S_Cloud1 = sky_sphere { pigment { gradient y pigment_map { [0.01 rgb <0.847, 0.749, 0.847> ] // horizon [0.25 P_Cloud2 scale 0.25 rotate z*5] [0.60 P_Cloud3 scale <0.25, 0.15, 0.25> rotate z*10] } } } #declare SkySphere = sky_sphere { S_Cloud1 } //*************************************************************************** //** //** The tetron shape. //** //** Note: The radius of the sphere was reduced from sqrt(2) to 1.4 in //** order to create some structure that appeared solid. //** //*************************************************************************** #declare tetron = difference { box { <-1, -1, -1> < 1, 1, 1> } sphere { <0, 0, 0> 1.4 scale <1.0,1.0,1.0> } translate <0, 0, 0> rotate <0, 0, 0> } // This shape was discovered by accident and it makes a nice table top shape. // The interior circle should have a radius of about 0.7071 ( 1/sqrt(2) ). // // Note: There were some initial rendering problems that were caused by // improper surface collision. The box dimensions were increased // by 0.001 to solve this. // #declare diff_tetron = intersection { object { tetron } object { tetron rotate < 0, 45, 0 > } box { <-1.001, -1.001, -1.001> <1.001, 1.001, 1.001> translate <0.0, 0.5, 0> } } #declare table_legs = intersection { union { object { tetron } object { tetron rotate < 0, 45, 0 > } } union { box { <-1.001, -1.001, -1.001> <1.001, 1.001, 1.001> } box { <-1.001, -1.001, -1.001> <1.001, 1.001, 1.001> rotate < 0, 45, 0 > } translate <0.0, -0.25, 0.0> } } #declare table_leg = texture { pigment { color rgb <1,1,0> } // Yellow color normal { bumps 0.4 scale 0.2 } finish { phong 0.8 } } #declare gold_mirror = texture { pigment { color red 0.85 green 0.85 blue 0.10 } finish { ambient .1 diffuse .1 specular 1 roughness .001 reflection .75 } } #declare table_unit = difference { union{ object { diff_tetron texture { T_Vicksbottle_Glass } interior { I_Glass } scale < 1.2, 1.2, 1.2> rotate <0, 22.5, 0> translate <0, -0.32, 0>} object { table_legs texture { table_leg} } scale < 7, 7, 7> } cylinder { <0, 0, 0>, // Center of one end <0, 1, 0>, // Center of other end 1 // Radius scale < 8.8, 3, 8.8 > translate < 0, -7.25, 0> } translate < 0, 0.5, 0 > rotate < 0, 10, 0 > } // object { table_unit } // Top torus within the table surface //torus { 8.3, 0.10 texture { gold_mirror } // translate < 0, 6.6, 0 > // } // The bottom of the table legs have two metal rungs, // this is the top rung ... //torus { 8.78, 0.10 texture { gold_mirror } // translate < 0, -4, 0 > // } // This is the lower rung. //torus { 8.78, 0.10 texture { gold_mirror } // translate < 0, -5, 0 > // } // The actual table surface is a thin cylinder #declare table_surface = cylinder { <0, 0, 0>, // Center of one end <0, 1, 0>, // Center of other end 1 // Radius scale < 8.2, 0.05, 8.2 > } /* Ground plane { y, -80 pigment { green 0.65 } finish { ambient 0.25 diffuse 0.5 } bounded_by { sphere { <0,0,0>, 5 } } } */ //******************************************************************* //** The following declarations are taken from chess.pov //** by Ville Saari and Dan Farmer. //******************************************************************* #declare MarbleBoard = box { <-32, -1, -32> <32, 0, 32> texture { tiles { texture { pigment { //marble wrinkles turbulence 1.0 colour_map { [0.0 0.7 colour rgb 1 colour rgb 1] [0.7 0.9 colour rgb 1 colour red 0.8 green 0.8 blue 0.8] [0.9 1.0 colour red 0.8 green 0.8 blue 0.8 colour red 0.5 green 0.5 blue 0.5] } scale <0.6, 1, 0.6> rotate -30*y } finish { specular 1 roughness 0.02 reflection 0.25 } } // texture tile2 texture { pigment { granite scale <0.3, 1, 0.3> colour_map { [0 1 colour rgb 0 colour red 0.5 green 0.5 blue 0.5] } } finish { specular 1 roughness 0.02 reflection 0.25 } } } // texture scale <8, 1, 8> } //texture } // intersection #declare FramePiece = intersection { plane { +y, -0.15 } plane { -y, 3 } plane { -z, 35 } plane { <-1, 0, 1>, 0 } // 45 degree bevel plane { < 1, 0, 1>, 0 } // 45 degree bevel } #declare Frame = union { union { object { FramePiece } object { FramePiece rotate 180*y } texture { T_Wood20 scale 2 rotate y*87 translate x*1 finish { specular 1 roughness 0.02 ambient 0.35 } } } union { object { FramePiece rotate -90*y } object { FramePiece rotate 90*y } texture { T_Wood20 scale 2 rotate y*2 finish { specular 1 roughness 0.02 ambient 0.35 } } } } #declare ock = ( 2.0 * abs ( clock - 0.5 ) ) ; #declare blobber = blob { threshold 0.65 sphere { < ( -1.0 * ock ) , 0.0, 0.0>, 1.0, 1.0 texture { // ruby color pigment { color rgbf <0.0, 1.0, 0.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } sphere { < ( 1.0 * ock ) , 0.0, 0.0>, 1.0, 1.0 texture { pigment { color rgbf <0.0, 0.0, 1.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } sphere { < 0.0, 0.0, ( 1.0 * ock ) >, 1.0, 1.0 texture { pigment { color rgbf <1.0, 0.0, 0.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } sphere { < 0.0, 0.0, ( -2.0 * ock ) >, 1.0, 1.0 texture { pigment { color rgbf <1.0, 1.0, 0.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } sphere { < 0.0, ( 2.0 * ock ), 0.0 >, 1.0, 1.0 texture { pigment { color rgbf <1.0, 0.0, 1.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } sphere { < ( -2.0 * ock ), 0.0, 0.0 >, 1.0, 1.0 texture { pigment { color rgbf <0.0, 1.0, 1.0, 0.9> } finish { ambient 0.1 diffuse 0.1 reflection 0.1 specular 0.8 roughness 0.003 phong 1 phong_size 400 } } } interior{I_Glass} } object { blobber scale < 1, 1, 1 > rotate <(45 + clock * 360), (-60 + clock * 720), 0> translate < 0.0, 7.0, 0.0 > } //object { MarbleBoard scale <0.05, 0.05, 0.05> translate < 0, 6.8, 0> rotate <0, 0, 0>} //object { Frame scale <0.05, 0.05, 0.05> translate < 0, 6.8, 0> rotate <0, 0, 0>} sky_sphere { SkySphere }