Compare commits

..

No commits in common. "243490996f6829571440c5b2afd82e9843c2b605" and "fb126ec1b077941430560caa34d8cf4506ed71f5" have entirely different histories.

7 changed files with 28 additions and 39 deletions

View File

@ -29,9 +29,7 @@ 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 et
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 : ./frames/Spool` pour l'assemblage de la vidéo intégrale :
``` ```
@ -44,8 +42,7 @@ frames/
├── Spool ├── Spool
└── topview └── topview
``` ```
et de l'autre coté `./WS/` pour ranger les et de l'autre coté `./WS/` pour ranger les fichiers de travail.
[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
de qualité (ce que fait je très empiriquement). Tout d'abord, on encode de qualité (ce que fait je très empiriquement). Tout d'abord, on encode
@ -53,21 +50,21 @@ de qualité (ce que fait je très empiriquement). Tout d'abord, on encode
pour les mettre dans le grand Ternet mondial à partir de mon 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 sequences dans le produit
[final](http://maison.tth.netlib.re/v/hc/full.mp4), en ajoutant [final](http://maison.tth.netlib.re/v/hc/full.mp4), en ajoutant
générique et inter-titres. générique et inter-titres.
À vous de jouer maintenant : *« Fork & Enjoy »* À vous de jouer maintenant.
## Contact ## Contact
* 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` 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
Il reste bien des choses à faire : [TODO](TODO.md) list. Des choses à faire : [TODO](TODO.md) list.
**Le gras c'est la vie** (proverbe local) **Le gras c'est la vie** (proverbe local)

12
TODO.md
View File

