pimping the bloubworld

This commit is contained in:
tTh 2024-01-25 21:44:49 +01:00
parent bf487c389c
commit 60dac4d948
6 changed files with 35 additions and 32 deletions

View File

@ -12,7 +12,6 @@ Tout est expliqué dans ce [document](doc/what-is-a-bloub.md).
la structure d'un bloub est (presque) simple, en fait.
Le plus compliqué, c'est de savoir quoi faire de ce fatras
de *bigdata*.
On peut fabriquer des gazillions de bloubs, et ensuite
les lacher dans un espace clôt, avec des parois
rebondissantes.
@ -39,7 +38,8 @@ de fichier qui va être modifié assez souvent, ne gardez pas d'archives.
### genbloubs
Fabrication d'une population de bloubs plus ou moins aléatoires.
Deux paramètres : le nom du fichier et le nombre de bloubs.
Deux paramètres : le nom du fichier (extention `.blbs`)
et le nombre de bloubs désirés.
Les règles de génération *devraient* être paramétrables.
[source](genbloubs.f90)

View File

@ -39,7 +39,7 @@ program exportbloubs
endif
enddo
write(0, '(1X, I8, A)') compte, " bloubs exported"
write(0, '(1X, I0, A)') compte, " bloubs exported"
close(idu)

View File

@ -54,7 +54,7 @@ program mergebloubs
enddo
call spit_bloubs_to_file (outfile, bloubs, nbgot)
print *, contacts, "contacts pour ", nbgot, "bloubs"
! print *, contacts, "contacts pour ", nbgot, "bloubs"
! STOP 'mergebloubs [done]'

View File

@ -83,28 +83,28 @@ program movebloubs
enddo ! end of main loop
write(0, '(I5,1X,A)') compteur, "bloubs processed"
write(0, '(1X,I0,1X,A)') compteur, "bloubs processed"
! ok, we have read all the bloubs in the input file
! insert some fancy conditional here
if (compteur .LT. 200) then
call add_more_bloubs(outu, 4, 0.1056)
call add_more_bloubs(outu, 4, 0.026)
endif
! insert some very fancy conditional here
if (compteur .LT. 800) then
rnd = rand()
write (0, '(A,1X,F9.6)') "try to add bloubs, rnd is", rnd
! write (0, '(A,1X,F9.6)') "try to add bloubs, rnd is", rnd
if (rnd .LT. 0.0604) then
call add_more_bloubs(outu, 11, 0.099)
call add_more_bloubs(outu, 11, 0.019)
endif
endif
close(inu) ; close(outu)
if (killed .GT. 0) then
write (0, '(I5,A)') killed, " bloubs killed"
write (0, '(1X,I0,A)') killed, " bloubs killed"
endif
bx = bx / dble(compteur)
@ -128,7 +128,7 @@ contains
bloub%nick = 'newbie '
call make_a_random_bloub(bloub)
bloub%radius = rayon + (0.15*rand())
bloub%radius = rayon + (0.05*rand())
bloub%age = 1
bloub%alive = .TRUE.
bloub%num = mod(irand(), 42)

View File

@ -7,16 +7,16 @@
INCFILE="WS/bloubs.inc"
TMPPNG="/dev/shm/bloubs7.png"
POVOPT="+Q9 +a -v -d -W1600 -H1200 -WT2"
POVOPT="+Q9 -a -v -d -W1600 -H1200 -WT2"
DDIR="frames/a"
LOGERR="log.error"
TXTCOLOR="GreenYellow"
TXTCOLOR="#db7000"
# --- put the work file in ramdisk
BLBS_IN="/dev/shm/in.blbs"
BLBS_OUT="/dev/shm/out.blbs"
NBIMG=3000
NBIMG=120
make all
err=$?
@ -31,7 +31,7 @@ printf "\n#declare NbImg = %d;\n" $NBIMG > WS/nbimg.inc
# first, we have to make a seminal buch of bloubs
# --> this function need to be parametrizable
#
./genbloubs ${BLBS_IN} 3
./genbloubs ${BLBS_IN} 50
for idx in $(seq 0 $((NBIMG-1)) )
do
@ -43,11 +43,11 @@ do
povray -Iscene.pov -K${idx} -O${TMPPNG} ${POVOPT} 2> $LOGERR
if [ 0 -ne $? ] ; then
tail -15 $LOGERR
sleep 30
sleep 90
fi
td=$(date +'%F %R:%S')
hi=$(printf "#%05d" $idx)
td=$(date -u +'%F %R:%S' | tr '01' 'ol')
hi=$(printf "#%05d" $idx | tr '01' 'ol')
count=$(tail -1 "WS/log.nb_bloubs")
PNG=$(printf "%s/%05d.png" ${DDIR} $idx)

View File

@ -29,20 +29,23 @@ object {
finish { phong 0.57 specular 0.57 }
}
object {
union {
plane { <1, 0, 0>, -37 }
plane { <1, 0, 0>, 37 }
plane { <0, 1, 0>, -27 }
plane { <0, 1, 0>, 27 }
plane { <0, 0, 1>, 69 }
texture {
pigment { color srgb <0.125, 0.144, 0.111> }
finish { phong 0.18 metallic 0.25 reflection 0.35 }
}
#declare La_Boite = object
{
union {
plane { <1, 0, 0>, -37 }
plane { <1, 0, 0>, 37 }
plane { <0, 1, 0>, -27 }
plane { <0, 1, 0>, 27 }
plane { <0, 0, 1>, 69 }
texture {
pigment { color srgb <0.225, 0.244, 0.211> }
finish { phong 0.18 metallic 0.25 reflection 0.35 }
}
}
}
plane { y, 0 pigment { color White } translate -4.20*y}
// object { cylinder { <0, 0, 0>, <10, 0, 0>, 0.05 pigment { color Cyan } } }
@ -56,7 +59,7 @@ object {
{
merge {
cylinder { <0, BV, 0>, <0, -BV, 0>, BR }
cylinder { <0, 0.014, 0>, <0, -0.014, 0>, BR*4 }
cylinder { <0, 0.018, 0>, <0, -0.018, 0>, BR*3 }
}
}
@ -109,8 +112,8 @@ union {
}
// ----------------------------------------------------------
light_source { <19, -12+NormClock, -17> color Gray80 }
light_source { <11, 14-NormClock, 9> color Gray60 }
light_source { <19, 12+NormClock, -17> color Gray80 }
light_source { <11, 10-NormClock, -29> color Gray60 }
#declare XCAM = 8 - ( 15 * NormClock);
#declare YCAM = -1.1 + (0.95 * NormClock);