//Total Lines Contained in this Document: 1655 //A view of Lethbridge's own Whoop-Up Bridge at night, as rendered by Kim Hansen //For CS3710, February 2003 //with a special thanks to the people at the following sites //http://www.xenoarch.com/tutorials/moon.html //(moon texture) //http://www.geocities.com/SiliconValley/Lakes/1434/galaxy.html //(galaxy include file) //http://home.pacbell.net/tylereng/ //(kolors include file) //www.povray.org //(the knowledge base for pretty much everything else) /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //include statements include "textures.inc" include "colors.inc" include "kolors.inc" include "stars.inc" include "stones.inc" /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //camera and lighting camera { location <-5, 20,-83> look_at <10, 0, -0> } global_settings { ambient_light Bone } light_source { <0, 30, -150> Bone } light_source { <0, 30, -70> Blue } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //background (stary night- yay!) #declare galaxy_colour1 = <1, .5, 3>; #declare galaxy_colour2 = <.4, .8, .8>; #declare galaxy_bgstars = 1; #declare galaxy_bgnebula = false; #include "GALAXY.BG" #declare galaxy_declare_only = true; #declare galaxy_object_name = "Star1" #include "GALAXY.OBJ" object {galaxy_object scale 30 translate <30.5,35,10>} /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //moon #declare PMoonMare=pigment { wrinkles turbulence 0.2 scale 0.5 color_map { [0 rgb 1] [1 rgb 0] } } #declare PMoonCraters= pigment { granite scale 0.2 color_map{ [0 rgb 1] [1 rgb 0] } } #declare TMoon= texture{ pigment { average pigment_map{ [0.85 PMoonMare] [0.15 PMoonCraters] } } finish { ambient rgb <1,0.9,0.1> ambient 1 diffuse 0.3} normal { average normal_map{ [0.85 wrinkles 0.3 turbulence 0.2] [0.15 granite 0.3 scale 0.4] } // scale 1/2 } } #declare Moon=sphere { <0, 0, 0> 5 texture {TMoon scale 10 } } object {Moon translate -40*x translate 38*y translate 30*z } light_source { <-40, 38, 30> color Bone looks_like { Moon } } sphere { <0, 0, 0> 5.5 pigment { Gray15 } translate 37.5*y translate -42*x translate 33*z } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //fog! fog { distance 150 color rgbf<0.9, 0.9, 0.9, 1.0> fog_type 2 fog_offset 13 fog_alt 3 } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //landscape //landscape texture #declare hilltex = texture { normal { bump_map { png "circles.png" map_type 1 interpolate 4 use_index bump_size 1 } } pigment { Chartreuse4 } finish { ambient .2 diffuse .15 roughness 1.0 } scale 0.05 } //big hill cylinder { -70*x, 70*x, 10 texture {hilltex} translate y*15 } //big hill cylinder { -70*x, 70*x, 10 texture {hilltex} translate y*10 translate z*-5 } //big hill cylinder { -70*x, 70*x, 10 texture {hilltex} translate y*8 translate z*-14 } //big hill cylinder { -70*x, 70*x, 10 texture {hilltex} translate y*8 translate z*-17 } //big hill cylinder { -70*x, 70*x, 8 texture {hilltex} translate y*5 translate z*-25 } //road hill cylinder { <-12, 22, 0>, // Center of one end <2, 7, - 40>, // Center of other end 4.3 // Radius texture { hilltex } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate -1*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 5*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 15*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -5*z translate 2*y translate 13*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 24.5*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -4*z translate 2*y translate 23*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -4*z translate -1.5*y translate 1.75*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -3.5*z translate -1.3*y translate 1.55*x scale 3 texture {hilltex} } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -3.75*z translate -2.1*y translate 1.55*x scale 3 texture {hilltex} } //land behind river box { <-70, 5, 25> < 70, -5, 55> texture {hilltex} rotate -10*x translate -85*z translate -6*y } //river box { <-70, 5, 25> < 70, -5, 35> texture {Water} translate -85*z translate 2.2*y } //forground terrain box { <-70, 5, 25> < 70, -5, 125> texture {hilltex} translate -180*z translate 2*y } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -3.73*z translate -1.3968 *y translate 1.55*x scale 3 texture {hilltex} } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //road //****************landscape redone in road texture #declare backscaperoad = union { //big hill cylinder { -70*x, 70*x, 10 texture { T_Stone8 scale .005 } translate y*15 } //big hill cylinder { -70*x, 70*x, 10 texture { T_Stone8 scale .005 } translate y*8 translate z*-5 } //big hill cylinder { -70*x, 70*x, 10 texture { T_Stone8 scale .005 } translate y*8 translate z*-14 } //big hill cylinder { -70*x, 70*x, 10 texture { T_Stone8 scale .005 } translate y*8 translate z*-17 } //big hill cylinder { -70*x, 70*x, 10 texture { T_Stone8 scale .005 } translate y*5 translate z*-25 } //road hill cylinder { <-12, 22, 0>, // Center of one end <2, 7, - 40>, // Center of other end 4.3 // Radius texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate -1*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 5*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 15*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -5*z translate 2*y translate 13*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -7*z translate 2*y translate 24.5*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -4*z translate 2*y translate 23*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -4*z translate -1.5*y translate 1.75*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -3.5*z translate -1.3*y translate 1.55*x scale 3 texture { T_Stone8 scale .005 } } //hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x rotate -90*y translate -3.75*z translate -2.1*y translate 1.55*x scale 3 texture { T_Stone8 scale .005 } } //land behind river box { <-70, 5, 25> < 70, -5, 55> texture { T_Stone8 scale .005 } rotate -10*x translate -85*z translate -6*y } translate .1*y } //****************eoflandscape redone in road texture //****************road on back hills #declare backroad1 = difference { object { backscaperoad } box { <-100, 30, 50> < 0,-30,-60> rotate -18*y translate -14*x } } #declare backroad2 = difference { object { backroad1 } box { <-100, 30, 50> < 0,-30,-50> rotate -18*y translate 95*x } texture { T_Stone8 scale .005 } } //****************eof road on back hills //****************curved road in foreground #declare roadtorus1 = difference { torus { 10, 1.8 texture { T_Stone8 scale .005 } translate -68*z translate 6*y translate -6.8*x } box { <-100, 20, 0> <-10, -5, -100> translate 7*x } } #declare roadtorus2 = difference { object {roadtorus1} box { <-15, 10, -50> < -8, -10, -65> translate 9.5*x translate -2*z } } //****************eof curved road in foreground //****************putting the whole road together #declare road1 = union { object {roadtorus2} object {backroad2} } #declare road2 = union { object {road1} box { <1.9, -.5, -47> < 5.1, .5, -64> translate 14*y translate -.5*x rotate 45*y translate -40*z translate -11.45*y translate 30*x rotate 3*x texture { T_Stone8 scale .005 } } } #declare road = union { object {road2} box { <1.9, -.5, -47> < 5.1, .5, -64> translate 17.75*y translate -.75*x rotate -10*x texture { T_Stone8 scale .005 } } } box { <1.9, 20.5, -63> <4.1, 21.5, -64> rotate -10*x translate -.9*x // translate 5*y rotate -20*y translate -22.38*x translate -3.5*z translate -2.8*y texture { T_Stone8 scale .005 } } //****************eof putting the whole road together- can now be called with "road" object {road finish{ diffuse .8 ambient rgb <1,0.9,0.1> reflection .7 } } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //footpath torus { 10, 1.8 texture { T_Stone8 scale .005 } translate -164*z translate 26*y translate 6.5*x scale .18 rotate x*-15 translate -26.5*z translate 10.9*y translate 2.75*x finish{ diffuse .1 ambient rgb <1,0.9,0.1> ambient .65 reflection .15 } } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //landscape in foreground //closest hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -26.5*z translate -1*y translate 14*x scale 3 texture {hilltex} } //river hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -22*z translate -1.75*y translate 8*x scale 3 texture {hilltex} } //river hill lathe { cubic_spline 5, <0,0>, <2,5>, <5,10>, <2,15>, <0,20> rotate 90*z rotate 90*x translate -25*z translate -1.8*y translate 3.8*x scale 3 texture {hilltex} } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //lamps #declare findy = texture { pigment { White } finish { ambient .25 diffuse .25 reflection .25 specular 2 metallic irid { .6 } } } #declare post = cylinder { 7*y, 8.5*y, .08 texture {Black_Iron} translate -65.8*z translate 1.3*x } sphere { <0,0,0>, 1 pigment { White } finish { ambient 1 diffuse 0 } } #declare bulbglass = union { sphere { <1.3,8.75,-65.8>, .2 } sphere { <1.3,8.75,-65.8>, .1} texture { pigment { rgbt <1,0.9,0.9,0.7> } finish { phong 0.8 reflection 0.45 ambient .2} } } #declare cap = cone { 9.4*y, 0.0, 9.2*y, 0.3 open texture {Black_Iron} translate 1.3*x translate -65.8*z translate -.2*y } #declare lightbulb = union { /*light_source { <1.3,8.75,-65.8> color red 1.0 green .9 blue 0.1 }*/ light_source { <1.3,8.75,-65.8> color red 1.0 green .9 blue 0.1 spotlight radius 30 falloff 25 tightness 5 area_light <.5, 0, 0>, <0, 0, .5>, 5, 5 adaptive 1 jitter point_at <1.3, 7, -65.8> } light_source { <1.3,8.75,-65.8> // light's position color red 1.0 green 0.9 blue 0.1 spotlight radius 30 falloff 18 tightness 3 area_light <.5, 0, 0>, <0, 0, .5>, 5, 5 adaptive 1 jitter point_at <1.3, 7, -65.8> } light_source { <1.3,8.75,-65.8> // light's position color red 1.0 green .9 blue 0.1 spotlight radius 30 falloff 18 tightness 1 area_light <.5, 0, 0>, <0, 0, .5>, 5, 5 adaptive 1 jitter point_at <1.3, 7, -65.8> } light_source { <1.3,8.75,-65.8> // light's position color red 1.0 green .9 blue 0.1 spotlight radius 30 falloff 18 tightness 1 area_light <.5, 0, 0>, <0, 0, .5>, 5, 5 adaptive 1 jitter point_at <1.3, 7, -65.8> } } #declare lamp = union { object {post} object {lightbulb} object {cap} object {bulbglass} scale .8 translate 3.75*y translate .75*x } object {lamp translate -14.8*x translate 49*z translate 15.8*y } object {lamp translate -11.1*x translate 49*z translate 15.8*y } // object {lamp translate -12.2*x translate 42*z translate 12.8*y } object {lamp translate -8.9*x translate 42*z translate 12.8*y } // object {lamp translate -9.9*x translate 35*z translate 10.3*y } object {lamp translate -6.6*x translate 35*z translate 10.3*y } // object {lamp translate -7.55*x translate 28*z translate 7.55*y } object {lamp translate -4.25*x translate 28*z translate 7.55*y } // object {lamp translate -5.3*x translate 21*z translate 4.7*y } object {lamp translate -2.0*x translate 21*z translate 4.7*y } // object {lamp translate -3.4*x translate 14*z translate 2.5*y } object {lamp translate -0.1*x translate 14*z translate 2.5*y } // object {lamp translate -.9*x translate 7*z translate 0*y } object {lamp translate 2.4*x translate 7*z translate 0*y } // object {lamp translate -.4*x } object {lamp translate 2.35*x } // object {lamp translate -.2*x translate -7*z translate -1.4*y } object {lamp translate 2.2*x translate -7*z translate -1.4*y } // object {lamp translate -.2*x translate -14*z translate -1.8*y } object {lamp translate 2.2*x translate -14*z translate -1.5*y } // object {lamp translate -1.1*x translate -21*z translate -1.3*y } object {lamp translate 1.2*x translate -22*z translate -1.3*y } /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ //houses. homes. abodes. yay!! #declare house = union { box { <-1,-1,-1>, < 1, 1, 1> pigment { Gray75 } translate 26.10*y finish { ambient .1 diffuse .1 } } cone { .5*y, 0.0, -.5*y, 1.0 pigment {Gray54} translate 27.60*y } scale .4 translate 14.75*y finish { ambient .1 diffuse .1 } } #declare house2 = union { box { <-1,-1,-1>, < 1, 1, 1> pigment { DarkTan } translate 26.10*y } cone { .5*y, 0.0, -.5*y, 1.0 pigment {PeachPuff4} translate 27.60*y } scale .4 translate 14.75*y } #declare house3 = union { box { <-1,-1,-1>, < 1, 1, 1> pigment { DarkOrange4 } translate 26.10*y } cone { .5*y, 0.0, -.5*y, 1.0 pigment {SemiSweetChoc} translate 27.60*y } scale .4 translate 14.75*y } house object { house2 translate 3*x} object { house translate 10*x} object { house3 translate -3*x} object { house2 translate -8*x} object { house translate -5*x} object { house translate 13*x} object { house2 translate 15*x} object { house translate 17*x} object { house translate 20*x} object { house3 translate 24*x} object { house translate 25*x} object { house3 translate 26*x} object { house2 translate 28*x} object { house translate 35*x} object { house translate 32*x} object { house3 translate 36*x} object { house translate 39*x} object { house3 translate 42*x} object { house translate 43*x} object { house2 translate 46*x} object { house translate 47*x} object { house3 translate 50*x} object { house3 translate 52*x} object { house2 translate 53*x} object { house translate 56*x} object { house3 translate 58*x} object { house2 translate 60*x} object { house translate 61*x} object { house3 translate 64*x} object { house2 translate 67*x} object { house translate -15*x} object { house translate -17*x} object { house3 translate -20*x} object { house translate -24*x} object { house2 translate -25*x} object { house3 translate -26*x} object { house translate -28*x} object { house2 translate -35*x} object { house3 translate -32*x} object { house2 translate -36*x} object { house2 translate -39*x} object { house translate -42*x} object { house translate -43*x} object { house3 translate -46*x} object { house3 translate -47*x} object { house2 translate -50*x} object { house translate -52*x} object { house3 translate -53*x} object { house2 translate -56*x} object { house3 translate -58*x} object { house2 translate -60*x} object { house translate -61*x} object { house2 translate -64*x} object { house3 translate -67*x} /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ // final touch #declare tex_nimbus = texture { pigment { Violet } finish { ambient .25 diffuse .25 reflection .25 specular 2 metallic irid { .4 } } } #declare s_nimbus = union { torus { 5, 1 rotate 90*x translate 3*x translate -3*z translate .25*y texture { tex_nimbus } } torus { 5, .5 rotate 90*x translate 3*x translate -3*z translate -.35*y translate -.35*x texture { tex_nimbus } } torus { 5, .5 rotate 90*x translate 3*x translate -3*z translate -.35*y translate .35*x texture { tex_nimbus } } } object {s_nimbus translate 20*y translate -70*z scale 10 }