Compare commits

..

14 Commits

Author SHA1 Message Date
Tonton Th
b7c77a6a7e add DWTFYW license 2026-06-06 10:04:45 +02:00
Tonton Th
f3df71d687 nap time ? 2026-05-27 07:23:01 +02:00
Tonton Th
addd793fbc try a new yellow 2026-05-22 04:28:32 +02:00
Tonton Th
b5529645fd more bla 2026-05-09 13:30:54 +02:00
Tonton Th
884c19591b camera is going up 2026-05-05 04:28:37 +02:00
Tonton Th
e8126637fc hexapole light tuning 2026-05-05 04:27:15 +02:00
Tonton Th
751c02321b add a glowing light to the hexapoles 2026-04-29 09:27:45 +02:00
Tonton Th
5bd0af1ad2 ajust pseudo clock 2026-04-29 08:17:12 +02:00
Tonton Th
e47bd5680f hide a bad thing 2026-04-28 03:40:54 +02:00
Tonton Th
fabd442cfd tuninh horloge double 2026-04-25 13:43:43 +02:00
Tonton Th
15e8b7fb7c pimping HorlogeDouble 2026-04-25 00:34:25 +02:00
Tonton Th
6fc9de92c1 add a new texture 2026-04-24 22:25:12 +02:00
Tonton Th
a338717ac8 commit of a sunny trolldi 2026-04-24 10:46:23 +02:00
Tonton Th
feee435a55 fix a "off-by-30" critical bug 2026-04-19 07:14:23 +02:00
28 changed files with 169 additions and 109 deletions

14
LICENSE Normal file
View 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. |
+----------------------------------------------------------------------+

View File

@@ -1,7 +1,7 @@
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 \
all.inc hexastar.inc \

View File

