#include "colors.inc" #include "textures.inc" #include "brickkit.inc" #declare Moon_Tex = texture { pigment {image_map { gif "mars4.gif" map_type 1 interpolate 2 } } normal {bump_map { gif "c:\ray\maps\moonbmp.gif" map_type 1 bump_size 100 interpolate 2 } } finish { ambient 1 } rotate <0, 180, 0> } #declare Water = texture {pigment{color Blue filter 0.9} normal {ripples 0.75 frequency 10 } finish {reflection 0.3 refraction 0.5 ior 1.33 } } #declare Mount_Tex = texture { pigment { gradient x color_map { [ 0.05 color Tan ] [ 0.075 color Tan ] [ 0.1 color NewTan ] [ 0.2 color NewTan ] [ 0.3 color DarkOliveGreen ] [ 0.4 color ForestGreen ] [ 0.425 color Grey ] [ 0.6 color Grey ] } } turbulence .3 } #include "sperm.inc" #declare Sperm_Tex = texture { finish { Shiny } pigment { color Grey } } /**************************************************************************/ camera{ location < 5, 200, -600> look_at < 0, 0, 0> } light_source { <0, 500, 110000> color White } //This light goes behind "sky" light_source { < 1, 1000 , -500 > color White area_light < -100, 1000, -100 >, <100, 1000 , 100>,5,5 adaptive 1 jitter } //The Moon (Mars) object {Moon translate <-50000, 2000, 100000> } //The Sperm object {Sperm texture {Sperm_Tex} scale < .5, .5, .5 > rotate <135, 20, 0> translate <0, -150, -50> } //The Mountains union { object { height_field { pot "C:\RAY\MAPS\mountain.pot" water_level .2 smooth} texture { Mount_Tex } scale < 23110, 7000, 19581 > rotate < -180, -65, -180 > translate < 10000, -4223.4, 10000 > } }//end Mountains //The Water union { plane { < 0, 1, 0 >, 0 texture { Water scale <4000, 4000, 4000> } }//end plane plane { < 0, 1, 0 >, -500 pigment { color LightBlue } } translate <0, -3200, 0> }//end Water //The Sky plane { < 0, 0, 1 >, 100000 pigment { image_map { gif "sky.gif" filter 1, 1.0 } } finish { ambient 1.0 } }//end Sky //The Bridge box { < -1, -1, -1 >, //near lower left corner < 1, 1, 1 > //far upper right corner scale < 500, 50, 50 > texture { stone_texture scale <250, 100, 100> } rotate < 90, 22.5, 0 > translate < -250, -50, -300 > }//end Bridge #declare head = object { sphere {<0,0,0>,1} scale <55.000000, 99.054550, 22.992500> } #declare tail_1 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.000000, 0.000000, 0.000000> <-1.000000, -0.550000, 0.000000> <-0.550000, -1.000000, 0.000000> <0.000000, -1.000000, 0.000000> <-1.000000, 0.000000, 0.500000> <-1.000000, -0.550000, 0.500000> <-0.550000, -1.000000, 0.500000> <0.000000, -1.000000, 0.500000> <-4.488327, 0.000000, 1.162393> <-4.488327, -0.550000, 1.162393> <-4.038327, -1.000000, 1.162393> <-3.488327, -1.000000, 1.162393> <-2.820451, 0.000000, 1.608938> <-2.827387, -0.550000, 1.608938> <-2.377387, -1.000000, 1.608938> <-1.820451, -1.000000, 1.608938> } } #declare tail_2 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <0.000000, -1.000000, 0.000000> <0.550000, -1.000000, 0.000000> <1.000000, -0.550000, 0.000000> <1.000000, 0.000000, 0.000000> <0.000000, -1.000000, 0.500000> <0.550000, -1.000000, 0.500000> <1.000000, -0.550000, 0.500000> <1.000000, 0.000000, 0.500000> <-3.488327, -1.000000, 1.162393> <-2.938327, -1.000000, 1.162393> <-2.488327, -0.550000, 1.162393> <-2.488327, 0.000000, 1.162393> <-1.820451, -1.000000, 1.608938> <-1.277387, -1.000000, 1.608938> <-0.827387, -0.550000, 1.608938> <-0.820451, 0.000000, 1.608938> } } #declare tail_3 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <1.000000, 0.000000, 0.000000> <1.000000, 0.550000, 0.000000> <0.550000, 1.000000, 0.000000> <0.000000, 1.000000, 0.000000> <1.000000, 0.000000, 0.500000> <1.000000, 0.550000, 0.500000> <0.550000, 1.000000, 0.500000> <0.000000, 1.000000, 0.500000> <-2.488327, 0.000000, 1.162393> <-2.488327, 0.550000, 1.162393> <-2.938327, 1.000000, 1.162393> <-3.488327, 1.000000, 1.162393> <-0.820451, 0.000000, 1.608938> <-0.827387, 0.550000, 1.608938> <-1.277387, 1.000000, 1.608938> <-1.820451, 1.000000, 1.608938> } } #declare tail_4 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <0.000000, 1.000000, 0.000000> <-0.550000, 1.000000, 0.000000> <-1.000000, 0.550000, 0.000000> <-1.000000, 0.000000, 0.000000> <0.000000, 1.000000, 0.500000> <-0.550000, 1.000000, 0.500000> <-1.000000, 0.550000, 0.500000> <-1.000000, 0.000000, 0.500000> <-3.488327, 1.000000, 1.162393> <-4.038327, 1.000000, 1.162393> <-4.488327, 0.550000, 1.162393> <-4.488327, 0.000000, 1.162393> <-1.820451, 1.000000, 1.608938> <-2.377387, 1.000000, 1.608938> <-2.827387, 0.550000, 1.608938> <-2.820451, 0.000000, 1.608938> } } #declare tail_5 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-2.820451, 0.000000, 1.608938> <-2.827387, -0.550000, 1.608938> <-2.377387, -1.000000, 1.608938> <-1.820451, -1.000000, 1.608938> <-1.166447, 0.000000, 2.055482> <-1.166447, -0.550000, 2.055482> <-0.716447, -1.000000, 2.055482> <-0.166447, -1.000000, 2.055482> <0.119912, 0.000000, 2.375798> <0.119912, -0.494363, 2.375798> <0.524391, -0.898842, 2.375798> <1.018754, -0.898842, 2.375798> <1.650187, 0.000000, 2.990949> <1.650187, -0.500987, 2.990949> <2.060085, -0.910885, 2.990949> <2.561072, -0.910885, 2.990949> } } #declare tail_6 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.820451, -1.000000, 1.608938> <-1.277387, -1.000000, 1.608938> <-0.827387, -0.550000, 1.608938> <-0.820451, 0.000000, 1.608938> <-0.166447, -1.000000, 2.055482> <0.383553, -1.000000, 2.055482> <0.833553, -0.550000, 2.055482> <0.833553, 0.000000, 2.055482> <1.018754, -0.898842, 2.375798> <1.513117, -0.898842, 2.375798> <1.917595, -0.494363, 2.375798> <1.917595, 0.000000, 2.375798> <2.561072, -0.910885, 2.990949> <3.062059, -0.910885, 2.990949> <3.471957, -0.500987, 2.990949> <3.471957, 0.000000, 2.990949> } } #declare tail_7 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-0.820451, 0.000000, 1.608938> <-0.827387, 0.550000, 1.608938> <-1.277387, 1.000000, 1.608938> <-1.820451, 1.000000, 1.608938> <0.833553, 0.000000, 2.055482> <0.833553, 0.550000, 2.055482> <0.383553, 1.000000, 2.055482> <-0.166447, 1.000000, 2.055482> <1.917595, 0.000000, 2.375798> <1.917595, 0.494363, 2.375798> <1.513117, 0.898842, 2.375798> <1.018754, 0.898842, 2.375798> <3.471957, 0.000000, 2.990949> <3.471957, 0.500987, 2.990949> <3.062059, 0.910885, 2.990949> <2.561072, 0.910885, 2.990949> } } #declare tail_8 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.820451, 1.000000, 1.608938> <-2.377387, 1.000000, 1.608938> <-2.827387, 0.550000, 1.608938> <-2.820451, 0.000000, 1.608938> <-0.166447, 1.000000, 2.055482> <-0.716447, 1.000000, 2.055482> <-1.166447, 0.550000, 2.055482> <-1.166447, 0.000000, 2.055482> <1.018754, 0.898842, 2.375798> <0.524391, 0.898842, 2.375798> <0.119912, 0.494363, 2.375798> <0.119912, 0.000000, 2.375798> <2.561072, 0.910885, 2.990949> <2.060085, 0.910885, 2.990949> <1.650187, 0.500987, 2.990949> <1.650187, 0.000000, 2.990949> } } #declare tail_9 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <1.650187, 0.000000, 2.990949> <1.650187, -0.500987, 2.990949> <2.060085, -0.910885, 2.990949> <2.561072, -0.910885, 2.990949> <3.180461, 0.000000, 3.606100> <3.180461, -0.507611, 3.606100> <3.595779, -0.922929, 3.606100> <4.103390, -0.922929, 3.606100> <0.719261, 0.000000, 4.222216> <0.719261, -0.492249, 4.222216> <1.122009, -0.894997, 4.222216> <1.614258, -0.894997, 4.222216> <-0.412850, 0.000000, 4.468066> <-0.412850, -0.472235, 4.468066> <-0.026476, -0.858610, 4.468066> <0.445760, -0.858610, 4.468066> } } #declare tail_10 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <2.561072, -0.910885, 2.990949> <3.062059, -0.910885, 2.990949> <3.471957, -0.500987, 2.990949> <3.471957, 0.000000, 2.990949> <4.103390, -0.922929, 3.606100> <4.611001, -0.922929, 3.606100> <5.026319, -0.507611, 3.606100> <5.026319, 0.000000, 3.606100> <1.614258, -0.894997, 4.222216> <2.106506, -0.894997, 4.222216> <2.509255, -0.492249, 4.222216> <2.509255, 0.000000, 4.222216> <0.445760, -0.858610, 4.468066> <0.917995, -0.858610, 4.468066> <1.304369, -0.472235, 4.468066> <1.304369, 0.000000, 4.468066> } } #declare tail_11 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <3.471957, 0.000000, 2.990949> <3.471957, 0.500987, 2.990949> <3.062059, 0.910885, 2.990949> <2.561072, 0.910885, 2.990949> <5.026319, 0.000000, 3.606100> <5.026319, 0.507611, 3.606100> <4.611001, 0.922929, 3.606100> <4.103390, 0.922929, 3.606100> <2.509255, 0.000000, 4.222216> <2.509255, 0.492249, 4.222216> <2.106506, 0.894997, 4.222216> <1.614258, 0.894997, 4.222216> <1.304369, 0.000000, 4.468066> <1.304369, 0.472235, 4.468066> <0.917995, 0.858610, 4.468066> <0.445760, 0.858610, 4.468066> } } #declare tail_12 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <2.561072, 0.910885, 2.990949> <2.060085, 0.910885, 2.990949> <1.650187, 0.500987, 2.990949> <1.650187, 0.000000, 2.990949> <4.103390, 0.922929, 3.606100> <3.595779, 0.922929, 3.606100> <3.180461, 0.507611, 3.606100> <3.180461, 0.000000, 3.606100> <1.614258, 0.894997, 4.222216> <1.122009, 0.894997, 4.222216> <0.719261, 0.492249, 4.222216> <0.719261, 0.000000, 4.222216> <0.445760, 0.858610, 4.468066> <-0.026476, 0.858610, 4.468066> <-0.412850, 0.472235, 4.468066> <-0.412850, 0.000000, 4.468066> } } #declare tail_13 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-0.412850, 0.000000, 4.468066> <-0.412850, -0.472235, 4.468066> <-0.026476, -0.858610, 4.468066> <0.445760, -0.858610, 4.468066> <-1.544961, 0.000000, 4.713916> <-1.544961, -0.452222, 4.713916> <-1.174961, -0.822222, 4.713916> <-0.722739, -0.822222, 4.713916> <-3.855539, 0.000000, 5.500000> <-3.855539, -0.417688, 5.500000> <-3.513795, -0.759432, 5.500000> <-3.096107, -0.759432, 5.500000> <-2.658161, 0.000000, 6.030876> <-2.658161, -0.387593, 6.030876> <-2.341039, -0.704715, 6.030876> <-1.953446, -0.704715, 6.030876> } } #declare tail_14 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <0.445760, -0.858610, 4.468066> <0.917995, -0.858610, 4.468066> <1.304369, -0.472235, 4.468066> <1.304369, 0.000000, 4.468066> <-0.722739, -0.822222, 4.713916> <-0.270517, -0.822222, 4.713916> <0.099483, -0.452222, 4.713916> <0.099483, 0.000000, 4.713916> <-3.096107, -0.759432, 5.500000> <-2.678419, -0.759432, 5.500000> <-2.336675, -0.417688, 5.500000> <-2.336675, 0.000000, 5.500000> <-1.953446, -0.704715, 6.030876> <-1.565852, -0.704715, 6.030876> <-1.248731, -0.387593, 6.030876> <-1.248731, 0.000000, 6.030876> } } #declare tail_15 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <1.304369, 0.000000, 4.468066> <1.304369, 0.472235, 4.468066> <0.917995, 0.858610, 4.468066> <0.445760, 0.858610, 4.468066> <0.099483, 0.000000, 4.713916> <0.099483, 0.452222, 4.713916> <-0.270517, 0.822222, 4.713916> <-0.722739, 0.822222, 4.713916> <-2.336675, 0.000000, 5.500000> <-2.336675, 0.417688, 5.500000> <-2.678419, 0.759432, 5.500000> <-3.096107, 0.759432, 5.500000> <-1.248731, 0.000000, 6.030876> <-1.248731, 0.387593, 6.030876> <-1.565852, 0.704715, 6.030876> <-1.953446, 0.704715, 6.030876> } } #declare tail_16 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <0.445760, 0.858610, 4.468066> <-0.026476, 0.858610, 4.468066> <-0.412850, 0.472235, 4.468066> <-0.412850, 0.000000, 4.468066> <-0.722739, 0.822222, 4.713916> <-1.174961, 0.822222, 4.713916> <-1.544961, 0.452222, 4.713916> <-1.544961, 0.000000, 4.713916> <-3.096107, 0.759432, 5.500000> <-3.513795, 0.759432, 5.500000> <-3.855539, 0.417688, 5.500000> <-3.855539, 0.000000, 5.500000> <-1.953446, 0.704715, 6.030876> <-2.341039, 0.704715, 6.030876> <-2.658161, 0.387593, 6.030876> <-2.658161, 0.000000, 6.030876> } } #declare tail_17 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-2.658161, 0.000000, 6.030876> <-2.658161, -0.387593, 6.030876> <-2.341039, -0.704715, 6.030876> <-1.953446, -0.704715, 6.030876> <-1.460782, 0.000000, 6.561752> <-1.460782, -0.357499, 6.561752> <-1.168283, -0.649998, 6.561752> <-0.810784, -0.649998, 6.561752> <-0.463115, 0.000000, 7.000000> <-0.463115, -0.254713, 7.000000> <-0.254713, -0.463115, 7.000000> <0.000000, -0.463115, 7.000000> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> } } #declare tail_18 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.953446, -0.704715, 6.030876> <-1.565852, -0.704715, 6.030876> <-1.248731, -0.387593, 6.030876> <-1.248731, 0.000000, 6.030876> <-0.810784, -0.649998, 6.561752> <-0.453285, -0.649998, 6.561752> <-0.160786, -0.357499, 6.561752> <-0.160786, 0.000000, 6.561752> <0.000000, -0.463115, 7.000000> <0.254713, -0.463115, 7.000000> <0.463115, -0.254713, 7.000000> <0.463115, 0.000000, 7.000000> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> } } #declare tail_19 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.248731, 0.000000, 6.030876> <-1.248731, 0.387593, 6.030876> <-1.565852, 0.704715, 6.030876> <-1.953446, 0.704715, 6.030876> <-0.160786, 0.000000, 6.561752> <-0.160786, 0.357499, 6.561752> <-0.453285, 0.649998, 6.561752> <-0.810784, 0.649998, 6.561752> <0.463115, 0.000000, 7.000000> <0.463115, 0.254713, 7.000000> <0.254713, 0.463115, 7.000000> <0.000000, 0.463115, 7.000000> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> } } #declare tail_20 = object { bicubic_patch { type 1 flatness 0.0100 u_steps 3 v_steps 3 <-1.953446, 0.704715, 6.030876> <-2.341039, 0.704715, 6.030876> <-2.658161, 0.387593, 6.030876> <-2.658161, 0.000000, 6.030876> <-0.810784, 0.649998, 6.561752> <-1.168283, 0.649998, 6.561752> <-1.460782, 0.357499, 6.561752> <-1.460782, 0.000000, 6.561752> <0.000000, 0.463115, 7.000000> <-0.254713, 0.463115, 7.000000> <-0.463115, 0.254713, 7.000000> <-0.463115, 0.000000, 7.000000> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> <1.351029, 0.000000, 7.443707> } } #declare tail = union { object { tail_1 } object { tail_2 } object { tail_3 } object { tail_4 } object { tail_5 } object { tail_6 } object { tail_7 } object { tail_8 } object { tail_9 } object { tail_10 } object { tail_11 } object { tail_12 } object { tail_13 } object { tail_14 } object { tail_15 } object { tail_16 } object { tail_17 } object { tail_18 } object { tail_19 } object { tail_20 } scale <8.000000, 8.000000, 70.000000> rotate <-270.000000, 0.000000, 0.000000> translate <0.000000, -68.350964, 0.000000> } #declare Sperm = union { object { head } object { tail } } //The Moon #declare Moon = object { sphere { < 0, 0, 0>, 10000 } texture {Moon_Tex} }