@ -7,23 +7,17 @@
## 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.
## Trucages ## Trucages
- Se remettre à (enfin) améliorer - Se remettre à bosser sur [libtthimage](https://git.tetalab.org/tTh/libtthimage).
[libtthimage](https://git.tetalab.org/tTh/libtthimage).
- Relire le livre de Brunus sur ImageMagick.
## Audio ## Audio
- Songer à un cadriciel pour la piste son. - Songer à un cadriciel pour la piste son.
- Trouver un compositeur et les musiciens.
## ... en bref ... ## ... en bref ...
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
Je me permet néamoins de déplorer le peu de présence de le peu de présence de povistes dans mon entourage.
[povistes](https://mastodon.tetaneutral.net/tags/Povray) dans
mon entourage.

View File

@ -12,18 +12,16 @@
#declare PosX = 3.95; #declare PosX = 3.95;
#declare PosY = 3.80 + (NormClock*0.299); #declare PosY = 3.80 + (NormClock*0.299);
#declare PosZ = (NormClock-0.5) * 45.27; #declare PosZ = (NormClock-0.5) * 44.27;
object { HexaCone () translate <PosX, PosY, PosZ> } object { HexaCone () translate <PosX, PosY, PosZ> }
/* XXX this two object in dynamic.inc ??? */
object { HexaCone () translate <PosX+2.96, PosY+3.22, PosZ-19.5> } object { HexaCone () translate <PosX+2.96, PosY+3.22, PosZ-19.5> }
object { HexaBenz () translate <PosX-1.96, PosY+2.82, PosZ-17.5> } object { HexaBenz () translate <PosX-1.96, PosY+2.82, PosZ-17.5> }
object { Le_Decor } object { Le_Decor }
#if ( (clock < 181) ) #if ( (clock < 141) )
light_source { light_source {
<3, 0.30, -8> color Blue <3, 0.30, -8> color Blue
spotlight spotlight
@ -34,14 +32,14 @@ light_source {
} }
#end #end
#if ( (clock > 230) & (clock < 340) ) #if ( (clock > 230) & (clock < 300) )
light_source { light_source {
<2, 0.30, -2> color Green <2, 0.30, -2> color Green
spotlight spotlight
radius .044 radius .044
falloff 2 falloff 2
tightness 3 tightness 3
point_at <PosX, PosY-0.20, PosZ> point_at <PosX, PosY-0.30, PosZ>
} }
#end #end

View File

@ -33,8 +33,8 @@ object { Le_Decor }
// object { Repere scale 3 translate <SzSol, 2, SzSol> } // object { Repere scale 3 translate <SzSol, 2, SzSol> }
#local DistCam = 390; #local DistCam = 380;
#local CK = -1.101 - (0.051 * NormClock); #local CK = -1.101 - (0.072 * NormClock);
#declare CamX = DistCam * sin(CK); #declare CamX = DistCam * sin(CK);
#declare CamY = 28; #declare CamY = 28;
#declare CamZ = DistCam * cos(CK); #declare CamZ = DistCam * cos(CK);

View File

@ -4,7 +4,7 @@ Img_Width=1024
Img_Height=720 Img_Height=720
# for imagemagick # for imagemagick
TEXTCOL="Yellow" TEXTCOL="bisque"
STROKOL="Green" STROKOL="Green"
NBFRAMES=450 NBFRAMES=450

View File

@ -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=55 local NBRE=48
convert "WS/negatif.png" \ convert "WS/negatif.png" \
-gravity north \ -gravity north \
@ -77,10 +77,10 @@ faire_le_titre ()
echo "faire le titre" echo "faire le titre"
local NBRE=300 local NBRE=300
local SRC="frames/hexacone/00199.png" local SRC="frames/hexawood/00199.png"
local GRAY="/dev/shm/tmp-titre.png" local GRAY="/dev/shm/tmp-titre.png"
convert -colorspace gray -colors 23 $SRC $GRAY convert -colorspace gray -colors 27 $SRC $GRAY
for foo in $(seq 0 $NBRE) for foo in $(seq 0 $NBRE)
do do
@ -91,7 +91,7 @@ do
-pointsize 140 \ -pointsize 140 \
-kerning 6 \ -kerning 6 \
-fill $TEXTCOL \ -fill $TEXTCOL \
-strokewidth 5 -stroke $STROKOL \ -strokewidth 3 -stroke $STROKOL \
-annotate +0+${Ypos} "La famille\nHexaCone" \ -annotate +0+${Ypos} "La famille\nHexaCone" \
${TMP} ${TMP}
# identify ${TMP} # identify ${TMP}
@ -105,9 +105,9 @@ faire_la_fin ()
{ {
local NBRE=160 local NBRE=160
datetime=$(LANG=fr date -u +"%Y/%m/%d %H:%M") datetime=$(LANG=fr date -u +"%Y/%m/%d %H:%M")
echo " $datetime" | tee -a WS/log echo $datetime | tee -a WS/log
local SRC="frames/escadrille/00399.png" local SRC="frames/escadrille/00299.png"
local GRAY="/dev/shm/tmp-titre.png" local GRAY="/dev/shm/tmp-titre.png"
convert -colorspace gray -colors 23 $SRC $GRAY convert -colorspace gray -colors 23 $SRC $GRAY
@ -117,8 +117,8 @@ do
convert ${GRAY} \ convert ${GRAY} \
-gravity north \ -gravity north \
-font $FONTE \ -font $FONTE \
-pointsize 92 \ -pointsize 86 \
-kerning 5 \ -kerning 6 \
-fill $TEXTCOL \ -fill $TEXTCOL \
-strokewidth 2 -stroke $STROKOL \ -strokewidth 2 -stroke $STROKOL \
-annotate +0+${Ypos} \ -annotate +0+${Ypos} \

View File

@ -17,7 +17,7 @@ echo "$0 $SEQNAME from $START" >> WS/log
DIMS="-W$Img_Width -H$Img_Height" DIMS="-W$Img_Width -H$Img_Height"
NBFR=" Declare=NbFrames=$NBFRAMES " NBFR=" Declare=NbFrames=$NBFRAMES "
POVOPT="+q9 +A0.02 -d ${DIMS} ${NBFR} -WT5" POVOPT="+q9 +A0.02 -d ${DIMS} ${NBFR} -WT7"
echo $NBFR "frames." echo $NBFR "frames."
echo $POVOPT ; echo ; sleep 2 echo $POVOPT ; echo ; sleep 2
@ -45,8 +45,8 @@ do
# echo $frame $img $txt # echo $frame $img $txt
convert ${TMPIMG} \ convert ${TMPIMG} \
-font Courier-Bold \ -font Courier-Bold \
-pointsize 44 \ -pointsize 38 \
-kerning 3 \ -kerning 4 \
-fill ${TEXTCOL} \ -fill ${TEXTCOL} \
-strokewidth 2 -stroke $STROKOL \ -strokewidth 2 -stroke $STROKOL \
-gravity north \ -gravity north \