@@ -30,9 +30,9 @@ produites par un [script shell](./mkloop.sh).
Avant toute chose, vous devrez vérifier la présence de plusieurs
répertoires :
D'un coté `./frames/<name>` pour stocker les images calculées
de chaque séquence et
./frames/Spool` pour l'assemblage de la vidéo intégrale :
D'un coté [`frames/<name>`](README.md) pour stocker les images
calculées de chaque séquence et
(`frames/Spool`) pour l'assemblage de la vidéo intégrale :
```
frames/
@@ -44,7 +44,7 @@ frames/
├── Spool
└── 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).
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.
Ensuite, un autre [script](./tools/linkfarmer.sh) assemble toute
les séquences dans le produit
[final](http://maison.tth.netlib.re/v/hc/full.mp4), en ajoutant
générique et inter-titres.
[final](http://maison.tth.netlib.re/v/hc/the-hexacone-family.mp4),
en ajoutant un générique et des inter-titres.
À 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/) ;
* 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

19
TODO.md
View File

@@ -2,18 +2,24 @@
## 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
- automatiser la création des répertoires dans `frames/`
- Génération de sous titres automatisée.
- Automatiser la création des répertoires dans `frames/`
- Génération de sous titres automatisée ?
- Passer le `shellcheck` dans les [tools](tools/).
## Trucages
- Se remettre à (enfin) améliorer
[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
@@ -25,6 +31,7 @@
Il reste encore beaucoup de chemin à parcourir, mais la
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
mon entourage.
mon entourage virtuel. Même la mailing-list du Tetalab
ne réagit pas... Hibernation ou volonté délibérée ?

View File

@@ -1,3 +1,4 @@
# Workspace
For intermediates files, and timing log.
This space is for intermediate files, fuzzy garbage, timing log,
and a lot of weird datas.

View File

@@ -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 LocZ = -200 + (118 * NormClock);
#declare LocZ = -180 + (105 * NormClock);
#declare LatCam = <0, 0.92+NormClock, 0>;

View File

@@ -10,12 +10,12 @@
#macro Jalon_0 (Rad, Hei, Ttu)
merge {
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 }
}
#end
// ===========================================================
#declare SzC = 0.3;
#declare SzC = 0.333;
#macro Base_Col_A ()
merge {
box { <-SzC, 0, -SzC>, <SzC, 0.222, SzC> }
@@ -49,7 +49,7 @@ difference {
// -----------------------------------------------------------
#macro Fut_Col_A (H)
object {
cylinder { 0, H*y, 0.15 }
cylinder { 0, H*y, SzC * 0.50 }
#local R = rand(Rng1);
#if (R < 0.43)
texture { T_Stone29 }
@@ -73,7 +73,7 @@ union {
#macro Linteau_A (Lg, Epp)
merge {
#local L = Lg + 0.42;
#local K = 0.28;
#local K = 0.30;
box { <-L, 0, -K>, <L, Epp, K> }
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
#local R = rand(Rng1);

View File

@@ -14,12 +14,12 @@
#declare POS_Cutoff = <-21, 0, -8>;
#local TY = 1.55;
#local TY = 1.65;
#declare Position = <0.50, -0.70, 0.75>;
#declare Rayon = 0.70 + 1.52 * NormClock; // rayon de la sphere
// de découpe
#debug concat("Rayon decoupe = ", str(Rayon, 8, 3), "\n\n")
#debug concat("Rayon decoupe = ", str(Rayon, 8, 3), "\n")
difference {
object { HexaBenz () }
@@ -48,13 +48,13 @@ object { Le_Decor }
// =======================================================
#local CamX = -27.4 + (2.29*Cos_01(NormClock));
#local CamY = 2.7 - (0.24*sqrt(NormClock));
#local CamZ = -0.85 + (2.02*NormClock);
#local CamX = -27.4 + (2.39*Cos_01(NormClock));
#local CamY = 1.9 - (0.24*sqrt(NormClock));
#local CamZ = -0.85 + (2.12*NormClock);
camera {
location <CamX, CamY, CamZ>
look_at <0, 1.5, 0> + POS_Cutoff
right <image_width/image_height, 0, 0>
angle 35 - 5*Cos_01(NormClock)
angle 35 - 5.12*Cos_01(NormClock)
}

View File

@@ -19,7 +19,7 @@ object { Repere scale 10 translate y*20 }
union {
#for (Foo, -140, 140, 10)
#local H = 0.07;
#local Ra = 0.05;
#local Ra = 0.055;
cylinder { <-150, H, Foo>, <150, H, Foo>, Ra }
cylinder { <Foo, H, -150>, <Foo, H, 150>, Ra }
#end
@@ -30,8 +30,8 @@ union {
object { Le_Decor }
camera {
location <46, 199+(137*NormClock), 18-(12*NormClock)>
look_at <0, 1.18, 0.17 + (2.4*NormClock)>
location <46, 199+(250*NormClock), 8-(3*NormClock)>
look_at <0, 1.18, 0.17 - (42*NormClock)>
right <image_width/image_height, 0, 0>
angle 35
}

View File

@@ -10,15 +10,17 @@
#declare Les_Jalons = object
{
union {
#local EC = SzSol + 111;
#local EC = SzSol + 195;
/* les coins */
object { Jalon_0 (0.5, 3, LeGris) translate <-EC, 0, -EC> }
object { Jalon_0 (0.5, 3, LeGris) translate < EC, 0, -EC> }
object { Jalon_0 (0.5, 3, 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, 18, LeGris) translate < EC, 0, -EC> }
object { Jalon_0 (0.5, 18, LeGris) translate <-EC, 0, EC> }
object { Jalon_0 (0.5, 18, LeGris) translate < EC, 0, EC> }
/* les milieux des cotés */
object { Jalon_0 (0.5, 6, LeGris) translate < 0, 0, -EC> }
object { Jalon_0 (0.6, 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, 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 () scale <1, 1.2, 1> translate z*11 }
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
@@ -199,13 +201,13 @@ union {
object { HexaBalls
texture { Lightning1 scale 0.44 }
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
texture { Lightning2 scale 0.56 }
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 DX = 83 * sin(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
}
}
@@ -364,7 +368,7 @@ union {
object { QuadriLight }
object { Les_GyroPhares () }
object { Les_HexaPoles }
object { HorlogeDouble rotate y*(114*NormClock)
object { HorlogeDouble rotate y*(134*NormClock)
translate < 8, 0, -30> }
object { Les_Choses }
object { Les_Arches (1.9) rotate y*112 translate <-34, 0, -26> }

View File

@@ -7,7 +7,7 @@
object {
#local CK = (clock / 230) - 0.75; // en radians
#local CK = (clock / 210) - 0.75; // en radians
#local RD = 63; // rayon deplacement
#local Xp = RD * sin(CK);
#local Zp = RD * cos(CK);
@@ -36,11 +36,12 @@ object {
/// =======================================================
/* des trucs autour des trous du sol. */
// Les_Machins --> 'gadgets.inc'
object { Les_Machins rotate -y*clock translate UnderHoles[2] }
object { Les_Machins rotate y*clock translate UnderHoles[5] }
// Les_Machins dans 'gadgets.inc'
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] }
/// =======================================================
/*

View File

@@ -41,8 +41,9 @@ union {
#local DZ = (E+rand(Rng1)) * cos(A);
cone {
#local RC = 0.15 + (rand(Rng1) * 0.50);
#local H2 = H + rand(Rng1);
y*(H*(0.01)), 0.15, <DX, H2, DZ>, 0.001
#local H1 = H * 0.25;
#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 Gv = 0.4 + (0.5*rand(Rng1));
#local Bv = 0.6 + (0.4*rand(Rng1));
@@ -52,8 +53,14 @@ union {
finish { phong 0.51 reflection 0.08 }
}
}
sphere { 0, 0.45 scale <1, 0.717, 1> texture { T_WIP_color } }
#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
@@ -66,7 +73,7 @@ union {
translate <-4, 0, 0> }
object { Anemone_A (1.40+NormClock, 1.50*NormClock)
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> }
}
}
@@ -203,13 +210,13 @@ finish { phong 0.25 }
#local TZ = 2.95;
#local Kro = 32 + (NormClock * 666);
union {
object { Obj_BasicTexture texture { R_Texture }
object { Obj_BasicTexture texture { LeGris }
rotate y * (rand(Rng1)*Kro)
translate <TX, 0, -TZ> }
object { Obj_BasicTexture texture { Texture_du_Vase }
object { Obj_BasicTexture texture { Texture_du_Vase }
rotate y * (rand(Rng1)*Kro)
translate <TX, 0, 0> }
object { Obj_BasicTexture texture { B_Texture }
object { Obj_BasicTexture texture { T_GlowGreen }
rotate y * (rand(Rng1)*Kro)
translate <TX, 0, TZ> }
@@ -223,7 +230,7 @@ union {
rotate y * (rand(Rng1)*Kro)
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
*/
// ------------------------------------
#macro Vase_le_corps_a ()
intersection {
box { <-5, -5, -5>, <5, 0, 5> }
@@ -245,10 +250,10 @@ intersection {
scale <1, 1.60, 1>
}
#local R = rand(Rng1);
#if (R < 0.75)
#if (R < 0.65)
texture { Texture_du_Vase rotate y*(clock*3) }
#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)>
}
#end
@@ -345,7 +350,7 @@ union {
object { Vase () scale 1.4 translate <-2.9, 0, 3.91> }
object { Chose () scale 2 translate < 2.9, 0, -4.07> }
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 Dz = E * cos(radians(I));
#local R = rand(Rng1);
#if (R > 0.76)
#if (R > 0.66)
object { GyroPhare () translate <Dx, 0, Dz> }
#elseif (R > 0.45)
#elseif (R > 0.33)
object { HexaPole () translate <Dx, 0, Dz> }
#else
object { HexoFlash (0.14, 1.85 + (0.444*rand(Rng1)) )
@@ -421,13 +426,14 @@ union {
object { ProtoTextures }
#break
#case (3)
object { Blob_Boxed scale 3.159 translate < 0, 2, 0> }
object { Blob_Boxed scale 1.414 translate <-3, 3, 0> }
object { Les_Boules scale 1.727 translate <0, 1, 0> }
object { Blob_Boxed scale 1.414 translate <0, 4, 0> }
// object { Repere translate y*1 }
#break
#case (4)
object { Un_Autre_Cube (0.666) rotate x*42 translate <3, 1.8, 0> }
object { Un_Autre_Cube (0.888) translate <0, 1.8, 2> }
object { Un_Autre_Cube (0.7) rotate x*clock translate <3, 1.8, 2> }
object { HorlogeDouble scale 2.12
rotate y*(214*NormClock) translate <-3, 0, -2> }
#break
#end // switch selector
@@ -439,9 +445,9 @@ plane {
// =======================================================
#local CamX = -2.9 + (1.8*Cos_010(NormClock));
#local CamY = 0.61 + (0.9*exp(NormClock));
#local CamZ = -5.777 + (1.3*Cos_01(NormClock));
#local CamX = -2.9 + (1.9*Cos_010(NormClock));
#local CamY = 0.61 + (1.1*exp(NormClock));
#local CamZ = -5.777 + (1.3*Cos_010(NormClock));
#local K = 8.6;
#local CamX = CamX * K;
@@ -449,7 +455,6 @@ plane {
#local CamZ = CamZ * K;
camera {
// orthographic
location <CamX, CamY, CamZ>
look_at <0, 1.5, 0>

View File

@@ -148,7 +148,7 @@ texture { T_WIP_bluewave scale 0.21 rotate <clock, clock/2, clock/3> }
text {
ttf "datas/dotmatrx.ttf" Texte 0.15, 0
texture { tPlasticGreen }
texture { T_GlowGreen }
}
scale <1.76, 1.70, 1.76>
rotate 90*x
@@ -159,13 +159,17 @@ translate <-4.3, 0.046, 0>
#local Horloge2 = object
{
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
{
union {
box { <-3.10, 0.0, -0.06>, <3.10, 1.68, 0.06>
texture { LeGris } }
difference {
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;
object { Horloge2 rotate y*180 translate z*EC }
object { Horloge2 translate -z*EC }
@@ -199,44 +203,57 @@ prism {
#end // macro
// ------------------------------------------------------ ##
/* nouveau du 31 mars 2026, aux Bourtoulots
*
* XXX need more fine tuning !
*/
#macro HexaPole_abatjour (Quux)
union {
#local Raj = 0.333;
torus { Raj, 0.018 translate -y*Quux }
torus { Raj, 0.011 translate -y*Quux }
#for (Foo, 0, 359, 18)
#local DX = Raj * sin(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
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
#macro HexaPole_mat_lampe (Height)
union {
union {
cylinder { 0, y*Height, 0.061 }
cylinder { 0, y*Height, 0.061
texture { LeGris }}
#local Val = 0.09+(0.09*rand(Rng1));
object { HexaPole_abatjour (Val)
translate y*(Height+0.073) }
texture { LeGris }
}
#local P = y*(Height+0.097);
#if (rand(Rng1) < 0.30)
#local Pos = y*(Height+0.097);
#if (rand(Rng1) < 0.36)
#local Val = 0.25 + 0.5*rand(Rng1);
light_source {
P rgb <0.80, 0.25+(0.5*rand(Rng1)), 0.99>
fade_distance 3.80
Pos rgb <0.86, 0.29+(0.5*rand(Rng1)), 0.99>
fade_distance 3.30
fade_power 1.55
looks_like { HexaPole_ampoule (0) }
}
#else
sphere {
P, 0.080
texture { C_Texture }
Pos, 0.080
texture { LeGris }
}
#end // if
}

View File

@@ -11,7 +11,7 @@ global_settings {
#include "stones.inc"
#include "woods.inc"
#declare Rng1 = seed(1515);
#declare Rng1 = seed(3615);
#declare foo = rand(Rng1);
#declare Rng2 = seed(now*24*60*60);
#declare bar = rand(Rng2);
@@ -169,6 +169,14 @@ finish {
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 }
}
/* ------------------------------------------------------------ */
/*

View File

@@ -47,8 +47,7 @@ texture { T_Beton_2 }
text {
ttf "datas/ComicMono-Bold.ttf" Texte 0.1, 0
// texture { T_WIP_alert }
texture { T_WIP_bluewave rotate <0, clock, NormClock*720>
scale 0.59 }
texture { Flashy rotate <0, clock*0.50, 0> }
}
}
#declare Cabane_Compteur = object
@@ -68,7 +67,7 @@ intersection {
png "datas/hf.png" smooth
translate <-.5, 0, -.5>
#local SC = SzSol * 1.111;
scale <SC, 0.95, SC>
scale <SC, 0.999, SC>
texture {
pigment {
image_map { png "datas/cuivre.png" }

View File

@@ -15,7 +15,7 @@ object { Le_Decor }
#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 {
location Loc_cam

View File

@@ -20,7 +20,7 @@ object { Le_Decor }
camera {
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>
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, 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>;

View File

@@ -72,7 +72,7 @@ object { HexaCone ()
#declare PosY = 0;
#declare PosZ = RO * cos(CK+3.23);
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>
}
@@ -88,7 +88,7 @@ light_source { <23, 10, 15>, rgb <0.77, 0.79, 0.80> }
// -------------------------------------------------------------
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>
right <image_width/image_height, 0, 0>
#if (0)

View File

@@ -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 CamY = 7 + (4*Cos_01(NormClock));

View File

@@ -26,7 +26,7 @@ camera {
look_at Loc_Patrouille
right <image_width/image_height, 0, 0>
angle 13.3333333
angle 11.11111
}
/* =============================================================== */

View File

@@ -21,7 +21,7 @@ object { Le_Decor }
#declare CamX = Dcam * cos(radians(CK+0.9));
#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 {
location <CamX, 2.10, CamZ>

View File

@@ -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
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
@@ -48,7 +48,6 @@ intertitres.
```
$ tools/plot-timing.sh essai && d timing.png
```
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.

View File

@@ -4,7 +4,7 @@ Img_Width=1152
Img_Height=720
# for imagemagick
TEXTCOL="Yellow"
TEXTCOL="Yellow3"
STROKOL="Green"
NBFRAMES=480

View File

@@ -36,7 +36,7 @@ SRC="frames/$1"
local INTER="/dev/shm/tmp-intertitre.png"
tools/plot-timing.sh $1
local NBRE=78
local NBRE=51
convert "WS/negatif.png" \
-gravity center \

View File

@@ -32,11 +32,13 @@ object { Le_Decor }
#declare CamY = 47 - (9.70 * Cos_01(NormClock));
#declare CamZ = 10.70 + (2*NormClock);
#declare LatY = -4 + ( 2.12 * NormClock);
#declare LatY = -4 + ( 2.82 * NormClock);
camera {
location <-3.60, CamY, CamZ>
look_at <0.6, LatY, 0>
spherical // XXX !
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>
// focal_point <2, 1, 12>
// aperture 0.046

View File

@@ -57,7 +57,7 @@ merge {
#local R = rand(Rng1);
#if ( R < 0.333) texture { T_Chrome_1C }
#elseif ( R < 0.666) texture { T_Silver_1C }
#else texture { T_WIP_rasta scale 3 }
#else texture { Flashy scale 3 }
#end
}
#undef L

View File

@@ -140,13 +140,14 @@ union {
/* nouveau du 7 octobre 2025 */
#macro Une_Boule ()
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);
#if (R < 0.333) texture { C_Texture }
#elseif (R < 0.666) texture { M_Texture }
#else texture { Y_Texture }
#end
finish { phong 0.7 specular 0.3 }
finish { phong 0.7 specular 0.5 }
}
#end // macro
@@ -157,6 +158,7 @@ sphere {
{
union {
#for (A, 0, 64, 1)
// please explain this formula !
#local CK = (NormClock*55.00) + (A*0.28);
object { Une_Boule ()
#local TX = 3.2 * sin(CK);
@@ -164,7 +166,7 @@ union {
#local TZ = 3.0 * cos(1-CK);
translate <TX, TY, TZ>
}
object { Repere scale 2 }
// object { Repere scale 2 }
#end // for
}
}