Compare commits
14 Commits
43f58d9ce9
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7c77a6a7e | ||
|
|
f3df71d687 | ||
|
|
addd793fbc | ||
|
|
b5529645fd | ||
|
|
884c19591b | ||
|
|
e8126637fc | ||
|
|
751c02321b | ||
|
|
5bd0af1ad2 | ||
|
|
e47bd5680f | ||
|
|
fabd442cfd | ||
|
|
15e8b7fb7c | ||
|
|
6fc9de92c1 | ||
|
|
a338717ac8 | ||
|
|
feee435a55 |
14
LICENSE
Normal file
14
LICENSE
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
+----------------------------------------------------------------------+
|
||||||
|
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 |
|
||||||
|
| |
|
||||||
|
| Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> |
|
||||||
|
| |
|
||||||
|
| Everyone is permitted to copy and distribute verbatim or modified |
|
||||||
|
| copies of this license document, and changing it is allowed as long |
|
||||||
|
| as the name is changed. |
|
||||||
|
| |
|
||||||
|
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS |
|
||||||
|
| FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
||||||
|
| |
|
||||||
|
| 0. You just DO WHAT THE FUCK YOU WANT TO. |
|
||||||
|
+----------------------------------------------------------------------+
|
||||||
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
DIMS = -W1600 -H1200
|
DIMS = -W1600 -H1200
|
||||||
|
|
||||||
POVOPT = +q9 +A0.05 -WT2 Declare=NbFrames=450 -d
|
POVOPT = +q9 +A0.05 -WT2 Declare=NbFrames=480 -d
|
||||||
|
|
||||||
POVDEP = contexte.inc hexacone.inc hexabenz.inc \
|
POVDEP = contexte.inc hexacone.inc hexabenz.inc \
|
||||||
all.inc hexastar.inc \
|
all.inc hexastar.inc \
|
||||||
|
|||||||
15
README.md
15
README.md
@@ -30,9 +30,9 @@ produites par un [script shell](./mkloop.sh).
|
|||||||
Avant toute chose, vous devrez vérifier la présence de plusieurs
|
Avant toute chose, vous devrez vérifier la présence de plusieurs
|
||||||
répertoires :
|
répertoires :
|
||||||
|
|
||||||
D'un coté `./frames/<name>` pour stocker les images calculées
|
D'un coté [`frames/<name>`](README.md) pour stocker les images
|
||||||
de chaque séquence et
|
calculées de chaque séquence et
|
||||||
./frames/Spool` pour l'assemblage de la vidéo intégrale :
|
(`frames/Spool`) pour l'assemblage de la vidéo intégrale :
|
||||||
|
|
||||||
```
|
```
|
||||||
frames/
|
frames/
|
||||||
@@ -44,7 +44,7 @@ frames/
|
|||||||
├── Spool
|
├── Spool
|
||||||
└── topview
|
└── topview
|
||||||
```
|
```
|
||||||
et de l'autre coté `./WS/` pour ranger les
|
et de l'autre coté le repértoire `./WS/` pour ranger les
|
||||||
[fichiers de travail](./WS/README.md).
|
[fichiers de travail](./WS/README.md).
|
||||||
|
|
||||||
Ensuite, il faut assembler toutes ces images calculées en une vidéo
|
Ensuite, il faut assembler toutes ces images calculées en une vidéo
|
||||||
@@ -54,8 +54,8 @@ pour les mettre dans le grand Ternet mondial à partir de mon
|
|||||||
[ADSL](http://maison.tth.netlib.re/pov/hexacone.html) de campagne.
|
[ADSL](http://maison.tth.netlib.re/pov/hexacone.html) de campagne.
|
||||||
Ensuite, un autre [script](./tools/linkfarmer.sh) assemble toute
|
Ensuite, un autre [script](./tools/linkfarmer.sh) assemble toute
|
||||||
les séquences dans le produit
|
les séquences dans le produit
|
||||||
[final](http://maison.tth.netlib.re/v/hc/full.mp4), en ajoutant
|
[final](http://maison.tth.netlib.re/v/hc/the-hexacone-family.mp4),
|
||||||
générique et inter-titres.
|
en ajoutant un générique et des inter-titres.
|
||||||
|
|
||||||
À vous de jouer maintenant : *« Fork & Enjoy »*
|
À vous de jouer maintenant : *« Fork & Enjoy »*
|
||||||
|
|
||||||
@@ -63,7 +63,8 @@ générique et inter-titres.
|
|||||||
|
|
||||||
* La [mailing-list du tetalab](https://lists.tetalab.org/postorius/lists/tetalab.tetalab.org/) ;
|
* La [mailing-list du tetalab](https://lists.tetalab.org/postorius/lists/tetalab.tetalab.org/) ;
|
||||||
* Par IRC, canal `#tetalab` ou `#povray` sur le réseau de [Libera](https://libera.chat/).
|
* Par IRC, canal `#tetalab` ou `#povray` sur le réseau de [Libera](https://libera.chat/).
|
||||||
* Dans [Mastodon](https://mastodon.tetaneutral.net/@tth) et [Peertube](https://tube.interhacker.space/c/tth_channel/videos)
|
* Dans [Mastodon](https://mastodon.tetaneutral.net/@tth) et
|
||||||
|
[Peertube](https://tube.interhacker.space/c/tth_channel/videos)
|
||||||
|
|
||||||
## La suite
|
## La suite
|
||||||
|
|
||||||
|
|||||||
19
TODO.md
19
TODO.md
@@ -2,18 +2,24 @@
|
|||||||
|
|
||||||
## Urgent
|
## Urgent
|
||||||
|
|
||||||
- finaliser le revamping du début de 2026.
|
- Finaliser le revamping du début de 2026.
|
||||||
|
- On est début mai et ça
|
||||||
|
n'est pas vraiment fini. Coté lumière ça commence à me plaire...
|
||||||
|
- ... Mais il reste beaucoup de chose à faire sur les
|
||||||
|
[textures](globals.inc).
|
||||||
|
|
||||||
## Outils
|
## Outils
|
||||||
|
|
||||||
- automatiser la création des répertoires dans `frames/`
|
- Automatiser la création des répertoires dans `frames/`
|
||||||
- Génération de sous titres automatisée.
|
- Génération de sous titres automatisée ?
|
||||||
|
- Passer le `shellcheck` dans les [tools](tools/).
|
||||||
|
|
||||||
## Trucages
|
## Trucages
|
||||||
|
|
||||||
- Se remettre à (enfin) améliorer
|
- Se remettre à (enfin) améliorer
|
||||||
[libtthimage](https://git.tetalab.org/tTh/libtthimage).
|
[libtthimage](https://git.tetalab.org/tTh/libtthimage).
|
||||||
- Relire le livre de Brunus sur ImageMagick.
|
- Relire le livre de Brunus sur ImageMagick *!*
|
||||||
|
- Envisager d'utiliser les outils de film-floutage
|
||||||
|
|
||||||
## Audio
|
## Audio
|
||||||
|
|
||||||
@@ -25,6 +31,7 @@
|
|||||||
|
|
||||||
Il reste encore beaucoup de chemin à parcourir, mais la
|
Il reste encore beaucoup de chemin à parcourir, mais la
|
||||||
route est bien plaisante.
|
route est bien plaisante.
|
||||||
Je me permet néamoins de déplorer le peu de présence de
|
Je me permet néammoins de déplorer le peu de présence de
|
||||||
[povistes](https://mastodon.tetaneutral.net/tags/Povray) dans
|
[povistes](https://mastodon.tetaneutral.net/tags/Povray) dans
|
||||||
mon entourage.
|
mon entourage virtuel. Même la mailing-list du Tetalab
|
||||||
|
ne réagit pas... Hibernation ou volonté délibérée ?
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
# Workspace
|
# Workspace
|
||||||
|
|
||||||
For intermediates files, and timing log.
|
This space is for intermediate files, fuzzy garbage, timing log,
|
||||||
|
and a lot of weird datas.
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ object { Le_Decor }
|
|||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#declare LocX = -0.5 + (2*Cos_010(NormClock));
|
#declare LocX = -1.5 + (2.10*Cos_010(NormClock));
|
||||||
#declare LocY = 2.6 - NormClock;
|
#declare LocY = 2.6 - NormClock;
|
||||||
#declare LocZ = -200 + (118 * NormClock);
|
#declare LocZ = -180 + (105 * NormClock);
|
||||||
|
|
||||||
#declare LatCam = <0, 0.92+NormClock, 0>;
|
#declare LatCam = <0, 0.92+NormClock, 0>;
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,12 @@
|
|||||||
#macro Jalon_0 (Rad, Hei, Ttu)
|
#macro Jalon_0 (Rad, Hei, Ttu)
|
||||||
merge {
|
merge {
|
||||||
cylinder { 0, Hei*y, Rad }
|
cylinder { 0, Hei*y, Rad }
|
||||||
sphere { 0, Rad*2 scale <1, 0.333, 1> translate Hei*y }
|
sphere { 0, Rad*2.75 scale <1, 0.333, 1> translate Hei*y }
|
||||||
texture { Ttu }
|
texture { Ttu }
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
// ===========================================================
|
// ===========================================================
|
||||||
#declare SzC = 0.3;
|
#declare SzC = 0.333;
|
||||||
#macro Base_Col_A ()
|
#macro Base_Col_A ()
|
||||||
merge {
|
merge {
|
||||||
box { <-SzC, 0, -SzC>, <SzC, 0.222, SzC> }
|
box { <-SzC, 0, -SzC>, <SzC, 0.222, SzC> }
|
||||||
@@ -49,7 +49,7 @@ difference {
|
|||||||
// -----------------------------------------------------------
|
// -----------------------------------------------------------
|
||||||
#macro Fut_Col_A (H)
|
#macro Fut_Col_A (H)
|
||||||
object {
|
object {
|
||||||
cylinder { 0, H*y, 0.15 }
|
cylinder { 0, H*y, SzC * 0.50 }
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R < 0.43)
|
#if (R < 0.43)
|
||||||
texture { T_Stone29 }
|
texture { T_Stone29 }
|
||||||
@@ -73,7 +73,7 @@ union {
|
|||||||
#macro Linteau_A (Lg, Epp)
|
#macro Linteau_A (Lg, Epp)
|
||||||
merge {
|
merge {
|
||||||
#local L = Lg + 0.42;
|
#local L = Lg + 0.42;
|
||||||
#local K = 0.28;
|
#local K = 0.30;
|
||||||
box { <-L, 0, -K>, <L, Epp, K> }
|
box { <-L, 0, -K>, <L, Epp, K> }
|
||||||
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
|
|
||||||
#declare POS_Cutoff = <-21, 0, -8>;
|
#declare POS_Cutoff = <-21, 0, -8>;
|
||||||
|
|
||||||
#local TY = 1.55;
|
#local TY = 1.65;
|
||||||
|
|
||||||
#declare Position = <0.50, -0.70, 0.75>;
|
#declare Position = <0.50, -0.70, 0.75>;
|
||||||
#declare Rayon = 0.70 + 1.52 * NormClock; // rayon de la sphere
|
#declare Rayon = 0.70 + 1.52 * NormClock; // rayon de la sphere
|
||||||
// de découpe
|
// de découpe
|
||||||
#debug concat("Rayon decoupe = ", str(Rayon, 8, 3), "\n\n")
|
#debug concat("Rayon decoupe = ", str(Rayon, 8, 3), "\n")
|
||||||
|
|
||||||
difference {
|
difference {
|
||||||
object { HexaBenz () }
|
object { HexaBenz () }
|
||||||
@@ -48,13 +48,13 @@ object { Le_Decor }
|
|||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#local CamX = -27.4 + (2.29*Cos_01(NormClock));
|
#local CamX = -27.4 + (2.39*Cos_01(NormClock));
|
||||||
#local CamY = 2.7 - (0.24*sqrt(NormClock));
|
#local CamY = 1.9 - (0.24*sqrt(NormClock));
|
||||||
#local CamZ = -0.85 + (2.02*NormClock);
|
#local CamZ = -0.85 + (2.12*NormClock);
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <CamX, CamY, CamZ>
|
location <CamX, CamY, CamZ>
|
||||||
look_at <0, 1.5, 0> + POS_Cutoff
|
look_at <0, 1.5, 0> + POS_Cutoff
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 35 - 5*Cos_01(NormClock)
|
angle 35 - 5.12*Cos_01(NormClock)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ object { Repere scale 10 translate y*20 }
|
|||||||
union {
|
union {
|
||||||
#for (Foo, -140, 140, 10)
|
#for (Foo, -140, 140, 10)
|
||||||
#local H = 0.07;
|
#local H = 0.07;
|
||||||
#local Ra = 0.05;
|
#local Ra = 0.055;
|
||||||
cylinder { <-150, H, Foo>, <150, H, Foo>, Ra }
|
cylinder { <-150, H, Foo>, <150, H, Foo>, Ra }
|
||||||
cylinder { <Foo, H, -150>, <Foo, H, 150>, Ra }
|
cylinder { <Foo, H, -150>, <Foo, H, 150>, Ra }
|
||||||
#end
|
#end
|
||||||
@@ -30,8 +30,8 @@ union {
|
|||||||
object { Le_Decor }
|
object { Le_Decor }
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <46, 199+(137*NormClock), 18-(12*NormClock)>
|
location <46, 199+(250*NormClock), 8-(3*NormClock)>
|
||||||
look_at <0, 1.18, 0.17 + (2.4*NormClock)>
|
look_at <0, 1.18, 0.17 - (42*NormClock)>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 35
|
angle 35
|
||||||
}
|
}
|
||||||
|
|||||||
28
contexte.inc
28
contexte.inc
@@ -10,15 +10,17 @@
|
|||||||
#declare Les_Jalons = object
|
#declare Les_Jalons = object
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
#local EC = SzSol + 111;
|
#local EC = SzSol + 195;
|
||||||
/* les coins */
|
/* les coins */
|
||||||
object { Jalon_0 (0.5, 3, LeGris) translate <-EC, 0, -EC> }
|
object { Jalon_0 (0.5, 18, LeGris) translate <-EC, 0, -EC> }
|
||||||
object { Jalon_0 (0.5, 3, LeGris) translate < EC, 0, -EC> }
|
object { Jalon_0 (0.5, 18, LeGris) translate < EC, 0, -EC> }
|
||||||
object { Jalon_0 (0.5, 3, LeGris) translate <-EC, 0, EC> }
|
object { Jalon_0 (0.5, 18, LeGris) translate <-EC, 0, EC> }
|
||||||
object { Jalon_0 (0.5, 3, LeGris) translate < EC, 0, EC> }
|
object { Jalon_0 (0.5, 18, LeGris) translate < EC, 0, EC> }
|
||||||
/* les milieux des cotés */
|
/* les milieux des cotés */
|
||||||
object { Jalon_0 (0.5, 6, LeGris) translate < 0, 0, -EC> }
|
object { Jalon_0 (0.5, 6, T_Beton_1) translate < 0, 0, -EC> }
|
||||||
object { Jalon_0 (0.6, 6, LeGris) translate < 0, 0, EC> }
|
object { Jalon_0 (0.6, 6, T_Beton_1) translate < 0, 0, EC> }
|
||||||
|
object { Jalon_0 (0.9, 6, T_Beton_2) translate < EC, 0, 0> }
|
||||||
|
object { Jalon_0 (0.6, 6, T_Beton_1) translate <-EC, 0, 0> }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ======================================================= */
|
/* ======================================================= */
|
||||||
@@ -28,7 +30,7 @@ union {
|
|||||||
object { Portique_A () rotate -y*9 }
|
object { Portique_A () rotate -y*9 }
|
||||||
object { Portique_A () scale <1, 1.2, 1> translate z*11 }
|
object { Portique_A () scale <1, 1.2, 1> translate z*11 }
|
||||||
object { Portique_A () rotate y*9 translate z*22 }
|
object { Portique_A () rotate y*9 translate z*22 }
|
||||||
box { <-4, 0, -2>, <4, 0.03, 24> texture { LeGris } }
|
box { <-4.1, 0, -2>, <4.1, 0.03, 24> texture { LeGris } }
|
||||||
}
|
}
|
||||||
#end // macro trois portiques
|
#end // macro trois portiques
|
||||||
|
|
||||||
@@ -199,13 +201,13 @@ union {
|
|||||||
object { HexaBalls
|
object { HexaBalls
|
||||||
texture { Lightning1 scale 0.44 }
|
texture { Lightning1 scale 0.44 }
|
||||||
rotate <clock/3, clock/4, clock/9>
|
rotate <clock/3, clock/4, clock/9>
|
||||||
translate <2, 0.57+Cos_010(NormClock), 4>
|
translate <2, 0.37+Cos_010(NormClock), 4>
|
||||||
}
|
}
|
||||||
|
|
||||||
object { HexaBalls
|
object { HexaBalls
|
||||||
texture { Lightning2 scale 0.56 }
|
texture { Lightning2 scale 0.56 }
|
||||||
rotate <-clock, clock*0.33333, clock*3>
|
rotate <-clock, clock*0.33333, clock*3>
|
||||||
translate <4, 0.61+Cos_010(NormClock), -3>
|
translate <4, 0.21+Cos_010(NormClock), -3>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -308,7 +310,9 @@ union {
|
|||||||
#local CK = radians(foo + (11*rand(Rng1)));
|
#local CK = radians(foo + (11*rand(Rng1)));
|
||||||
#local DX = 83 * sin(CK);
|
#local DX = 83 * sin(CK);
|
||||||
#local DZ = 79 * cos(CK);
|
#local DZ = 79 * cos(CK);
|
||||||
object { Chose () translate < DX, 0, DZ> } // XXX
|
#if (abs(DX) > 17)
|
||||||
|
object { Chose () translate < DX, 0, DZ> }
|
||||||
|
#end
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -364,7 +368,7 @@ union {
|
|||||||
object { QuadriLight }
|
object { QuadriLight }
|
||||||
object { Les_GyroPhares () }
|
object { Les_GyroPhares () }
|
||||||
object { Les_HexaPoles }
|
object { Les_HexaPoles }
|
||||||
object { HorlogeDouble rotate y*(114*NormClock)
|
object { HorlogeDouble rotate y*(134*NormClock)
|
||||||
translate < 8, 0, -30> }
|
translate < 8, 0, -30> }
|
||||||
object { Les_Choses }
|
object { Les_Choses }
|
||||||
object { Les_Arches (1.9) rotate y*112 translate <-34, 0, -26> }
|
object { Les_Arches (1.9) rotate y*112 translate <-34, 0, -26> }
|
||||||
|
|||||||
11
dynamic.inc
11
dynamic.inc
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
|
|
||||||
object {
|
object {
|
||||||
#local CK = (clock / 230) - 0.75; // en radians
|
#local CK = (clock / 210) - 0.75; // en radians
|
||||||
#local RD = 63; // rayon deplacement
|
#local RD = 63; // rayon deplacement
|
||||||
#local Xp = RD * sin(CK);
|
#local Xp = RD * sin(CK);
|
||||||
#local Zp = RD * cos(CK);
|
#local Zp = RD * cos(CK);
|
||||||
@@ -36,11 +36,12 @@ object {
|
|||||||
|
|
||||||
/// =======================================================
|
/// =======================================================
|
||||||
/* des trucs autour des trous du sol. */
|
/* des trucs autour des trous du sol. */
|
||||||
// Les_Machins --> 'gadgets.inc'
|
// Les_Machins dans '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*2.9) translate UnderHoles[4] }
|
// object { Les_Machins rotate -y*clock translate UnderHoles[2] }
|
||||||
|
// object { Les_Machins rotate y*clock translate UnderHoles[5] }
|
||||||
|
|
||||||
|
// object { Les_HexaBalls rotate y*(clock*2.9) translate UnderHoles[4] }
|
||||||
|
|
||||||
/// =======================================================
|
/// =======================================================
|
||||||
/*
|
/*
|
||||||
|
|||||||
51
essai.pov
51
essai.pov
@@ -41,8 +41,9 @@ union {
|
|||||||
#local DZ = (E+rand(Rng1)) * cos(A);
|
#local DZ = (E+rand(Rng1)) * cos(A);
|
||||||
cone {
|
cone {
|
||||||
#local RC = 0.15 + (rand(Rng1) * 0.50);
|
#local RC = 0.15 + (rand(Rng1) * 0.50);
|
||||||
#local H2 = H + rand(Rng1);
|
#local H1 = H * 0.25;
|
||||||
y*(H*(0.01)), 0.15, <DX, H2, DZ>, 0.001
|
#local H2 = H + 1.0 + rand(Rng1);
|
||||||
|
<0, H1, 0>, 0.15, <DX, H2, DZ>, 0.001
|
||||||
#local Rv = 0.7 + (0.2*rand(Rng1));
|
#local Rv = 0.7 + (0.2*rand(Rng1));
|
||||||
#local Gv = 0.4 + (0.5*rand(Rng1));
|
#local Gv = 0.4 + (0.5*rand(Rng1));
|
||||||
#local Bv = 0.6 + (0.4*rand(Rng1));
|
#local Bv = 0.6 + (0.4*rand(Rng1));
|
||||||
@@ -52,8 +53,14 @@ union {
|
|||||||
finish { phong 0.51 reflection 0.08 }
|
finish { phong 0.51 reflection 0.08 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sphere { 0, 0.45 scale <1, 0.717, 1> texture { T_WIP_color } }
|
|
||||||
#end // for
|
#end // for
|
||||||
|
|
||||||
|
union {
|
||||||
|
#local Rb = 0.42;
|
||||||
|
sphere { 0, Rb scale <1, 0.717, 1> translate H1*y }
|
||||||
|
cylinder { 0, (0.01+H1)*y, Rb }
|
||||||
|
texture { T_WIP_color }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#end // macro
|
#end // macro
|
||||||
|
|
||||||
@@ -66,7 +73,7 @@ union {
|
|||||||
translate <-4, 0, 0> }
|
translate <-4, 0, 0> }
|
||||||
object { Anemone_A (1.40+NormClock, 1.50*NormClock)
|
object { Anemone_A (1.40+NormClock, 1.50*NormClock)
|
||||||
translate < 0, 0, -4> }
|
translate < 0, 0, -4> }
|
||||||
object { Anemone_A (1.40+NormClock, 1.50-NormClock)
|
object { Anemone_A (1.40+NormClock, 1.80-NormClock)
|
||||||
translate < 0, 0, 4> }
|
translate < 0, 0, 4> }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,13 +210,13 @@ finish { phong 0.25 }
|
|||||||
#local TZ = 2.95;
|
#local TZ = 2.95;
|
||||||
#local Kro = 32 + (NormClock * 666);
|
#local Kro = 32 + (NormClock * 666);
|
||||||
union {
|
union {
|
||||||
object { Obj_BasicTexture texture { R_Texture }
|
object { Obj_BasicTexture texture { LeGris }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, -TZ> }
|
translate <TX, 0, -TZ> }
|
||||||
object { Obj_BasicTexture texture { Texture_du_Vase }
|
object { Obj_BasicTexture texture { Texture_du_Vase }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, 0> }
|
translate <TX, 0, 0> }
|
||||||
object { Obj_BasicTexture texture { B_Texture }
|
object { Obj_BasicTexture texture { T_GlowGreen }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, TZ> }
|
translate <TX, 0, TZ> }
|
||||||
|
|
||||||
@@ -223,7 +230,7 @@ union {
|
|||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <-TX, 0, -TZ> }
|
translate <-TX, 0, -TZ> }
|
||||||
|
|
||||||
object { Repere scale 1.5 translate y*0.5 }
|
object { Repere scale 1.5 translate y*0.75 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,8 +241,6 @@ union {
|
|||||||
Mieux, on garde la chose mais on en dérive le vase
|
Mieux, on garde la chose mais on en dérive le vase
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// ------------------------------------
|
|
||||||
|
|
||||||
#macro Vase_le_corps_a ()
|
#macro Vase_le_corps_a ()
|
||||||
intersection {
|
intersection {
|
||||||
box { <-5, -5, -5>, <5, 0, 5> }
|
box { <-5, -5, -5>, <5, 0, 5> }
|
||||||
@@ -245,10 +250,10 @@ intersection {
|
|||||||
scale <1, 1.60, 1>
|
scale <1, 1.60, 1>
|
||||||
}
|
}
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R < 0.75)
|
#if (R < 0.65)
|
||||||
texture { Texture_du_Vase rotate y*(clock*3) }
|
texture { Texture_du_Vase rotate y*(clock*3) }
|
||||||
#else
|
#else
|
||||||
texture { T_WIP_redwave scale 0.15 + 0.333*rand(Rng1)
|
texture { T_WIP_redwave scale 0.15 + 0.07*rand(Rng1)
|
||||||
rotate <75*rand(Rng1), 75*rand(Rng1), 75*rand(Rng1)>
|
rotate <75*rand(Rng1), 75*rand(Rng1), 75*rand(Rng1)>
|
||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
@@ -345,7 +350,7 @@ union {
|
|||||||
object { Vase () scale 1.4 translate <-2.9, 0, 3.91> }
|
object { Vase () scale 1.4 translate <-2.9, 0, 3.91> }
|
||||||
object { Chose () scale 2 translate < 2.9, 0, -4.07> }
|
object { Chose () scale 2 translate < 2.9, 0, -4.07> }
|
||||||
object { Vase () translate <-4.5, 0, -4> }
|
object { Vase () translate <-4.5, 0, -4> }
|
||||||
object { Repere translate 0.15*y }
|
object { Repere scale 1.7 translate 0.25*y }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// =======================================================
|
// =======================================================
|
||||||
@@ -358,9 +363,9 @@ union {
|
|||||||
#declare Dx = E * sin(radians(I));
|
#declare Dx = E * sin(radians(I));
|
||||||
#declare Dz = E * cos(radians(I));
|
#declare Dz = E * cos(radians(I));
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R > 0.76)
|
#if (R > 0.66)
|
||||||
object { GyroPhare () translate <Dx, 0, Dz> }
|
object { GyroPhare () translate <Dx, 0, Dz> }
|
||||||
#elseif (R > 0.45)
|
#elseif (R > 0.33)
|
||||||
object { HexaPole () translate <Dx, 0, Dz> }
|
object { HexaPole () translate <Dx, 0, Dz> }
|
||||||
#else
|
#else
|
||||||
object { HexoFlash (0.14, 1.85 + (0.444*rand(Rng1)) )
|
object { HexoFlash (0.14, 1.85 + (0.444*rand(Rng1)) )
|
||||||
@@ -421,13 +426,14 @@ union {
|
|||||||
object { ProtoTextures }
|
object { ProtoTextures }
|
||||||
#break
|
#break
|
||||||
#case (3)
|
#case (3)
|
||||||
object { Blob_Boxed scale 3.159 translate < 0, 2, 0> }
|
object { Les_Boules scale 1.727 translate <0, 1, 0> }
|
||||||
object { Blob_Boxed scale 1.414 translate <-3, 3, 0> }
|
object { Blob_Boxed scale 1.414 translate <0, 4, 0> }
|
||||||
// object { Repere translate y*1 }
|
// object { Repere translate y*1 }
|
||||||
#break
|
#break
|
||||||
#case (4)
|
#case (4)
|
||||||
object { Un_Autre_Cube (0.666) rotate x*42 translate <3, 1.8, 0> }
|
object { Un_Autre_Cube (0.7) rotate x*clock translate <3, 1.8, 2> }
|
||||||
object { Un_Autre_Cube (0.888) translate <0, 1.8, 2> }
|
object { HorlogeDouble scale 2.12
|
||||||
|
rotate y*(214*NormClock) translate <-3, 0, -2> }
|
||||||
#break
|
#break
|
||||||
|
|
||||||
#end // switch selector
|
#end // switch selector
|
||||||
@@ -439,9 +445,9 @@ plane {
|
|||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#local CamX = -2.9 + (1.8*Cos_010(NormClock));
|
#local CamX = -2.9 + (1.9*Cos_010(NormClock));
|
||||||
#local CamY = 0.61 + (0.9*exp(NormClock));
|
#local CamY = 0.61 + (1.1*exp(NormClock));
|
||||||
#local CamZ = -5.777 + (1.3*Cos_01(NormClock));
|
#local CamZ = -5.777 + (1.3*Cos_010(NormClock));
|
||||||
|
|
||||||
#local K = 8.6;
|
#local K = 8.6;
|
||||||
#local CamX = CamX * K;
|
#local CamX = CamX * K;
|
||||||
@@ -449,7 +455,6 @@ plane {
|
|||||||
#local CamZ = CamZ * K;
|
#local CamZ = CamZ * K;
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
// orthographic
|
|
||||||
location <CamX, CamY, CamZ>
|
location <CamX, CamY, CamZ>
|
||||||
look_at <0, 1.5, 0>
|
look_at <0, 1.5, 0>
|
||||||
|
|
||||||
|
|||||||
49
gadgets.inc
49
gadgets.inc
@@ -148,7 +148,7 @@ texture { T_WIP_bluewave scale 0.21 rotate <clock, clock/2, clock/3> }
|
|||||||
|
|
||||||
text {
|
text {
|
||||||
ttf "datas/dotmatrx.ttf" Texte 0.15, 0
|
ttf "datas/dotmatrx.ttf" Texte 0.15, 0
|
||||||
texture { tPlasticGreen }
|
texture { T_GlowGreen }
|
||||||
}
|
}
|
||||||
scale <1.76, 1.70, 1.76>
|
scale <1.76, 1.70, 1.76>
|
||||||
rotate 90*x
|
rotate 90*x
|
||||||
@@ -159,13 +159,17 @@ translate <-4.3, 0.046, 0>
|
|||||||
#local Horloge2 = object
|
#local Horloge2 = object
|
||||||
{
|
{
|
||||||
object { Horloge scale <1, 0.28, 1> rotate -x*90
|
object { Horloge scale <1, 0.28, 1> rotate -x*90
|
||||||
translate <0.802, 0.18, 0> }
|
translate <0.912, 0.23, 0> }
|
||||||
}
|
}
|
||||||
#declare HorlogeDouble = object
|
#declare HorlogeDouble = object
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
box { <-3.10, 0.0, -0.06>, <3.10, 1.68, 0.06>
|
difference {
|
||||||
texture { LeGris } }
|
box { <-3.10, 0.00, -0.16>, <3.10, 1.74, 0.16> }
|
||||||
|
box { <-3.06, 0.04, -0.04>, <3.06, 1.70, -1.00> }
|
||||||
|
box { <-3.06, 0.04, 0.04>, <3.06, 1.70, 1.00> }
|
||||||
|
texture { LeGris }
|
||||||
|
}
|
||||||
#local EC = 0.18;
|
#local EC = 0.18;
|
||||||
object { Horloge2 rotate y*180 translate z*EC }
|
object { Horloge2 rotate y*180 translate z*EC }
|
||||||
object { Horloge2 translate -z*EC }
|
object { Horloge2 translate -z*EC }
|
||||||
@@ -199,44 +203,57 @@ prism {
|
|||||||
#end // macro
|
#end // macro
|
||||||
// ------------------------------------------------------ ##
|
// ------------------------------------------------------ ##
|
||||||
/* nouveau du 31 mars 2026, aux Bourtoulots
|
/* nouveau du 31 mars 2026, aux Bourtoulots
|
||||||
*
|
* XXX need more fine tuning !
|
||||||
*/
|
*/
|
||||||
#macro HexaPole_abatjour (Quux)
|
#macro HexaPole_abatjour (Quux)
|
||||||
union {
|
union {
|
||||||
#local Raj = 0.333;
|
#local Raj = 0.333;
|
||||||
torus { Raj, 0.018 translate -y*Quux }
|
torus { Raj, 0.011 translate -y*Quux }
|
||||||
#for (Foo, 0, 359, 18)
|
#for (Foo, 0, 359, 18)
|
||||||
#local DX = Raj * sin(radians(Foo));
|
#local DX = Raj * sin(radians(Foo));
|
||||||
#local DZ = Raj * cos(radians(Foo));
|
#local DZ = Raj * cos(radians(Foo));
|
||||||
cylinder { -y*Quux, y*Quux, 0.013 translate <DX, 0, DZ> }
|
cylinder { -y*Quux, y*Quux, 0.009 translate <DX, 0, DZ> }
|
||||||
#end // for
|
#end // for
|
||||||
torus { Raj, 0.02 translate y*Quux }
|
torus { Raj, 0.02 translate y*Quux }
|
||||||
rotate y*(clock*0.40*(rand(Rng1)-0.59))
|
rotate y*(clock*1.86*(rand(Rng1)-0.52))
|
||||||
|
texture { Aluminum }
|
||||||
|
}
|
||||||
|
#end // macro
|
||||||
|
|
||||||
|
#macro HexaPole_ampoule (V)
|
||||||
|
sphere {
|
||||||
|
0, 0.080
|
||||||
|
texture {
|
||||||
|
pigment { color rgb <1, 1, 1> }
|
||||||
|
finish { emission 0.9 diffuse 0.6 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#end // macro
|
#end // macro
|
||||||
|
|
||||||
#macro HexaPole_mat_lampe (Height)
|
#macro HexaPole_mat_lampe (Height)
|
||||||
union {
|
union {
|
||||||
union {
|
union {
|
||||||
cylinder { 0, y*Height, 0.061 }
|
cylinder { 0, y*Height, 0.061
|
||||||
|
texture { LeGris }}
|
||||||
#local Val = 0.09+(0.09*rand(Rng1));
|
#local Val = 0.09+(0.09*rand(Rng1));
|
||||||
object { HexaPole_abatjour (Val)
|
object { HexaPole_abatjour (Val)
|
||||||
translate y*(Height+0.073) }
|
translate y*(Height+0.073) }
|
||||||
texture { LeGris }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#local P = y*(Height+0.097);
|
#local Pos = y*(Height+0.097);
|
||||||
#if (rand(Rng1) < 0.30)
|
#if (rand(Rng1) < 0.36)
|
||||||
#local Val = 0.25 + 0.5*rand(Rng1);
|
#local Val = 0.25 + 0.5*rand(Rng1);
|
||||||
light_source {
|
light_source {
|
||||||
P rgb <0.80, 0.25+(0.5*rand(Rng1)), 0.99>
|
Pos rgb <0.86, 0.29+(0.5*rand(Rng1)), 0.99>
|
||||||
fade_distance 3.80
|
fade_distance 3.30
|
||||||
fade_power 1.55
|
fade_power 1.55
|
||||||
|
looks_like { HexaPole_ampoule (0) }
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
sphere {
|
sphere {
|
||||||
P, 0.080
|
Pos, 0.080
|
||||||
texture { C_Texture }
|
texture { LeGris }
|
||||||
}
|
}
|
||||||
#end // if
|
#end // if
|
||||||
}
|
}
|
||||||
|
|||||||
10
globals.inc
10
globals.inc
@@ -11,7 +11,7 @@ global_settings {
|
|||||||
#include "stones.inc"
|
#include "stones.inc"
|
||||||
#include "woods.inc"
|
#include "woods.inc"
|
||||||
|
|
||||||
#declare Rng1 = seed(1515);
|
#declare Rng1 = seed(3615);
|
||||||
#declare foo = rand(Rng1);
|
#declare foo = rand(Rng1);
|
||||||
#declare Rng2 = seed(now*24*60*60);
|
#declare Rng2 = seed(now*24*60*60);
|
||||||
#declare bar = rand(Rng2);
|
#declare bar = rand(Rng2);
|
||||||
@@ -169,6 +169,14 @@ finish {
|
|||||||
reflection { 0.21 metallic }
|
reflection { 0.21 metallic }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/* new 24 avril 2026 */
|
||||||
|
|
||||||
|
#declare T_GlowGreen = texture
|
||||||
|
{
|
||||||
|
pigment{ srgb <0.10, 1.20, 0.10>}
|
||||||
|
finish { ambient 0.91 diffuse 0.6 specular 0 }
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -47,8 +47,7 @@ texture { T_Beton_2 }
|
|||||||
text {
|
text {
|
||||||
ttf "datas/ComicMono-Bold.ttf" Texte 0.1, 0
|
ttf "datas/ComicMono-Bold.ttf" Texte 0.1, 0
|
||||||
// texture { T_WIP_alert }
|
// texture { T_WIP_alert }
|
||||||
texture { T_WIP_bluewave rotate <0, clock, NormClock*720>
|
texture { Flashy rotate <0, clock*0.50, 0> }
|
||||||
scale 0.59 }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#declare Cabane_Compteur = object
|
#declare Cabane_Compteur = object
|
||||||
@@ -68,7 +67,7 @@ intersection {
|
|||||||
png "datas/hf.png" smooth
|
png "datas/hf.png" smooth
|
||||||
translate <-.5, 0, -.5>
|
translate <-.5, 0, -.5>
|
||||||
#local SC = SzSol * 1.111;
|
#local SC = SzSol * 1.111;
|
||||||
scale <SC, 0.95, SC>
|
scale <SC, 0.999, SC>
|
||||||
texture {
|
texture {
|
||||||
pigment {
|
pigment {
|
||||||
image_map { png "datas/cuivre.png" }
|
image_map { png "datas/cuivre.png" }
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ object { Le_Decor }
|
|||||||
|
|
||||||
#declare Loc_cam = <0.63, 2, 2*NormClock> + (Pos_RedB_0 * 1.32);
|
#declare Loc_cam = <0.63, 2, 2*NormClock> + (Pos_RedB_0 * 1.32);
|
||||||
|
|
||||||
#declare Lat_Y = 1.21 + 0.16*NormClock;
|
#declare Lat_Y = 1.21 + 0.19*NormClock;
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location Loc_cam
|
location Loc_cam
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ object { Le_Decor }
|
|||||||
|
|
||||||
camera {
|
camera {
|
||||||
location Loc_cam
|
location Loc_cam
|
||||||
#local H = 1.16 + (NormClock*0.42);
|
#local H = 1.16 + (NormClock*0.44);
|
||||||
look_at Pos_RedB_1 + <0.02, H, 0>
|
look_at Pos_RedB_1 + <0.02, H, 0>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
// focal_point <0.37, 0.90, 0>
|
// focal_point <0.37, 0.90, 0>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ object { Le_Decor }
|
|||||||
|
|
||||||
// object { Repere translate <10, 1, 10> }
|
// object { Repere translate <10, 1, 10> }
|
||||||
|
|
||||||
#declare LOC = <-3.4 - NormClock, 4.57, 31.9-NormClock>;
|
#declare LOC = <-3.7, 5.84+NormClock, 31.9-NormClock>;
|
||||||
|
|
||||||
#declare LAT = <P_hexawood.x, 0.95+(NormClock*0.11), P_hexawood.z>;
|
#declare LAT = <P_hexawood.x, 0.95+(NormClock*0.11), P_hexawood.z>;
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ object { HexaCone ()
|
|||||||
#declare PosY = 0;
|
#declare PosY = 0;
|
||||||
#declare PosZ = RO * cos(CK+3.23);
|
#declare PosZ = RO * cos(CK+3.23);
|
||||||
object { Trident_A ()
|
object { Trident_A ()
|
||||||
rotate <clock*0.3, 0, clock*0.7>
|
rotate <clock*0.3, 0, clock*0.9>
|
||||||
rotate y*CK*99.22 translate <PosX, PosY, PosZ>
|
rotate y*CK*99.22 translate <PosX, PosY, PosZ>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ light_source { <23, 10, 15>, rgb <0.77, 0.79, 0.80> }
|
|||||||
|
|
||||||
// -------------------------------------------------------------
|
// -------------------------------------------------------------
|
||||||
camera {
|
camera {
|
||||||
location <9+NormClock, 1.60+(17*NormClock), 11.59>
|
location <9+NormClock, -2.60+(24*NormClock), 11.59>
|
||||||
look_at <0.0, 0.0, 0>
|
look_at <0.0, 0.0, 0>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
#if (0)
|
#if (0)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ object { Le_Decor }
|
|||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#declare CK = 1.97 + (2.72 * Cos_01(NormClock));
|
#declare CK = 1.97 + (2.42 * Cos_01(NormClock));
|
||||||
|
|
||||||
#declare CamX = 1.72;
|
#declare CamX = 1.72;
|
||||||
#declare CamY = 7 + (4*Cos_01(NormClock));
|
#declare CamY = 7 + (4*Cos_01(NormClock));
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ camera {
|
|||||||
look_at Loc_Patrouille
|
look_at Loc_Patrouille
|
||||||
|
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 13.3333333
|
angle 11.11111
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =============================================================== */
|
/* =============================================================== */
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ object { Le_Decor }
|
|||||||
#declare CamX = Dcam * cos(radians(CK+0.9));
|
#declare CamX = Dcam * cos(radians(CK+0.9));
|
||||||
#declare CamZ = Dcam * 1.20 * sin(radians(CK));
|
#declare CamZ = Dcam * 1.20 * sin(radians(CK));
|
||||||
|
|
||||||
#declare LatY = 2.25 + (1.51 * Cos_010(NormClock));
|
#declare LatY = 2.20 + (1.21 * Cos_010(NormClock));
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <CamX, 2.10, CamZ>
|
location <CamX, 2.10, CamZ>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ The page for « Build system and utilities ».
|
|||||||
|
|
||||||
Un argument pour construire la séquence entière ou deux pour démarrer au
|
Un argument pour construire la séquence entière ou deux pour démarrer au
|
||||||
milieu, c'est parfois pratique quand le disjoncteur fait un *beu-beu* en
|
milieu, c'est parfois pratique quand le disjoncteur fait un *beu-beu* en
|
||||||
plein milieu. Exemples :
|
plein milieu du batch. Exemples :
|
||||||
|
|
||||||
```
|
```
|
||||||
$ tools/mkloop.sh survol
|
$ tools/mkloop.sh survol
|
||||||
@@ -48,7 +48,6 @@ intertitres.
|
|||||||
```
|
```
|
||||||
$ tools/plot-timing.sh essai && d timing.png
|
$ tools/plot-timing.sh essai && d timing.png
|
||||||
```
|
```
|
||||||
|
|
||||||
Cette commande utilise le fichier `log/mp4.timing`, lequel est généré
|
Cette commande utilise le fichier `log/mp4.timing`, lequel est généré
|
||||||
par le script de création de séquence vu plus haut.
|
par le script de création de séquence vu plus haut.
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Img_Width=1152
|
|||||||
Img_Height=720
|
Img_Height=720
|
||||||
|
|
||||||
# for imagemagick
|
# for imagemagick
|
||||||
TEXTCOL="Yellow"
|
TEXTCOL="Yellow3"
|
||||||
STROKOL="Green"
|
STROKOL="Green"
|
||||||
|
|
||||||
NBFRAMES=480
|
NBFRAMES=480
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ SRC="frames/$1"
|
|||||||
local INTER="/dev/shm/tmp-intertitre.png"
|
local INTER="/dev/shm/tmp-intertitre.png"
|
||||||
tools/plot-timing.sh $1
|
tools/plot-timing.sh $1
|
||||||
|
|
||||||
local NBRE=78
|
local NBRE=51
|
||||||
|
|
||||||
convert "WS/negatif.png" \
|
convert "WS/negatif.png" \
|
||||||
-gravity center \
|
-gravity center \
|
||||||
|
|||||||
@@ -32,11 +32,13 @@ object { Le_Decor }
|
|||||||
#declare CamY = 47 - (9.70 * Cos_01(NormClock));
|
#declare CamY = 47 - (9.70 * Cos_01(NormClock));
|
||||||
#declare CamZ = 10.70 + (2*NormClock);
|
#declare CamZ = 10.70 + (2*NormClock);
|
||||||
|
|
||||||
#declare LatY = -4 + ( 2.12 * NormClock);
|
#declare LatY = -4 + ( 2.82 * NormClock);
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <-3.60, CamY, CamZ>
|
spherical // XXX !
|
||||||
look_at <0.6, LatY, 0>
|
normal { bumps 0.85 scale 0.50 } // XXX !
|
||||||
|
location <-4.60, CamY, CamZ>
|
||||||
|
look_at <0, LatY, 0>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
// focal_point <2, 1, 12>
|
// focal_point <2, 1, 12>
|
||||||
// aperture 0.046
|
// aperture 0.046
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ merge {
|
|||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if ( R < 0.333) texture { T_Chrome_1C }
|
#if ( R < 0.333) texture { T_Chrome_1C }
|
||||||
#elseif ( R < 0.666) texture { T_Silver_1C }
|
#elseif ( R < 0.666) texture { T_Silver_1C }
|
||||||
#else texture { T_WIP_rasta scale 3 }
|
#else texture { Flashy scale 3 }
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
#undef L
|
#undef L
|
||||||
|
|||||||
@@ -140,13 +140,14 @@ union {
|
|||||||
/* nouveau du 7 octobre 2025 */
|
/* nouveau du 7 octobre 2025 */
|
||||||
#macro Une_Boule ()
|
#macro Une_Boule ()
|
||||||
sphere {
|
sphere {
|
||||||
0, 0.18 + (rand(Rng1) * 0.06)
|
0, 0.15 + (rand(Rng1) * 0.05)
|
||||||
|
scale <1, 1+(rand(Rng1) * 0.15), 1>
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R < 0.333) texture { C_Texture }
|
#if (R < 0.333) texture { C_Texture }
|
||||||
#elseif (R < 0.666) texture { M_Texture }
|
#elseif (R < 0.666) texture { M_Texture }
|
||||||
#else texture { Y_Texture }
|
#else texture { Y_Texture }
|
||||||
#end
|
#end
|
||||||
finish { phong 0.7 specular 0.3 }
|
finish { phong 0.7 specular 0.5 }
|
||||||
}
|
}
|
||||||
#end // macro
|
#end // macro
|
||||||
|
|
||||||
@@ -157,6 +158,7 @@ sphere {
|
|||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
#for (A, 0, 64, 1)
|
#for (A, 0, 64, 1)
|
||||||
|
// please explain this formula !
|
||||||
#local CK = (NormClock*55.00) + (A*0.28);
|
#local CK = (NormClock*55.00) + (A*0.28);
|
||||||
object { Une_Boule ()
|
object { Une_Boule ()
|
||||||
#local TX = 3.2 * sin(CK);
|
#local TX = 3.2 * sin(CK);
|
||||||
@@ -164,7 +166,7 @@ union {
|
|||||||
#local TZ = 3.0 * cos(1-CK);
|
#local TZ = 3.0 * cos(1-CK);
|
||||||
translate <TX, TY, TZ>
|
translate <TX, TY, TZ>
|
||||||
}
|
}
|
||||||
object { Repere scale 2 }
|
// object { Repere scale 2 }
|
||||||
#end // for
|
#end // for
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user