add the "Vase" concept

This commit is contained in:
Tonton Th
2026-02-20 12:51:23 +01:00
parent 59c2b266ef
commit 0207fc942b

130
essai.pov
View File

@@ -159,15 +159,117 @@ union {
// =======================================================
/* Les choses, c'est l'espèce de vase avec des tiges
qui bougent, je devrais trouver un nom plus parlant */
qui bougent, je devrais trouver un nom plus parlant.
Mieux, on garde la chose mais on en dérive le vase
*/
#macro Vase_le_corps_a ()
intersection {
box { <-5, -5, -5>, <5, 0, 5> }
difference {
sphere { 0, 0.34 }
sphere { 0, 0.30 }
scale <1, 1.64, 1>
}
texture { T_WIP_redwave scale 0.15 + 0.333*rand(Rng1)
rotate <75*rand(Rng1), 75*rand(Rng1), 75*rand(Rng1)>
}
}
#end
// ------------------------------------
#macro Vase_le_corps_b ()
union {
#for (foo, 0, 359.999, 60)
#local Dx = 0.35 * sin(radians(foo));
#local Dz = 0.35 * cos(radians(foo));
torus { 0.09, 0.016
rotate z*30 rotate y*(foo-90)
translate <Dx, 0, Dz>
#local R = rand(Rng1);
#if (R < 0.50) texture { Y_Texture }
#else texture { M_Texture }
#end // end if
} // torus
#end // end for (foo
}
#end // end macro
// ------------------------------------
// ASSEMBLER LE CORPS
#macro Vase_le_corps ()
union {
object { Vase_le_corps_a () }
object { Vase_le_corps_b () }
translate y*0.95
}
#end
// ------------------------------------
// LE PIED
#macro Vase_le_pied ()
union {
cylinder { 0, y*0.80, 0.07 texture { T_WIP_dents scale 0.2 } }
cylinder { 0, y*0.08, 0.20 texture { T_WIP_dents scale 0.4 } }
}
#end
// ------------------------------------
// LES TIGES
#macro Vase_les_tiges ()
union {
#local CK = NormClock * (7.876+rand(Rng1));
#for (Foo, 0, 9)
// tout cela est bien tortueux !
#local CK2 = CK + Foo;
#local C2X = (R_C + 0.051) * sin(CK2+rand(Rng1)) * sin(CK*3);
#local C2Z = (R_C + 0.051) * (sin(-CK2+rand(Rng1)) *
cos(CK*(rand(Rng1))));
#local Rt = 0.02+(0.02*Cos_010(NormClock))-0.03*rand(Rng1);
#local H = 0.38 + 0.55*rand(Rng1);
union {
cylinder { 0, <C2X, H, C2Z>, Rt }
sphere { <C2X, H, C2Z>, Rt }
#local R = rand(Rng1);
#if (R < 0.25) texture { tPlasticOrange }
#elseif (R < 0.50) texture { tPlasticBlue }
#elseif (R < 0.75) texture { tPlasticPrune }
#else texture { tPlasticGreen }
#end // if
}
#end // for
translate y*0.87
}
// #debug "== Fin chose les tiges\n"
#end // macro
// ------------------------------------
// ------------------------------------
#macro Vase ()
union {
Vase_le_pied ()
Vase_le_corps ()
Vase_les_tiges ()
}
#end // macro
// ------------------------------------
// =======================================================
#declare Des_Choses = object
{
union {
object { Chose () translate < 2.2, 0, 2.32> }
object { Chose () translate <-2.9, 0, 3.91> }
object { Chose () translate < 2.9, 0, -4.07> }
object { Chose () translate <-4.5, 0, -4> }
object { Repere translate 0.05*y }
object { Vase () scale 2 translate < 2.2, 0, 2.32> }
object { Vase () scale 1.4 translate <-2.9, 0, 3.91> }
object { Vase () scale 2 translate < 2.9, 0, -4.07> }
object { Vase () translate <-4.5, 0, -4> }
object { Repere translate 0.15*y }
}
}
// =======================================================
@@ -214,9 +316,12 @@ union {
#debug " !!! ACTION !!!\n"
#local Rv = 0.5 + (0.1*sin(clock*0.113));
#local Gv = 0.11;
#local Bv = 0.2 * abs(sin(clock*0.014));
light_source {
<-19, 44, -7>
colour Gray40
<-32, 40, -7>
colour <Rv, Gv, Bv>
parallel
point_at 0
}
@@ -231,13 +336,14 @@ union {
#switch (Selector)
#case (0)
object { Des_Choses }
#local AngleCam = 17;
#break
#case (1)
object { Architecture rotate -y*(clock*0.666) }
#local AngleCam = 31.0;
#break
#case (2)
object { HoleBorder_A (2.12) translate y }
object { HoleBorder_B (2.222) }
#break
#case (3)
object { HorlogeDouble scale 2 rotate -y*(6*clock) }
@@ -247,7 +353,7 @@ union {
object { Blob_Boxed
scale 4.000
rotate <7, 0, 12> translate 3.7*y
rotate -y*(clock*2) }
}
#break
#case (5)
object { Anemone_A (3.10-NormClock, 1.50+NormClock)
@@ -261,7 +367,7 @@ union {
object { Repere }
#break
#case (6)
object { HexaStar scale 3 rotate y*(clock*0.5) translate y*3 }
object { HexaStar scale 3 rotate y*(clock*1.5) translate y*3.5 }
#break
#case (7)
#local Pos = <0.5-NormClock, 0, 0>;
@@ -289,7 +395,7 @@ plane {
camera {
orthographic
location <CamX, CamY, CamZ>
look_at <0, 1.6, 0>
look_at <0, 1.5, 0>
right <image_width/image_height, 0, 0>
angle AngleCam