/* * nouveau projet Thu Dec 5 11:37:05 AM UTC 2024 */ /* voir aussi le fichier 'globals.inc' */ /* ------------------------------------------------------------ */ #macro GyroPhare_mat () cylinder { 0, y*H_gyro, R_gyro #if (rand(Rng1) < 0.5) texture { T_Stone25 scale 1+rand(Rng1) } #else texture { T_Stone6 } #end } #end // macro #macro GyroPhare_lampe () union { difference { cylinder { 0, y*0.20, R_gyro } cylinder { y*0.01, y*0.19, R_gyro*0.97 } #local WB = 0.015; box { <-1, 0.03, -WB>, <1, 0.18, WB> } box { <-WB, 0.03, -1>, } #undef WB pigment { color Gray90 } #local Ro = 0.5-rand(Rng1); #if (abs(Ro) < 0.01) #local Ro = Ro * 10; #end rotate y*(0.5-rand(Rng1)) * clock } light_source { y*0.10 rgb <0.8, 0.9, 0.999999999> fade_distance 3.96 fade_power 1.55 } } #end // macro #macro GyroPhare () union { object { GyroPhare_mat () } object { GyroPhare_lampe () // rotate y*rand(Rng1)*clock translate y*(H_gyro+0.02) } } #end // macro #macro Les_GyroPhares () union { #local E = SzSol * 0.485; object { GyroPhare () translate <-E, 0, -E> } object { GyroPhare () translate < E, 0, -E> } object { GyroPhare () translate <-E, 0, E> } object { GyroPhare () translate < E, 0, E> } object { GyroPhare () translate <-E, 0, 0> } object { GyroPhare () translate < E, 0, 0> } object { GyroPhare () translate < 0, 0, -E> } object { GyroPhare () translate < 0, 0, E> } #undef E } #end /* ------------------------------------------------------------ */ #declare Rhxba = 0.30; #declare R2hxba = Rhxba * 0.48; #declare HexaBalls = object { merge { sphere { 0, Rhxba } #local E = Rhxba * 1.260; sphere { 0, R2hxba translate <-E, 0, 0> } sphere { 0, R2hxba translate < E, 0, 0> } sphere { 0, R2hxba translate < 0, -E, 0> } sphere { 0, R2hxba translate < 0, E, 0> } sphere { 0, R2hxba translate < 0, 0, -E> } sphere { 0, R2hxba translate < 0, 0, E> } #undef E } } #declare Les_Bibelots = object { union { object { HexaBalls texture { Lightning1 scale 0.33 } rotate translate <5, -1.1+1.01*Cos_010(NormClock), 7> } object { HexaBalls texture { Lightning2 scale 0.56 } // rotate <-clock, clock*0.33333, clock> translate <7, -1+0.92*Cos_010(NormClock), -6> } } } /* ------------------------------------------------------------ */ #declare RHBlo = 0.24; #declare RHBlo2 = RHBlo * 0.666; #declare HexaBlob = object { blob { // threshold 0.01 + NormClock threshold 0.01 sphere { <0, 0, 0>, RHBlo, 1 } #local E = RHBlo * 1.210; #local W = 0.1; sphere { <-E, 0, 0>, RHBlo2, W } sphere { < E, 0, 0>, RHBlo2, W } sphere { < 0, -E, 0>, RHBlo2, W } sphere { < 0, E, 0>, RHBlo2, W } sphere { < 0, 0, -E>, RHBlo2, W } sphere { < 0, 0, E>, RHBlo2, W } } } // ======================================================= #declare Le_Sol = object { height_field { png "datas/hf.png" smooth translate <-.5, 0, -.5> scale texture { pigment { // color DarkGreen image_map { png "datas/cmap.png" } // translate <-.5, 0, -.5> scale } // normal { bumps 0.035 scale 0.186 } finish { phong 0.125 } } } } #declare Underground = object { plane { y, -0.80 } texture { pigment { color Gray20 } normal { bumps 0.25 scale 6 } } } // ======================================================= #declare Repere = object { union { cylinder { 0, <1, 0, 0>, 0.008 pigment { color Red } } cylinder { 0, <0, 0, 1>, 0.008 pigment { color Blue } } } } // ======================================================= #declare Les_Lumieres = object { union { #if (1) light_source { <0.3, 3.50, 2.8> color Gray90 spotlight radius 14 falloff 10 tightness 10 point_at <0, 0.95, 0.22222222> } #end #if ( (clock>166) & (clock<213) ) light_source { <2, 10.30, -2> color Yellow spotlight radius 12 falloff 20 tightness 10 point_at <-0.08, 0.80, 0.17> } #end #if (1) light_source { <-5, 5.60, 8> #if ( (clock > 290) & (clock<344) ) #local Couleur = rgb <0.20, 0.20, 0.90>; #else #local Couleur = rgb <0.80, 0.80, 0.70>; #end color Couleur spotlight radius 12 falloff 10 tightness 5 point_at <0, 0.95, -0.22> } #end light_source { <-4, 54, -7> colour Yellow*0.76 parallel point_at 0 } } } // #declare Le_Ciel = object // { sky_sphere { pigment { gradient y color_map { [ 0.2 color Gray10 ] [ 0.4 color Gray60 ] [ 0.7 color Black ] [ 0.8 color White ] [ 1.0 color Gray10 ] } turbulence 3.14159 + 0.78 * Cos_010(NormClock) scale 1.804 // translate -1 } #local Kem = 0.09; emission rgb } // } /* ------------------------------------------------------------ */ /* * Et on rassemble tous les éléments... */ #declare Le_Decor = object { union { object { Le_Sol } object { Underground } object { Les_Bibelots } object { Les_Lumieres } object { Les_GyroPhares () } } } /* ------------------------------------------------------------ */