#ifndef (ntsc) #declare ntsc = false; // set to true for ntsc amiga display modes only #end #include "random.inc" get_seed() // get seed from randseed.pov file #macro rnd(i) // integer random function #local ff = int(i * rand(rseed)); ff #end /* can set big_area to 0, 1 or 2 */ #declare big_area = rnd(3); #declare texture_recursion = 0; #declare yes_sky = false; #declare yes_floor = false; #declare yes_night = false; #declare yes_sky_sphere = false; #declare yes_fog = false; #declare txtr_output_file = "try.pov" #fopen _txtr_file txtr_output_file write #macro do_random_pure_color() // returns an RGB vector #local xx = int(6 * rand(rseed)); #switch (xx) #case (0) #local rcolor = <1, rand(rseed), 0>; #break #case (1) #local rcolor = <1, 0, rand(rseed)>; #break #case (2) #local rcolor = ; #break #case (3) #local rcolor = ; #break #case (4) #local rcolor = <0, 1, rand(rseed)>; #break #else #local rcolor = <0, rand(rseed), 1>; #end rcolor // return color #end #macro do_random_rotate() #write(_txtr_file, "rotate ", <180 * rand(rseed), 180 * rand(rseed), 180 * rand(rseed)>, "\n") #end #macro do_second_texture() #if (texture_recursion < 100) #declare texture_recursion = texture_recursion + 1; #write(_txtr_file, "texture { pigment {\n bozo\n turbulence 1.2\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [ 0.85 color rgbf 1 ]\n") #local ccc = do_random_pure_color(); #write(_txtr_file, " [ 0.85 color rgb ", ccc, "\n ]\n }\n") #if (rand(rseed) > 0.5) #write(_txtr_file, " translate <43, -56, 19.1>\n") #write(_txtr_file, " scale <10, 0.2, 10>\n") do_random_rotate() #end #write(_txtr_file, " }\n}\n") #if (rand(rseed) < 1/3) do_second_texture() // tail recursion #end #declare texture_recursion = texture_recursion - 1; #end #end #macro do_color(tripp) #local fudge = <0, 0, 0> + tripp; // force it to be a vector if it is not a vector #write(_txtr_file, " color rgb ", fudge, " ") #end #macro do_lego_texture() #local w = int(5 * rand(rseed)); #write(_txtr_file, "texture {\n pigment {\n") #switch(w) #case (0) #local s = <1, 1, 0>; // yellow #break #case (1) #local s = <0, 0, 0>; // black #break #case (2) #local s = <0, 0.1, 0.9>; // blue #break #case (3) #local s = <0.9, 0.1, 0>; // red #break #else #local s = <1, 1, 1>; // white #end do_color(s) #write(_txtr_file, "}\n") #write(_txtr_file, " finish { ambient 0.5 diffuse 0.5}\n") #write(_txtr_file, " }") #if (rand(rseed) < (1/11)) do_second_texture() #end #end #macro do_random_texture() #write(_txtr_file, " texture {\n pigment{\n") #local yy = int(3 * rand(rseed)); #switch (yy) #case (0) #write(_txtr_file, " bozo\n") #if (rand(rseed) < 0.5) #write(_txtr_file, " turbulence 1.8\n") #end #break #case (1) #write(_txtr_file, " granite\n") #write(_txtr_file, " scale 0.2\n") #break #else #write(_txtr_file, " marble\n") #write(_txtr_file, " turbulence 1.4\n") do_random_rotate() #end #write(_txtr_file, " color_map {\n") #local s = do_random_pure_color(); #write(_txtr_file, " [0 ") do_color(s) #write(_txtr_file, "]\n [1 ") #local tt = int(3 * rand(rseed)); #switch (tt) #case (0) do_color(<1, 1, 1>) #break #case (1) do_color(<0.5, 0.5, 0.5>) #break #else do_color(<0, 0, 0>) #end #write(_txtr_file, "]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") #if (rand(rseed) < 1/7) do_second_texture() #end #end #macro do_settings() #write(_txtr_file, "global_settings {\n") #write(_txtr_file, " assumed_gamma 2.2\n") #write(_txtr_file, " max_trace_level 5\n") #write(_txtr_file, " number_of_waves 9\n") #write(_txtr_file, "}\n\n\n") #end #macro do_view() #ifndef (ntsc) #declare ntsc = false; #end #if (ntsc = true) #write(_txtr_file, "#declare ntsc = true;\n\n\n") #else #write(_txtr_file, "#declare ntsc = false;\n\n\n") #end #write(_txtr_file, "camera {\n location 0\n") #write(_txtr_file, " direction <0, 0, 2.4> // zoom factor\n") #write(_txtr_file, " up <0, 1, 0>\n") #write(_txtr_file, " #if (ntsc = true)\n") #write(_txtr_file, " right <(320 / 200) * (10 / 11), 0, 0> //NTSC aspect ratio\n") #write(_txtr_file, " #else\n") #write(_txtr_file, " right <(640 / 480), 0, 0> //320x240, 640x480 PAL / PC / Mac aspect ratio\n") #write(_txtr_file, " #end\n") #if (rand(rseed) < 0.1) // add a little batman tilt #write(_txtr_file, " rotate z*", 5 - (10 * rand(rseed)), "\n") #end #write(_txtr_file, " translate <0, 2, -20>\n") #local vv = int(5 * rand(rseed)); #switch (vv) #case (0) #local r = 40; #break #case (1) #local r = 90; #break #case (2) #local r = 4; #break #else #local r = 90 * rand(rseed); #end #write(_txtr_file, " rotate y*", r, "\n") #write(_txtr_file, "}\n\n\n") #end #macro do_sky_sphere() #local vv = rnd(3); #declare yes_sky_sphere = true; // set global var so floor/fog can handle this #write(_txtr_file, "sky_sphere {\n") #write(_txtr_file, " pigment {\n") #switch (vv) #case (0) // day sky, with reddish on horizon #write(_txtr_file, " gradient <0.0, 1.0, 0.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 1 green 0.5 blue 0.5 ]\n") #write(_txtr_file, " [0.03 color red 0 green 0.5 blue 1 ]\n") #write(_txtr_file, " [1.0 color red 0 green 0 blue 1 ]\n") #write(_txtr_file, " }\n") #break #case (1) // variations on sky blue #write(_txtr_file, " gradient <0.0, 1.0, 0.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 1 green 1 blue 1 ]\n") #write(_txtr_file, " [0.03 color red 0 green 0.5 blue 1 ]\n") #write(_txtr_file, " [0.3 color red 0 green 0.5 blue 1 ]\n") #write(_txtr_file, " [1.0 color red 0 green 0.01 blue 1 ]\n") #write(_txtr_file, " }\n") #break #else // night sky full of stars #write(_txtr_file, " granite\n") #write(_txtr_file, " scale 0.015\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [ 0.85 color rgb 0 ]\n") #write(_txtr_file, " [ 0.85 color rgb 1 ]\n") #write(_txtr_file, " }\n") #end // end switch #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #end // end do_sky_sphere #macro do_fog() #declare yes_fog = false; #local xx = rnd(5); // rnd is an integer random macro #if (xx > 0) // 1 in four chance there will be no fog #write(_txtr_file, "fog {\n distance ") #if (rnd(16) = 0) #write(_txtr_file, "300\n") #else #write(_txtr_file, "10000\n") #end #local xx = rnd(9); #write(_txtr_file, " ") #switch (xx) #case (0) #case (1) do_color(<0.664, 0.664, 1>) // blue grey #break #case (2) do_color(<0.664, 0.664, 0.664>) // wb grey #break #case (3) #case (4) do_color(<0, 0, 0>) // space black #break #case (5) #case (5) do_color(<0, 0.41, 1>) // sky blue #break #else do_color(do_random_pure_color()) // go crazy! #end // end switch #write(_txtr_file, "\n") #write(_txtr_file, "}\n\n\n") #end #end #macro do_declares() #write(_txtr_file, "#declare Cube = box {\n") #write(_txtr_file, " <-0.5, 0.5, -0.5>, <0.5, -0.5, 0.5>\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare Cylinder_Y = quadric {\n") #write(_txtr_file, " <1.0, 0.0, 1.0>,\n") #write(_txtr_file, " <0.0, 0.0, 0.0>,\n") #write(_txtr_file, " <0.0, 0.0, 0.0>,\n") #write(_txtr_file, " -1.0\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare escher_shape = merge {\n") #write(_txtr_file, " object { Cube scale 1.0001 }\n") #write(_txtr_file, " object { Cube rotate x*45 }\n") #write(_txtr_file, " object { Cube rotate y*45 }\n") #write(_txtr_file, " object { Cube rotate z*45 }\n") #write(_txtr_file, " scale 1.8\n") #write(_txtr_file, " translate <0, 3, 0>\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare escher_piller = object {") #write(_txtr_file, " Cube scale <1.1, 1.84, 1.1>\n") #write(_txtr_file, " translate <0.0, 0.84, 0.0>\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare marbles = union {\n") #write(_txtr_file, " sphere { <1.0, 4.9, 0.5>, 0.9 }\n") #write(_txtr_file, " sphere { <-1.0, 1.7, -0.5>, 1.2 }\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0\n }\n") #write(_txtr_file, " finish { ambient 0.0 diffuse 0.0 specular 0.0 reflection 0.93 }\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "// elite\n") #write(_txtr_file, "#declare elite_octo_shape = intersection {\n") #write(_txtr_file, " //first 8 planes are for the octohedron\n") #write(_txtr_file, " plane { < 1.0, 1.0, 1.0>, 0.5 }\n") #write(_txtr_file, " plane { < 1.0, 1.0, -1.0>, 0.5 }") #write(_txtr_file, " plane { < 1.0, -1.0, 1.0>, 0.5 }\n") #write(_txtr_file, " plane { < 1.0, -1.0, -1.0>, 0.5 }\n") #write(_txtr_file, " plane { <-1.0, 1.0, 1.0>, 0.5 }\n") #write(_txtr_file, " plane { <-1.0, 1.0, -1.0>, 0.5 }\n") #write(_txtr_file, " plane { <-1.0, -1.0, 1.0>, 0.5 }\n") #write(_txtr_file, " plane { <-1.0, -1.0, -1.0>, 0.5 }\n") #write(_txtr_file, " // now for the cubic planes, cutting the octohedron\n") #write(_txtr_file, " plane { < 0.0, 1.0, 0.0>, 0.43 }\n") #write(_txtr_file, " plane { < 0.0, -1.0, 0.0>, 0.43 }\n") #write(_txtr_file, " plane { <-1.0, 0.0, 0.0>, 0.43 }\n") // 0.45 big 0.42 small #write(_txtr_file, " plane { < 1.0, 0.0, 0.0>, 0.43 }\n") #write(_txtr_file, " plane { < 0.0, 0.0, -1.0>, 0.43 }\n") #write(_txtr_file, " plane { < 0.0, 0.0, 1.0>, 0.43 }\n") #write(_txtr_file, " scale 2.6\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare octahedron = mesh {\n") #write(_txtr_file, " //top front left\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " <-1.0, 0.0, 0.0>, <-1.0, 1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, -1.0>, <-1.0, 1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 1.0, 0.0>, <-1.0, 1.0, -1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " //top front right\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " < 1.0, 0.0, 0.0>, < 1.0, 1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, -1.0>, < 1.0, 1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 1.0, 0.0>, < 1.0, 1.0, -1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " //top rear left}\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " <-1.0, 0.0, 0.0>, <-1.0, 1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, 1.0>, <-1.0, 1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 1.0, 0.0>, <-1.0, 1.0, 1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // top rear right\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " < 1.0, 0.0, 0.0>, < 1.0, 1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, 1.0>, < 1.0, 1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 1.0, 0.0>, < 1.0, 1.0, 1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // bottom front left\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " <-1.0, 0.0, 0.0>, <-1.0, -1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, -1.0>, <-1.0, -1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, -1.0, 0.0>, <-1.0, -1.0, -1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // bottom front right\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " < 1.0, 0.0, 0.0>, < 1.0, -1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, -1.0>, < 1.0, -1.0, -1.0>,\n") #write(_txtr_file, " < 0.0, -1.0, 0.0>, < 1.0, -1.0, -1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // bottom rear left\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " <-1.0, 0.0, 0.0>, <-1.0, -1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, 1.0>, <-1.0, -1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, -1.0, 0.0>, <-1.0, -1.0, 1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // bottom rear right\n") #write(_txtr_file, " smooth_triangle {\n") #write(_txtr_file, " < 1.0, 0.0, 0.0>, < 1.0, -1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, 0.0, 1.0>, < 1.0, -1.0, 1.0>,\n") #write(_txtr_file, " < 0.0, -1.0, 0.0>, < 1.0, -1.0, 1.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " scale 1.5\n") #write(_txtr_file, "}\n\n\n") #end #macro do_wall_texture() #local do_more = 0; #local i = rnd(9); #switch(i) #case (0) // concrete #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.9 green 0.9 blue 0.9\n") #write(_txtr_file, " }\n") #write(_txtr_file, " normal { wrinkles 0.4 }\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0.3\n") #write(_txtr_file, " diffuse 0.7\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #break case (1) // gateway cow texture #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " bozo\n") do_random_rotate() #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.5 color red 1 green 1 blue 1\n") #write(_txtr_file, " color red 1 green 1 blue 1 ]\n") #write(_txtr_file, " [0.0 1.001 color red 0 green 0 blue 0\n") #write(_txtr_file, " color red 0 green 0 blue 0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") #break case (2) // gradient - grey Death Star? #write(_txtr_file, " texture { pigment {\n") #write(_txtr_file, " gradient <1.0, 0.0, 1.0>\n") #write(_txtr_file, " scale <8.0, 8.0, 8.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.13 color red 0.6 green 0.6 blue 0.6\n") #write(_txtr_file, " color red 0.6 green 0.6 blue 0.6 ]\n") #write(_txtr_file, " [0.13 0.15 color red 0.7 green 0.7 blue 0.7\n") #write(_txtr_file, " color red 0.7 green 0.7 blue 0.7 ]\n") #write(_txtr_file, " [0.15 0.23 color red 0.65 green 0.65 blue 0.65\n") #write(_txtr_file, " color red 0.65 green 0.65 blue 0.65 ]\n") #write(_txtr_file, " [0.23 0.3 color red 0.75 green 0.75 blue 0.75\n") #write(_txtr_file, " color red 0.75 green 0.75 blue 0.75 ]\n") #write(_txtr_file, " [0.3 0.34 color red 0.68 green 0.68 blue 0.68\n") #write(_txtr_file, " color red 0.68 green 0.68 blue 0.68 ]\n") #write(_txtr_file, " [0.34 0.35 color red 0.57 green 0.57 blue 0.57\n") #write(_txtr_file, " color red 0.57 green 0.57 blue 0.57 ]\n") #write(_txtr_file, " [0.35 0.4 color red 0.71 green 0.71 blue 0.71\n") #write(_txtr_file, " color red 0.71 green 0.71 blue 0.71 ]\n") #write(_txtr_file, " [0.4 0.46 color red 0.6 green 0.6 blue 0.6\n") #write(_txtr_file, " color red 0.6 green 0.6 blue 0.6 ]\n") #write(_txtr_file, " [0.46 0.53 color red 0.67 green 0.67 blue 0.67\n") #write(_txtr_file, " color red 0.67 green 0.67 blue 0.67 ]\n") #write(_txtr_file, " [0.53 0.6 color red 0.54 green 0.54 blue 0.54\n") #write(_txtr_file, " color red 0.54 green 0.54 blue 0.54 ]\n") #write(_txtr_file, " [0.6 0.68 color red 0.68 green 0.68 blue 0.68\n") #write(_txtr_file, " color red 0.68 green 0.68 blue 0.68 ]\n") #write(_txtr_file, " [0.68 0.72 color red 0.75 green 0.75 blue 0.75\n") #write(_txtr_file, " color red 0.75 green 0.75 blue 0.75 ]\n") #write(_txtr_file, " [0.72 0.81 color red 0.6 green 0.6 blue 0.6\n") #write(_txtr_file, " color red 0.6 green 0.6 blue 0.6 ]\n") #write(_txtr_file, " [0.81 0.89 color red 0.55 green 0.55 blue 0.55\n") #write(_txtr_file, " color red 0.55 green 0.55 blue 0.55 ]\n") #write(_txtr_file, " [0.89 0.971 color red 0.78 green 0.78 blue 0.78\n") #write(_txtr_file, " color red 0.78 green 0.78 blue 0.78 ]\n") #write(_txtr_file, " [0.971 1.001 color red 0.57 green 0.57 blue 0.57\n") #write(_txtr_file, " color red 0.57 green 0.57 blue 0.57 ]\n") #write(_txtr_file, " }\n"); #write(_txtr_file, " translate <", rnd(10), ", 0, ", rnd(10), "\n") #write(_txtr_file, " } finish { ambient 0.4 diffuse 0.6}\n") #write(_txtr_file, " }\n") #break case (3) // crazy garish texture #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " spotted\n") #write(_txtr_file, " scale 1.5\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.3 color red 0.2 green 0.2 blue 0.2\n") #write(_txtr_file, " color red 0.2 green 0.2 blue 0.2 ]\n") #local s = do_random_pure_color(); #write(_txtr_file, " [0.3 1.001 color red 0.2 green 0.2 blue 0.2\n") #write(_txtr_file, " ") do_color(s) #write(_txtr_file, " ]\n }\n") // end color map do_random_rotate() #write(_txtr_file, " scale <10.0, 0.1, 10.0>\n") do_random_rotate() #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") // Here is the trigger for the crazy garish part #local do_more = do_more + 1; #break #case (4) // glowing vertical beams #case (5) // glowing vertical beams #declare yes_night = true; // glowing beams only look good at night #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " gradient <1.0, 0.0, 1.0>\n") #write(_txtr_file, " scale <2.0, 2.0, 2.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.05 color red 0.5 green 1.0 blue 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " [0.0 0.95 color red 1.0 green 1.0 blue 1.0 filter 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " [0.95 1.001 color red 1.0 green 1.0 blue 1.0 filter 1.0\n") #write(_txtr_file, " color red 0.5 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 1.0 diffuse 0.0 specular 0.0 phong 0.0 }\n") #write(_txtr_file, " }\n") #break #case (6) // another granite/concrete? #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " granite\n") #write(_txtr_file, " scale <0.5, 0.5, 0.5>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 0.98 green 0.99 blue 1.0 ]\n") #write(_txtr_file, " [1.0 color red 0.6 green 0.601 blue 0.603 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") #break #case (7) // feldercarb with it, just do a plain cliche checker! #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0,\n") #write(_txtr_file, " color red 0.1 green 0.1 blue 0.1\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") #break #else // mirrored wall #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 0.94 green 0.94 blue 0.94 }\n") #write(_txtr_file, " finish { ambient 0.0 diffuse 0.0 reflection 0.93 }\n") #write(_txtr_file, " } // end_texture\n") #end /* end switch */ #if (do_more > 0) // now for the crazy garish part do_second_texture() do_second_texture() do_second_texture() do_second_texture() do_second_texture() #end #local temp = rnd(7); #if (temp = 4) do_second_texture() #end #end // end of do_wall_texture #macro do_wall() #switch (big_area) #case (2) #local wl = 32; #break; #case (1) #local wl = 16; #break; #else #local wl = 8; #end // end switch // do we even draw a wall? Most of the time we won't #local i = rnd(6); #if (i = 1) // Ok. We've decided that there will be a wall. next // question: shall we have a right wall, a back wall, or both? #local i = rnd(3); #local do_back_wall = false; #local do_side_wall = false; #switch (i) #case (0) #local do_back_wall = true; #break #case (1) #local do_side_wall = true; #break #else #local do_side_wall = true; #local do_back_wall = true; #end // end switch #if (do_back_wall = true) #write(_txtr_file, "// back wall\n") #write(_txtr_file, "box {\n") #write(_txtr_file, " ", <-wl 0, wl + 0.001>, ", ", , "\n") do_wall_texture() #write(_txtr_file, "}\n\n\n") #end #if (do_side_wall) #write(_txtr_file, "// side wall\n") #write(_txtr_file, "box {\n") #write(_txtr_file, " ", , ", ", , "\n") do_wall_texture() #write(_txtr_file, "}\n\n\n") #end #end #end #macro fill_planes(b) // b is an array of 8 0 or 1 values #local xx = 0; #while (xx < 8) #if (b[xx] > 0) #local h = rnd(3) + 2; #write(_txtr_file, " object { Cube\n") #switch (xx) #case (0) #write(_txtr_file, " scale <0.05, ", h * 2, ", 0.8>\n") #write(_txtr_file, " translate <-1.7, ", h, ", 0.8>\n") #break #case (1) #write(_txtr_file, " scale <0.05, ", h*2 , ", 0.8>\n") #write(_txtr_file, " translate < 1.7, ", h,", 0.8>\n") #break #case (2) #write(_txtr_file, " scale <0.05, ", (h * 2), ", 0.8>\n") #write(_txtr_file, " translate <-1.7, ", h, ", -0.8>\n") #break #case (3) #write(_txtr_file, " scale <0.05, ", (h * 2), ", 0.8>\n") #write(_txtr_file, " translate < 1.7, ", h, ", -0.8>\n") #break #case (4) #write(_txtr_file, " scale <0.8, ", (h * 2), ", 0.05>\n") #write(_txtr_file, " translate <-0.8, ", h, ", 1.7>\n") #break #case (5) #write(_txtr_file, " scale <0.8, ", (h * 2), ", 0.05>\n") #write(_txtr_file, " translate < 0.8, ", h, ", 1.7>\n") #break #case (6) #write(_txtr_file, " scale <0.8, ", (h * 2), ", 0.05>\n") #write(_txtr_file, " translate <-0.8, ", h, ", -1.7>\n") #break #else #write(_txtr_file, " scale <0.8, ", (h * 2), ", 0.05>\n") #write(_txtr_file, " translate < 0.8, ", h, ", -1.7>\n") #end // end_switch do_lego_texture() #write(_txtr_file, " }\n") #end // end if #declare xx = xx + 1; #end // end while #end // end macro #macro do_planes(xx, zz) #local b = array[8] #write(_txtr_file, "//planes\nunion {\n") #local i = 0; #while (i < 8) #local b[i] = 0; #local i = i + 1; #end #local i = 0; #while (i < 3) #local w = rnd(8); #local i = i - 1; #if (b[w] = 0) #local i = i + 1; #local b[w] = 1; #end #local i = i + 1; #end fill_planes(b) #write(_txtr_file, " translate <", ((xx * 4) - 6),", 0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n\n\n") #end // end macro #macro do_escher(xx, zz) #local is_clear = rnd(3); #write(_txtr_file, " union {\n") #write(_txtr_file, " object {\n") #write(_txtr_file, " escher_shape\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0.0, ", ((zz * 4) - 6) , ">\n") #if (is_clear = 0) #write(_txtr_file, " interior { ior 1.1 }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 0.96 green 0.96 blue 0.96 filter 1.0}\n") #write(_txtr_file, " finish { ambient 0.0 diffuse 0.0 }\n") #else #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 0.96 green 0.96 blue 0.96 }\n") #write(_txtr_file, " finish { ambient 0.0 diffuse 0.0 reflection 0.94 }\n") #end #write(_txtr_file, " }\n }\n") // now for the base, a black stone pillar with glowing marble strata #write(_txtr_file, " object {\n escher_piller\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0.0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " marble\n") #write(_txtr_file, " turbulence 1.5\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.8 color red 0.0 green 0.0 blue 0.0\n") #write(_txtr_file, " color red 0.0 green 0.0 blue 0.0 ]\n") // pick color for veins in black marble #local e = rnd(5); #if (e > 0) // pure red - most of the time #local s = <1, 0, 0>; #else #local s = do_random_pure_color(); #end #write(_txtr_file, " [0.9 1.001 ") do_color(s) #write(_txtr_file, "\n ") do_color(s) #write(_txtr_file, " ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.5 diffuse 0.5 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #end #macro do_marbles(xx, zz) #write(_txtr_file, "object {\n") #write(_txtr_file, " marbles\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0.0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n\n\n") #end #macro do_c_sphere(xx, zz) #write(_txtr_file, "// c_sphere\n") #write(_txtr_file, "sphere {\n <0.0, ") #local yy = rnd(3); #switch (yy) #case (0) #write(_txtr_file, "2.0") #break #case (1) #write(_txtr_file, "2.1") #break #else #write(_txtr_file, "1.8") #end #write(_txtr_file, ", 0.0>, 1.7\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0.0, ", ((zz * 4) - 6), ">\n") do_random_texture() #write(_txtr_file, "}\n\n\n") #end #macro do_checker_sphere(xx, zz) #write(_txtr_file, "// checker sphere\n") #write(_txtr_file, "sphere { <0.0, 0.0, 0.0>, 2.0\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { ") #local i = rnd(5); #switch(i) #case (0) #write(_txtr_file, "color red 0.0 green 0.2 blue 1.0 }\n") #break #case (1) #write(_txtr_file, "color red 1.0 green 0.0 blue 1.0 }\n") #break #case (2) #write(_txtr_file, "color red 1.0 green 1.0 blue 0.0 }\n") #break; #case (3) #write(_txtr_file, "color red 0.0 green 0.2 blue 0.0 }\n") #break; #else #local s = do_random_pure_color(); do_color(s) #write(_txtr_file, " }\n") #end #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 ") #if (i = 3) #write(_txtr_file, "specular 1.2 ") #end #write(_txtr_file, "}\n") #write(_txtr_file, " },\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 1.0 green 1.0 blue 1.0 filter 1.0 }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 specular 0 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " translate <0, -0.5, 0>\n") #write(_txtr_file, " scale <0.7, 200.0, 0.7>\n") do_random_rotate() #write(_txtr_file, " }\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 3.0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n\n\n") #end #macro do_octo_rot() #if (rnd(8) > 0) #local mm = <0, 0, 0>; #local mm = mm + <(rand(rseed) * 60) - 30, (rand(rseed) * 60) - 30, (rand(rseed) * 60) - 30>; #write(_txtr_file, " rotate ", mm, "\n") #end #end #macro do_elite_octo(xx, zz) #write(_txtr_file, "object {\n elite_octo_shape\n") do_octo_rot() #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 3.0, ", ((zz * 4) - 6), ">\n") do_random_texture() #write(_txtr_file, "}\n\n\n") #end #macro do_simple_octo(xx, zz) #write(_txtr_file, "object {\n octahedron\n") do_octo_rot() #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 3.0, ", ((zz * 4) - 6), ">\n") #if (rnd(7) = 0) #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.93 green 0.93 blue 0.93 filter 1\n") #write(_txtr_file, " }\n") #write(_txtr_file, " interior { ior 1.2 }\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0.3\n") #write(_txtr_file, " diffuse 0.7\n") #write(_txtr_file, " }\n") #else do_random_texture() #end #write(_txtr_file, "}\n\n\n") #end #macro do_octo(xx, zz) #local m = rnd(11); #if (m = 5) do_elite_octo(xx, zz) #else do_simple_octo(xx, zz) #end #end #macro do_blobs(xx, zz) #render "\nblob" #write(_txtr_file, "blob {\n") #local bl_steps = 50; #local x_min = -1.5; #local x_max = 1.5; #local y_min = 0.5; #local y_max = 4; #local cur_pos = <0, (y_min + y_max) / 2, 0>; #local cc = 0; #while (cc < bl_steps) #local cur_pos = < min(max(x_min, (cur_pos.x + 0.45 - 0.9 * rand(rseed))), x_max), min(max(y_min, (cur_pos.y + 0.45 - 0.9 * rand(rseed))), y_max), min(max(x_min, (cur_pos.z + 0.45 - 0.9 * rand(rseed))), x_max) >; #write(_txtr_file, "sphere { ", cur_pos, ", 0.5, 1 }\n") #local cc = cc + 1; #end #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, " pigment { color rgb 1 }\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0 diffuse 0 reflection <0.95, 0.975, 1>\n") #write(_txtr_file, " specular 1.6 roughness 0.05\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #end #macro do_sky() #local xx = rnd(5); // will there be a sky plane at all? #if (xx < 3) // yes, there will be #declare yes_sky = true; #write(_txtr_file, "//Sky\n") #write(_txtr_file, "plane {\n") #write(_txtr_file, " <0, -1, 0>, -300\n") #write(_txtr_file, " pigment {\n") #local w = rnd(5); #switch (w) #case (0) #case (1) #case (2) #write(_txtr_file, " bozo\n") #write(_txtr_file, " turbulence 2.3\n ") do_random_rotate() #write(_txtr_file, " color_map {\n") #local yy = rnd(14); #if (yy = 0) #local s = do_random_pure_color(); #else #local s = <0, 0.41, 1>; // sky blue #end #write(_txtr_file, " [0.0 0.5 ") do_color(s) #write(_txtr_file, "\n ") do_color(s) #write(_txtr_file, " ]\n") #write(_txtr_file, " [0.5 0.75 ") do_color(s) #write(_txtr_file, "\n color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.75 1.001 color red 1.0 green 1.0 blue 1.0\n") #write(_txtr_file, " color red 0.6 green 0.6 blue 0.6 ]\n") #write(_txtr_file, " } // end_color_map\n") #write(_txtr_file, " scale <800.0, 800.0, 800.0>\n") #write(_txtr_file, " rotate <-10.0, 0.9, -20.0>\n") #write(_txtr_file, " translate <40.0, 0.0, 0.0>\n") #break #case (3) #write(_txtr_file, " color red 0.0 green 0.0 blue 0.0\n") #break #else #write(_txtr_file, " color red 0.0 green 0.5 blue 1.0\n") #end /* end switch */ #write(_txtr_file, " } // end pigment\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 1.0\n") #write(_txtr_file, " diffuse 0.0\n") #write(_txtr_file, " specular 0.0\n") #write(_txtr_file, " phong 0.0\n }\n") #write(_txtr_file, "}\n\n\n") #end // end if #end #macro do_darken_sky() #write(_txtr_file, "intersection {\n") #write(_txtr_file, "plane { <0.0, -1.0, 0.0>, -299.8 }\n") #write(_txtr_file, " plane { <0.0, -1.0, 0.0>, -299.9 inverse }\n") #write(_txtr_file, " pigment { color red 0.5 green 0.5 blue 0.5 filter 1.0 }\n") #write(_txtr_file, " finish { ambient 1.0 diffuse 0.0 }\n}\n\n\n") #end #macro do_light() #write(_txtr_file, "//The light .... \n") #write(_txtr_file, "light_source { <-100.0, 120.0, -90.0> ") do_color(<1, 1, 1>) #write(_txtr_file, "}\n\n\n") #end #macro do_floor_declare() #write(_txtr_file, "#declare water_texture = texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.5 green 0.75 blue 1.0\n") #write(_txtr_file, " } // end pigment\n") #write(_txtr_file, " normal {\n") #write(_txtr_file, " ripples 0.3\n") #write(_txtr_file, " scale <2.0, 2.0, 2.0>\n") #write(_txtr_file, " translate <15.3, 0.0, 2.8>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0.0\n") #write(_txtr_file, " diffuse 0.0\n") #write(_txtr_file, " reflection 0.9\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare beach_texture = texture {\n") #write(_txtr_file, " pigment { \n") #write(_txtr_file, " granite\n") #write(_txtr_file, " scale <0.2, 0.2, 0.2>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.5 color red 1.0 green 0.9 blue 0.6 ]\n") #write(_txtr_file, " [1.0 color red 0.9 green 0.8 blue 0.55 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, "}\n\n\n") #write(_txtr_file, "#declare land_texture = texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " pigment { color red 1 green 1 blue 1},\n") #write(_txtr_file, " pigment { color red 0 green 0.2 blue 1}\n") #write(_txtr_file, " rotate y*-30.0\n") #write(_txtr_file, " scale <0.66, 0.66, 0.66>\n") #write(_txtr_file, " },\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " pigment { color red 0 green 0.2 blue 1},\n") #write(_txtr_file, " pigment { color red 1 green 1 blue 1}\n") #write(_txtr_file, " rotate y*-30.0\n") #write(_txtr_file, " scale <0.66, 0.66, 0.66>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " rotate y*30\n") #write(_txtr_file, " scale <3.2, 3.2, 3.2>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " normal {\n") #write(_txtr_file, " bumps 0.1\n") #write(_txtr_file, " scale <0.4, 0.4, 0.4>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.2 diffuse 0.6 reflection 0.2 }\n") #write(_txtr_file, "}\n\n\n") #end #macro do_floor() #local xx = int(12 * rand(rseed)); #declare yes_floor = false; // this is a global variable #if (xx > 1) // zero means no floor. everything is floating #declare yes_floor = true; #write(_txtr_file, "// floor\n") #write(_txtr_file, "plane {\n") #write(_txtr_file, " <0.0, 1.0, 0.0>, -0.001\n") #switch (xx) #case (1) /* flat brown/tan. sorta like dirt/sand */ #case (2) /* flat brown/tan. sorta like dirt/sand */ #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.8 green 0.7 blue 0.51\n") #write(_txtr_file, " }") #local yy = int(3 * rand(rseed)); /* do sand effect? */ #if (yy = 0) #write(_txtr_file, " normal {\n") #write(_txtr_file, " ripples 0.2\n") #if ((yy = rnd(3)) = 1) #write(_txtr_file, " turbulence 0.4\n") #end #write(_txtr_file, " translate <32.0, -1.0, -15.2>\n") #write(_txtr_file, " }\n") #end #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0.4\n") #write(_txtr_file, " diffuse 0.6\n") #write(_txtr_file, " }\n}\n\n\n") #break #case (3) /* water */ #case (4) /* water */ #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.01 green 0.7 blue 1.0\n") #write(_txtr_file, " }\n") #write(_txtr_file, " normal {\n ripples 0.2\n") #local yy = rnd(3); #if (yy = 1) #write(_txtr_file, " turbulence 0.4\n") #end #write(_txtr_file, " translate <32, -1, -15.2> \n }\n") #write(_txtr_file, " finish {\n") #write(_txtr_file, " ambient 0.0\n") #write(_txtr_file, " diffuse 0.3\n") #write(_txtr_file, " reflection 0.7\n") #write(_txtr_file, " }\n}\n\n\n") #break #case (5) /* simple white/light grey floor */ #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 0.9 green 0.9 blue 0.9\n }\n") #local yy = rnd(4); /* do sand effect? */ #if (yy = 0) #write(_txtr_file, " normal {\n ripples 0.2\n") #local yy = rnd(3); #if (yy = 1) #write(_txtr_file, " turbulence 0.4\n") #end #write(_txtr_file, " translate <32, -1, -15.2> \n }\n") #end #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n}\n\n\n") #break #case (6) /* complicated stone floor with grid and reflecting pools and scattered spots of magenta */ #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " granite\n") /* stone (bottom layer) */ #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.5 color red 0.8 green 0.8 blue 0.8\n") #write(_txtr_file, " color red 0.9 green 0.9 blue 0.9 ]\n") #write(_txtr_file, " [0.5 1.0 color red 0.9 green 0.9 blue 0.9\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " scale <0.3, 0.3, 0.3>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture { // puddles\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " bozo\n") #write(_txtr_file, " scale <10.0, 10.0, 10.0>\n") #write(_txtr_file, " translate <1.0, -200.0, -9.1>\n ") do_random_rotate() #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.7 color red 1 green 1 blue 1 filter 1\n") #write(_txtr_file, " color red 1 green 1 blue 1 filter 1 ]\n") #write(_txtr_file, " [0.7 0.8 color red 1 green 1 blue 1 filter 0\n") #write(_txtr_file, " color red 1 green 1.0 blue 1 filter 0 ]\n") #write(_txtr_file, " [0.8 1.001 color red 1 green 1.0 blue 1 filter 1\n") #write(_txtr_file, " color red 1 green 1.0 blue 1 filter 1 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") /* magenta spots */ #write(_txtr_file, " bozo\n") #write(_txtr_file, " scale <2.0, 2.0, 2.0>\n") #write(_txtr_file, " translate <50.0, 23.0, 4.0>\n ") do_random_rotate() #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.036 color red 0.8 green 0.0 blue 1.0 filter 0.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " [0.036 1.001 color red 1.0 green 1.0 blue 1.0 filter 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") /* clear red bands, X direction*/ #write(_txtr_file, " gradient <1.0, 0.0, 0.0>\n") #write(_txtr_file, " scale <4.0, 4.0, 4.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.1 color red 0.9 green 0.2 blue 0.2 filter 0.9\n") #write(_txtr_file, " color red 0.9 green 0.2 blue 0.2 filter 0.9 ]\n") #write(_txtr_file, " [0.1 0.9 color red 1.0 green 1.0 blue 1.0 filter 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " [0.9 1.001 color red 0.9 green 0.2 blue 0.2 filter 0.9\n") #write(_txtr_file, " color red 0.9 green 0.2 blue 0.2 filter 0.9 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") /* clear red bands, Z direction*/ #write(_txtr_file, " gradient <0.0, 0.0, 1.0>\n") #write(_txtr_file, " scale <4.0, 4.0, 4.0>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 0.1 color red 0.9 green 0.2 blue 0.2 filter 0.9\n") #write(_txtr_file, " color red 0.9 green 0.2 blue 0.2 filter 0.9 ]\n") #write(_txtr_file, " [0.1 0.9 color red 1.0 green 1.0 blue 1.0 filter 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 filter 1.0 ]\n") #write(_txtr_file, " [0.9 1.001 color red 0.9 green 0.2 blue 0.2 filter 0.9\n") #write(_txtr_file, " color red 0.9 green 0.2 blue 0.2 filter 0.9 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #break #case (7) /* blue white checker w/ reflection */ #case (8) #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " pigment { color red 0.0 green 0.1 blue 0.9 },\n") #write(_txtr_file, " pigment { color red 1.0 green 1.0 blue 1.0 }\n") #write(_txtr_file, " scale <2.0, 2.0, 2.0>\n") #if (rnd(2) = 1) #write(_txtr_file, " rotate <0.0, 45.0, 0.0>\n") #end #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.5 reflection 0.2 }\n}\n\n\n") #break #case (9) /* hexagons */ #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " hexagon\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " bozo\n") #write(_txtr_file, " turbulence 1.2\n") #write(_txtr_file, " ") do_random_rotate() #write(_txtr_file, "\n color_map {\n") #write(_txtr_file, " [0.0 color red 0.0 green 0.05 blue 0.5 ]\n") #write(_txtr_file, " [0.5 color red 0.0 green 0.1 blue 1.0 ]\n") #write(_txtr_file, " [1.0 color red 0.5 green 0.2 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " },\n") #write(_txtr_file, " pigment { color red 1.0 green 1.0 blue 1.0 },\n") #write(_txtr_file, " pigment { color red 0.5 green 0.5 blue 0.5 }\n") #write(_txtr_file, " scale <2.0, 2.0, 2.0>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.2 diffuse 0.5 reflection 0.2 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #break #case (10) /* complicated garish texture */ #write(_txtr_file, " texture {\n") #write(_txtr_file, " bozo\n") #write(_txtr_file, " texture_map { \n") #write(_txtr_file, " [0.0 water_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " [0.55 water_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " [0.57 beach_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " [0.6 beach_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " [0.7 land_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " [1.0 land_texture scale <0.1, 0.1, 0.1> ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " scale <4, 4, 4>\n") #write(_txtr_file, " translate <1, 0, -4>\n") #write(_txtr_file, "}\n") #break #else /* gold outlined checker */ #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " checker\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " bozo\n") #write(_txtr_file, " turbulence 1.9\n") #write(_txtr_file, " scale <0.8, 0.8, 0.8>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0 color red 0 green 0.08 blue 1 ]\n") #write(_txtr_file, " [1 color red 0.5 green 0.5 blue 0.5 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " },\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " agate\n") #write(_txtr_file, " translate <-20, 53, 4>\n") #write(_txtr_file, " scale <0.3, 0.3, 0.3>\n") #write(_txtr_file, " rotate <3, -6, 1.7>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0 color red 1 green 1 blue 1 ]\n") #write(_txtr_file, " [1 color red 0.7 green 0.7 blue 0.7 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " scale <2, 2, 2>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " normal {\n") #write(_txtr_file, " dents 0.3\n") #write(_txtr_file, " translate <3.1, 7.2, 8.9>\n") #write(_txtr_file, " scale <0.2 0.2 0.2>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.5 reflection 0.2 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " gradient <1, 0, 0>\n") #write(_txtr_file, " scale <2, 2, 2>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [ 0.0 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 0.01 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 0.01 color red 1 green 1 blue 1 filter 1 ]\n") #write(_txtr_file, " [ 0.99 color red 1 green 1 blue 1 filter 1 ]\n") #write(_txtr_file, " [ 0.99 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 1.0 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.5 reflection 0.2 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " gradient <0, 0, 1>\n") #write(_txtr_file, " scale <2, 2, 2>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [ 0.0 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 0.01 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 0.01 color red 1 green 1 blue 1 filter 1 ]\n") #write(_txtr_file, " [ 0.99 color red 1 green 1 blue 1 filter 1 ]\n") #write(_txtr_file, " [ 0.99 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " [ 1.0 color red 1 green 0.9 blue 0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.5 reflection 0.2 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n") #end /* end switch */ #write(_txtr_file, "\n\n") #else /* no floor */ #declare yes_floor = false; #end #end #macro do_floaty_platform() #switch (big_area) #case (1) #local limits = 8; #break #case (2) #local limits = 16; #break #else #local limits = 4; #end #if (rnd(3) > 0) #write(_txtr_file, "box { <-8.0, -0.01, -8.0>, ") #local temp = (limits * 4) - 8; #write(_txtr_file, "<", temp, ", -0.02, ", temp, ">\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " gradient <1, 0, 0>\n") #write(_txtr_file, " scale <4, 4, 4>\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.02 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.02 color red 1.0 green 1.0 blue 1.0 filter 0.6 ]\n") #write(_txtr_file, " [0.95 color red 1.0 green 1.0 blue 1.0 filter 0.6 ]\n") #write(_txtr_file, " [0.98 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [1.0 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.7 diffuse 0.3 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " gradient <0, 0, 1>\n") #write(_txtr_file, " scale 4\n") #write(_txtr_file, " color_map {\n") #write(_txtr_file, " [0.0 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.02 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [0.02 color red 1.0 green 1.0 blue 1.0 filter 1 ]\n") #write(_txtr_file, " [0.98 color red 1.0 green 1.0 blue 1.0 filter 1 ]\n") #write(_txtr_file, " [0.98 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " [1.0 color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.7 diffuse 0.3 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, "}\n\n\n") #end /* end if */ #end #macro do_rogers_can(xx, zz) #local m = 0; #write(_txtr_file, "// B.R. cargo canister\n") #write(_txtr_file, "intersection {\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, -0.7 inverse }\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, 0.7 } //top\n") #write(_txtr_file, " object { Cylinder_Y } //outer cylinder}\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " object { Cylinder_Y\n") #write(_txtr_file, " scale <0.9, 1.0, 0.9>\n") #write(_txtr_file, " }\n") #write(_txtr_file, " plane { <0.0, 1.0, 0.0>, -0.5 }\n") #write(_txtr_file, " plane { <0.0, 1.0, 0.0>, 0.5 inverse }\n") #write(_txtr_file, " intersection {\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, -0.1 }\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, -0.3 inverse }\n") #write(_txtr_file, " } //end_intersection\n") #write(_txtr_file, " intersection {\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, 0.3 }\n") #write(_txtr_file, " plane {<0.0, 1.0, 0.0>, 0.1 inverse }\n") #write(_txtr_file, " } // end_intersection\n") #write(_txtr_file, " } // end_union\n") #write(_txtr_file, " pigment {\n") #write(_txtr_file, " wood\n") #write(_txtr_file, " rotate <90.0, 0.0, 0.0> // new\n") #write(_txtr_file, " scale <1.01, 2000.0, 1.01>\n") #write(_txtr_file, " color_map {\n") #local m = rnd(5); #switch (m) #case (0) #write(_txtr_file, " [0.0 0.1 color red 0.2 green 0.2 blue 0.8\n") #write(_txtr_file, " color red 0.2 green 0.2 blue 0.8 ]\n") #break #case (1) #write(_txtr_file, " [0.0 0.1 color red 0.5 green 0.5 blue 0.5\n") #write(_txtr_file, " color red 0.5 green 0.5 blue 0.5 ]\n") #break #case (2) #write(_txtr_file, " [0.0 0.1 color red 0.6 green 0.4 blue 0.2\n") #write(_txtr_file, " color red 0.6 green 0.4 blue 0.2 ]\n") #break #else #write(_txtr_file, " [0.0 0.1 color red 0.8 green 0.2 blue 0.2\n") #write(_txtr_file, " color red 0.8 green 0.2 blue 0.2 ]\n") #end #write(_txtr_file, " [0.1 1.0 color red 1.0 green 1.0 blue 1.0\n") #write(_txtr_file, " color red 1.0 green 1.0 blue 1.0 ]\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " translate <0, 0.7, 0>\n") #write(_txtr_file, " scale <0.7, 1.2, 0.7>\n") #write(_txtr_file, " translate <", ((xx * 4) - 6) , ", 0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n") #write(_txtr_file, "object { Cube\n") #local m = rnd(4); #switch (m) #case (0) #write(_txtr_file, " scale <0.9, 0.5, 0.5>\n") // this one is good #write(_txtr_file, " translate <-0.3, 0.25, 1.05>\n") #break #case (1) #write(_txtr_file, " scale <0.9, 0.5, 0.5>\n") // this one is good #write(_txtr_file, " translate <-0.3, 0.25, -1.05>\n") #break #case (2) #write(_txtr_file, " scale <0.5, 0.5, 0.9>\n") // this one is good #write(_txtr_file, " translate <-1.05, 0.25, 0.3>\n") #break #else // the problem? #write(_txtr_file, " scale <0.5, 0.5, 0.9>\n") #write(_txtr_file, " translate < 1.05, 0.25, -0.3>\n") #end #write(_txtr_file, " pigment {\n") #write(_txtr_file, " color red 1 green 0.8 blue 0.6\n") #write(_txtr_file, " }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n\n\n") #end #macro do_lazer_tower(xx, zz) #write(_txtr_file, "// lazer\n") #write(_txtr_file, "union {\n") #write(_txtr_file, " cylinder { <0, 0, 0>, <0, 0.2, 0>, 1.4 // base\n") #write(_txtr_file, " pigment { color red 0.3 green 0.3 blue 0.3 }\n") #write(_txtr_file, " finish { metallic ambient 0.4 diffuse 0.6 specular 0.4 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // outer white parts\n") #write(_txtr_file, " intersection {\n") #write(_txtr_file, " cylinder { <0, 2.5, 0>, <0, 0, 0>, 0.9}\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " box { < -0.9, 2.6, -0.05>, < 0.9, 0.0, 0.05> }\n") #write(_txtr_file, " box { < -0.05, 2.6, -0.9>, < 0.05, 0.0, 0.9> }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " cylinder { <0, 2.4, 0>, <0, 1.9, 0>, 0.76 }\n") #write(_txtr_file, " cylinder { <0, 2.2, 0>, <0, 0.1, 0>, 0.8 }\n") #write(_txtr_file, " inverse\n") #write(_txtr_file, " }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 1.0 green 1.0 blue 1.0 }\n") #write(_txtr_file, " finish { ambient 0.4 diffuse 0.6 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // toruses (lazer baffles)\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " torus { 0.65, 0.15 translate <0, 0.6, 0> }\n") #write(_txtr_file, " torus { 0.65, 0.15 translate <0, 0.9, 0> }\n") #write(_txtr_file, " torus { 0.65, 0.15 translate <0, 1.2, 0> }\n") #write(_txtr_file, " pigment { color red 0.0 green 0.05 blue 0.5 }\n") #write(_txtr_file, " finish { ambient 0.2 diffuse 0.2 reflection 0.4 metallic specular 0.6}\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // main barrel\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " cylinder { <0.0, 0.05, 0.0>, <0.0, 1.0, 0.0> 0.6 }\n") #write(_txtr_file, " cylinder { <0.0, 0.05, 0.0>, <0.0, 2.1, 0.0> 0.4 }\n") #write(_txtr_file, " cylinder { <0.0, 0.05, 0.0>, <0.0, 3.1, 0.0> 0.25 }\n") #write(_txtr_file, " cylinder { <0.0, 0.05, 0.0>, <0.0, 3.8, 0.0> 0.17 }\n") #write(_txtr_file, " intersection {\n") #write(_txtr_file, " cylinder { <0, 1.6, 0>, <0, 1.9, 0>, 0.5 }\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " box { <-1, 1.71, 0.1>, < 1, 1.29, -0.1> }\n") #write(_txtr_file, " box { < 0.1, 1.71, -1>, <-0.1, 1.29, 1> }\n") #write(_txtr_file, " inverse\n") #write(_txtr_file, " } \n") #write(_txtr_file, " }\n") #write(_txtr_file, " cylinder { <0, 2.8, 0>, <0, 3.5, 0>, 0.1 translate x*0.5 }\n") #write(_txtr_file, " cylinder { <0, 2.8, 0>, <0, 3.5, 0>, 0.1 translate x*0.5 rotate y*90}\n") #write(_txtr_file, " cylinder { <0, 2.8, 0>, <0, 3.5, 0>, 0.1 translate x*0.5 rotate y*-90}\n") #write(_txtr_file, " cylinder { <0, 2.8, 0>, <0, 3.5, 0>, 0.1 translate x*0.5 rotate y*180}\n") #write(_txtr_file, " cylinder { <-0.48, 2.95, 0>, < 0.48, 2.95, 0>, 0.05 }\n") #write(_txtr_file, " cylinder { < 0, 2.95, -0.48>, < 0, 2.95, 0.48>, 0.05 }\n") #write(_txtr_file, " pigment { color red 1.0 green 1.0 blue 1.0 }\n") #write(_txtr_file, " finish { ambient 0.3 diffuse 0.7 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " // top of barrel\n") #write(_txtr_file, " union {\n") #write(_txtr_file, " cylinder { < 0, 3.799, 0>, <0, 4.4, 0>, 0.12 } // tip\n") #write(_txtr_file, " cylinder { < 0, 4, 0>, <0, 4.05, 0>, 0.4 } // flangy bits\n") #write(_txtr_file, " cylinder { < 0, 4.1, 0>, <0, 4.15, 0>, 0.4 }\n") #write(_txtr_file, " cylinder { < 0, 4.2, 0>, <0, 4.25, 0>, 0.4 }\n") #write(_txtr_file, " texture {\n") #write(_txtr_file, " pigment { color red 0.97 green 0.97 blue 0.98 }\n") #write(_txtr_file, " finish { metallic ambient 0 diffuse 0.2 reflection 0.7 specular 0.9 }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " }\n") #write(_txtr_file, " translate <", ((xx * 4) - 6), ", 0, ", ((zz * 4) - 6), ">\n") #write(_txtr_file, "}\n\n\n") #end #macro do_objects() #switch (big_area) #case (1) #local limits = 8; #break #case (2) #local limits = 16; #break #else #local limits = 4; #end #local zz = 0; #while (zz < limits) #local xx = 0; #while (xx < limits) /* first decide if this spot will get an object at all */ #if (rnd(16) < 5) #local which = rnd(13); /* now pick which object to place in this spot */ #switch (which) #case (0) #case (1) do_escher(xx, zz) #break #case (2) #case (3) do_marbles(xx, zz) #break #case (4) #case (5) do_c_sphere(xx, zz) #break #case (6) do_checker_sphere(xx, zz) #break #case (7) do_octo(xx, zz) #break #case (8) do_rogers_can(xx, zz) #break #case (9) do_lazer_tower(xx, zz) #break #case (10) do_blobs(xx, zz) #break #else do_planes(xx, zz) #end /* end switch */ #end /* end if */ #local xx = xx + 1; #end /* end x */ #local zz = zz + 1; #end /* end z */ #end /* end subroutine */ do_settings() do_view() /* set camera */ do_wall() do_declares() do_floor_declare() do_floor() do_sky() #if (yes_sky = false) do_sky_sphere() #else #if (yes_floor = false) do_sky_sphere() #end #end #if (yes_sky_sphere = false) do_fog() #end #if (yes_night = true) #if (yes_sky = true) do_darken_sky() #end #if (yes_fog = true) do_darken_sky() #end #end #if (yes_floor = false) do_floaty_platform() #end do_objects() do_light() #write(_txtr_file, "// actual end of this file\n") #fclose _txtr_file #render "\nabout to include try.pov\n" #include "try.pov" #render "\n done with try.pov\n" update_seed() // update seed in random.pov file so next render will be different /* actual end of this file */