Compare commits

..

17 Commits

Author SHA1 Message Date
Tonton Th
c37530d999 reglage texture 2026-03-04 21:40:09 +01:00
Tonton Th
15849c4aa2 ajustement horloge double 2026-03-04 21:39:25 +01:00
Tonton Th
3f57aec353 another another camera twiddling 2026-03-03 19:42:05 +01:00
Tonton Th
90562d2ce6 camera tuning 2026-03-01 21:09:10 +01:00
Tonton Th
daaa8eeb01 better metadata in vidz 2026-02-27 22:38:56 +01:00
Tonton Th
35e6c0dfb5 camera change 2026-02-25 14:14:45 +01:00
Tonton Th
6ee8932ba4 typographic perversity 2026-02-20 23:20:17 +01:00
Tonton Th
a3558cc1db adjust cameras before the next rendering batch 2026-02-20 23:14:10 +01:00
Tonton Th
2eea147f82 another bunch of little changes 2026-02-20 12:54:57 +01:00
Tonton Th
4dca1e7d79 geometry tuning 2026-02-20 12:52:50 +01:00
Tonton Th
0207fc942b add the "Vase" concept 2026-02-20 12:51:23 +01:00
Tonton Th
59c2b266ef small changes 2026-02-19 13:04:02 +01:00
Tonton Th
f6104c8b5d that was a bad idea 2026-02-18 19:19:20 +01:00
Tonton Th
676cf5bd87 clean the brotch 2026-02-18 02:02:10 +01:00
Tonton Th
c0a0d2467e hardening the camera 2026-02-17 23:15:31 +01:00
Tonton Th
5e5d0ae116 fix an excessive psychedelic effect 2026-02-17 23:14:51 +01:00
Tonton Th
b6ac4f8ce5 dynamic and camera tuning 2026-02-17 22:28:18 +01:00
27 changed files with 229 additions and 81 deletions

View File

@@ -15,11 +15,11 @@ object { Le_Decor }
// =======================================================
#declare LocX = 0;
#declare LocY = 3.6 - NormClock;
#declare LocZ = -220 + (120 * NormClock);
#declare LocX = -0.5 + Cos_010(NormClock);
#declare LocY = 2.6 - NormClock;
#declare LocZ = -200 + (118 * NormClock);
#declare LocCam = <LocX, LocY, LocZ>;
#declare LatCam = <0, 1.2, 0>;
#declare LatCam = <0, 0.92+NormClock, 0>;
// object { Repere scale 5 translate Interpolate(LocCam, LatCam, 0.50) }

View File

@@ -71,7 +71,7 @@ merge {
#if (R < 0.63)
texture { T_Grnt6 scale 4 }
#else
texture { T_Stone34 scale 3+rand(Rng2) }
texture { T_Stone34 scale 3+rand(Rng1) }
#end
}
#end // macro

View File

@@ -16,16 +16,16 @@ object { Le_Decor }
// =======================================================
#declare R_around = 128;
#declare R_around = 120;
#declare CK = 2.9 + (3.141592654 * NormClock);
#declare CamX = R_around * cos(CK);
#declare CamY = 15.777 + (4*Cos_010(NormClock));
#declare CamZ = R_around * 1.5 * sin(CK);
#declare CamY = 15 + (6*Cos_010(NormClock));
#declare CamZ = R_around * 1.8 * sin(CK);
camera {
location <CamX, CamY, CamZ>
look_at <0, 2, 0>
look_at <0, 0.5 + NormClock, 0>
right <image_width/image_height, 0, 0>
angle 44
angle 36
}

View File

@@ -30,7 +30,7 @@ union {
object { Le_Decor }
camera {
location <45, 149+(99*NormClock), 18-(12*NormClock)>
location <46, 149+(117*NormClock), 18-(12*NormClock)>
look_at <0, 1.18, 0.17 + (2.4*NormClock)>
right <image_width/image_height, 0, 0>
angle 50

View File

@@ -379,7 +379,7 @@ union {
object { QuadriLight }
object { Les_GyroPhares () }
object { Les_HexaPoles }
object { HorlogeDouble rotate y*(27*NormClock)
object { HorlogeDouble rotate y*(104*NormClock)
translate < 8, 0, -30> }
object { Les_Choses }
object { Les_Arches (1.9) rotate y*132 translate <-34, 0, -26> }

View File

@@ -18,7 +18,7 @@
#declare Kbox = (2.03*NormClock);
difference {
object { HexaCone () rotate <3-(6*NormClock), 5, -3> }
object { HexaCone () rotate <9-(11*NormClock), 6, -7> }
box { -1, 1 translate z*Kbox }
translate y*TY + POS_Cutoff
}
@@ -29,7 +29,7 @@ difference {
// =======================================================
light_source {
<-24, 0.4, -1>
<-14, 0.4, -1>
colour Orange
parallel
point_at y*TY + POS_Cutoff
@@ -40,7 +40,7 @@ object { Le_Decor }
// =======================================================
#local CamX = POS_Cutoff.x + 3.5 + (3.14*Cos_01(NormClock));
#local CamY = 2.1 + (1.11*sqrt(NormClock));
#local CamY = 2.01 + (1.14*sqrt(NormClock));
#local CamZ = POS_Cutoff.z + 4.30 - (1.02*NormClock);
camera {

View File

@@ -7,11 +7,11 @@
object {
#local CK = clock / 210; // en radians
#local CK = (clock / 230) - 0.75; // en radians
#local RD = 63; // rayon deplacement
#local Xp = RD * sin(CK);
#local Zp = RD * cos(CK);
#declare Loc_Patrouille = <Xp+10, 75+(11*NormClock), Zp>;
#declare Loc_Patrouille = <Xp+10, 70+(11*NormClock), Zp>;
object { Patrouille }
rotate y*degrees(CK)
@@ -36,10 +36,12 @@ object {
/// =======================================================
/* des trucs autour des trous du sol. */
// object { Les_HexaBalls rotate y*clock translate UnderHoles[2] }
// Les_Machins --> 'gadgets.inc'
object { Les_Machins rotate -y*clock translate UnderHoles[2] }
object { Les_Machins rotate y*clock translate UnderHoles[5] }
// object { Les_HexaBalls rotate y*clock translate UnderHoles[2] }
/// =======================================================
/*
* deux hexabenz sur une base exterieure
@@ -48,11 +50,11 @@ object { Les_Machins rotate y*clock translate UnderHoles[5] }
{
#local K = 1.39;
union {
object { HexaBenz () rotate y*90 translate <-K, 1.83, 0> }
object { HexaBenz () translate < K, 1.66, 0> }
object { HexaBenz () rotate y*94 translate <-K, 1.86, 0> }
object { HexaBenz () rotate -x*7 translate < K, 1.96, 0> }
}
}
object { BiBenz rotate -y*(clock*0.26) translate Pos_RedB_0 }
object { BiBenz rotate -y*(clock*0.28) translate Pos_RedB_0 }
/*
* deux hexacones se tournent autour

View File

@@ -20,7 +20,7 @@
#for (idZ, -3, 3)
#local posX = (idX * 4.76) + (rand(Rng1)-0.5);
#local posY = 3.2 + (NormClock * 12 * (rand(Rng1)+0.95));
#local posY = 3.2 + (NormClock * 17 * (rand(Rng1)+0.95));
#local posZ = (idZ * 4.44) ;
#local Rx = (rand(Rng1) - 0.5) * 12;
#local Ry = (rand(Rng1) - 0.5) * (24+NormClock);
@@ -63,5 +63,5 @@ camera {
location <CamX, CamY, CamZ>
look_at <0.0, LatY, 0>
right <image_width/image_height, 0, 0>
angle 56 - (28 * NormClock)
angle 54 - (31 * NormClock)
}

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

View File

@@ -135,8 +135,11 @@ texture { T_WIP_bluewave scale 0.21 rotate <clock, clock/2, clock/3> }
}
/* ======================================================= */
/*
* 18 février 2026, cette horloge mérite vraiment
* d'être refaite de fond en comble, parce que ce
* code est vraiment gruik.
*/
#declare Horloge = object
{
@@ -152,7 +155,7 @@ scale 1.96
rotate 90*x
translate <-4.5, 0.046, 0>
}
// =======================================================
// ----------------------------------------------------------
// nouveau du 3 janvier 2026
#local Horloge2 = object
{
@@ -162,14 +165,14 @@ object { Horloge scale <1, 0.28, 1> rotate -x*90
#declare HorlogeDouble = object
{
union {
box { <-3.20, 0.0, -0.07>, <3.20, 1.68, 0.07>
box { <-3.10, 0.0, -0.06>, <3.10, 1.68, 0.06>
texture { LeGris } }
#local EC = 0.12;
#local EC = 0.18;
object { Horloge2 rotate y*180 translate z*EC }
object { Horloge2 translate -z*EC }
}
scale 0.51
translate y*0.999
scale 0.42
translate y*0.666
}
// =======================================================
/*
@@ -274,12 +277,13 @@ union {
texture { Soft_Silver scale 6.50 }
}
#end
// ------------------------------------------------------ ##
// ----------------------------------------------------------- ##
/* XXX +++ make this a #macro +++ */
#declare Blob_Boxed = object
{
union {
object { OpenBox(0.5, 0.01) }
object { HexaBlob }
object { HexaBlob rotate <clock*0.9, clock*0.7, clock*0.5> }
}
}
// =======================================================
@@ -289,7 +293,7 @@ union {
*/
#macro Bubble ()
sphere {
0, 0.070
0, 0.070 + 0.056*rand(Rng1)
#local R = rand(Rng1);
#if ( R < 0.25 ) texture { Ruby_Glass }
#elseif ( R < 0.50 ) texture { Orange_Glass }
@@ -314,7 +318,7 @@ union {
#declare Les_Machins = object
{
union {
#local Rk = 3.90 + NormClock;
#local Rk = 3.60 + NormClock;
#for (foo, 0, 359, 45)
#local Xpos = Rk * sin(radians(foo));
#local Zpos = Rk * cos(radians(foo));

3
gif89a/README.md Normal file
View File

@@ -0,0 +1,3 @@
Space for the flashy Compuserve pictures.

View File

@@ -227,6 +227,24 @@ scale <3, 4, 3>
finish { phong 1 }
}
#declare T_WIP_redwave = texture
{
pigment {
wood
color_map {
[0.0 color Gray60 ]
[0.49 color Gray80 ]
[0.51 color Red ]
[1.0 color Red ]
}
turbulence 0.14
translate <NormClock*0.5, sqrt(NormClock*0.49),
NormClock*0.6>
scale <0.7, 0.23, 1>
}
finish { ambient 0.7 }
}
// le 10 fevrier 2026 -----------------
#declare T_WIP_dents = texture
{

View File

@@ -15,13 +15,15 @@ object { Le_Decor }
#declare Loc_cam = <0.63, 2, 2*NormClock> + (Pos_RedB_0 * 1.32);
#declare Lat_Y = 1.21 + 0.16*NormClock;
camera {
location Loc_cam
look_at Pos_RedB_0 + <0, 1.20, 0>
look_at Pos_RedB_0 + <0, Lat_Y, 0>
right <image_width/image_height, 0, 0>
// focal_point <0.37, 0.0, 0>
// aperture 0.046
// blur_samples 30
angle 40 - 14 * Cos_01(NormClock)
angle 40 - 15 * Cos_01(NormClock)
}

View File

@@ -16,11 +16,11 @@ object { Le_Decor }
// object { Repere scale 2 }
#declare Loc_cam = <2, 2.7-NormClock, 1> + (Pos_RedB_1 * 1.303);
#declare Loc_cam = <2, 2.7-NormClock, 1> + (Pos_RedB_1 * 1.308);
camera {
location Loc_cam
#local H = 1.16 + (NormClock*0.36);
#local H = 1.16 + (NormClock*0.39);
look_at Pos_RedB_1 + <0.02, H, 0>
right <image_width/image_height, 0, 0>
// focal_point <0.37, 0.90, 0>

View File

@@ -17,7 +17,7 @@ object { Le_Decor }
// object { Repere translate <10, 1, 10> }
#declare LOC = <-3.4 - NormClock, 1.60, 31.9-NormClock>;
#declare LOC = <-3.4 - NormClock, 3.35, 31.9-NormClock>;
#declare LAT = <P_hexawood.x, 0.95+(NormClock*0.11), P_hexawood.z>;

View File

@@ -87,7 +87,7 @@ light_source { <23, 10, 15>, rgb <0.77, 0.79, 0.80> }
// -------------------------------------------------------------
camera {
location <9+NormClock, 1.60+(8.6*NormClock), 11.59>
location <9+NormClock, 1.60+(9.8*NormClock), 11.59>
look_at <0.0, 0.0, 0>
right <image_width/image_height, 0, 0>
#if (0)

View File

@@ -13,22 +13,26 @@
object { Le_Decor }
// object { Repere scale 5 translate y*4 }
/* =============================================================== */
#declare CamX = 90 - (4 * NormClock);
#declare CamY = 207;
#declare CamY = 176;
#declare CamZ = 170 - (33 * NormClock);
/* XXX to be verified !
#declare LatX = Loc_Patrouille.x;
#declare LatY = Loc_Patrouille.y;
#declare LatZ = Loc_Patrouille.z;
*/
camera {
location <CamX, CamY, CamZ>
look_at Loc_Patrouille
right <image_width/image_height, 0, 0>
angle 16
angle 13
}
/* =============================================================== */

View File

@@ -1,6 +1,7 @@
/*
* H E X A C O N E - S C E N E
* nouveau projet Thu Dec 5 11:37:05 AM UTC 2024
* The first one...
*/
#version 3.7;
@@ -14,17 +15,17 @@
object { Le_Decor }
#declare CK = 144 + (clock * 0.27);
#declare CK = 144 + (clock * 0.25);
#declare Dcam = 3.75;
#declare CamX = Dcam * cos(radians(CK+0.9));
#declare CamZ = Dcam * 1.20 * sin(radians(CK));
#declare LatZ = 2.45 + (0.9 * Cos_010(NormClock));
#declare LatY = 2.45 + (1.47 * Cos_010(NormClock));
camera {
location <CamX, 1.97, CamZ>
look_at <0.03, LatZ, 0.17>
look_at <0.03, LatY, 0.17>
right <image_width/image_height, 0, 0>
// focal_point Lat
// aperture 0.046

View File

@@ -16,11 +16,11 @@ object { Le_Decor }
// =======================================================
#declare Debut = <-33, 89, 289> ;
#declare Fin = < 36, 81, -2> ;
#declare Fin = < 36, 78, -2> ;
#declare Pos = sqrt(NormClock);
#declare PosCam = Interpolate(Debut, Fin, Pos);
#declare LatX = 0.614 * sin(NormClock*9.7);
#declare LatX = 0.614 * sin(NormClock*11.27);
#declare LatZ = -(150 + (7*NormClock));
#declare LatCam = PosCam + <LatX, -95, LatZ>;
@@ -30,6 +30,6 @@ camera {
location PosCam
look_at LatCam
right <image_width/image_height, 0, 0>
angle 66
angle 64
}

View File

@@ -11,7 +11,7 @@ if [ $# == 1 ] ; then
SEQ=$1
fi
GIF="t-$SEQ.gif"
GIF="gif89a/$SEQ.gif"
# echo "seq $SEQ -> $GIF" | tee -a WS/log

View File

@@ -41,8 +41,8 @@ FILMNAME="$2"
# echo "Encoding $SRCDIR to $FILMNAME" | tee -a WS/log
ffmpeg -nostdin \
-y -r 30 -f image2 -i frames/${SRCDIR}/%05d.png \
-metadata artist='--[ tTh ]--' \
-metadata title='-- HexaCone --' \
-metadata artist='--[ tTh des Bourtoulots ]--' \
-metadata title='--[ la famille HexaCone ]--' \
-c:v libx264 \
-pix_fmt yuv420p \
-tune film \

View File

@@ -41,11 +41,11 @@ local NBRE=78
convert "WS/negatif.png" \
-gravity north \
-font $FONTE \
-pointsize 100 \
-pointsize 108 \
-kerning 8 \
-fill $TEXTCOL \
-strokewidth 2 -stroke $STROKOL \
-annotate +0+530 "$1" \
-strokewidth 3 -stroke $STROKOL \
-annotate +0+330 "$1" \
${INTER}
for foo in $(seq 0 $NBRE)
@@ -80,7 +80,7 @@ local NBRE=300
local SRC="frames/hexacone/00199.png"
local GRAY="/dev/shm/tmp-titre.png"
convert -colorspace gray -colors 23 $SRC $GRAY
convert -colorspace gray -colors 90 $SRC $GRAY
for foo in $(seq 0 $NBRE)
do
@@ -107,9 +107,9 @@ local NBRE=180
datetime=$(LANG=fr date -u +"%Y/%m/%d %H:%M")
echo " $datetime" | tee -a WS/log
local SRC="frames/escadrille/00449.png"
local GRAY="/dev/shm/tmp-titre.png"
convert -colorspace gray -colors 60 $SRC $GRAY
local SRC="frames/patrouille/00165.png"
local GRAY="/dev/shm/tmp-fin.png"
convert -colorspace gray -colors 90 $SRC $GRAY
for foo in $(seq 0 $NBRE)
do
@@ -130,6 +130,7 @@ do
${TMP}
# identify ${TMP}
copy_a_file ${TMP}
printf "."
done
echo

View File

@@ -49,7 +49,7 @@ do
-kerning 3 \
-fill ${TEXTCOL} \
-strokewidth 2 -stroke $STROKOL \
-gravity north \
-gravity south \
-annotate +0+5 "$txt" \
${img}
fin=$(date +%s)

View File

@@ -35,7 +35,6 @@ do
printf "%8d" $frame
composite $imgA $imgB \
-blend 50% \
-blur 1x1 \
$imgC
done

View File

@@ -11,6 +11,7 @@
#include "all.inc"
/*
* XXX
* why this two moving hexathings are not in "dynamic.inc" ?
*/
object { HexaCone () rotate z*9.1 translate <7, 3+NormClock, -8> }
@@ -28,7 +29,7 @@ object { HexaWood translate P }
object { Le_Decor }
#declare CamY = 36 - (10.01 * Cos_01(NormClock));
#declare CamY = 47 - (9.50 * Cos_01(NormClock));
#declare LatY = -4 + ( 2.12 * NormClock);
camera {
@@ -38,5 +39,5 @@ camera {
// focal_point <2, 1, 12>
// aperture 0.046
// blur_samples 30
angle 45 + (63*NormClock)
angle 45 + (65*NormClock)
}

View File

@@ -16,13 +16,19 @@ object { Le_Decor }
// object { Repere scale 2 }
#declare CK = 0.8 - (NormClock * 0.71);
#declare DX_cam = 6.9 * cos(CK);
#declare DZ_cam = 5.4 * sin(CK);
#if (NormClock < 0.5000)
#declare DX_cam = -6.9 * cos(CK);
#declare DZ_cam = -5.4 * sin(CK);
#else
#declare DX_cam = -6.9 * sin(CK);
#declare DZ_cam = -5.6 * cos(CK);
#end
#declare Loc_cam = <DX_cam, 1.0, DZ_cam> + Pos_RedB_2;
camera {
location Loc_cam
look_at Pos_RedB_2 + <0, 1.95+NormClock, 0>
look_at Pos_RedB_2 + <0, 2.05+NormClock, 0>
right <image_width/image_height, 0, 0>
// focal_point <0.37, 0.0, 0>

View File

@@ -25,6 +25,7 @@ difference {
#end // for
#local R = rand(Rng1);
#if (R < 0.42) texture { LeGris }
#elseif (R < 0.64) texture { T_Beton_2 }
#else texture { T_Beton_1 }
#end
}