Compare commits

..

No commits in common. "876d574eec6a5e82cdd6edd16f4145a8a64c1f9c" and "70469c79041c5653c42cd23bcc5034760549b5c7" have entirely different histories.

6 changed files with 91 additions and 293 deletions

View File

@ -1,12 +1,12 @@
DIMS = -W1600 -H1200 DIMS = -W1600 -H1200
# POVOPT = +q9 +a0.02 -d
POVOPT = +q9 +A Declare=NbFrames=450 -d POVOPT = +q9 +A Declare=NbFrames=450 -d
POVDEP = contexte.inc hexacone.inc hexabenz.inc \ POVDEP = contexte.inc hexacone.inc hexabenz.inc \
globals.inc hexawood.inc datas/hf.png \ globals.inc hexawood.inc datas/hf.png \
dynamic.inc trident.inc groundbase.inc \ dynamic.inc trident.inc groundbase.inc \
gadgets.inc xperiment.inc gadgets.inc
# ! Define a default value for the POV clock # ! Define a default value for the POV clock
# ! You can overide with this command line : # ! You can overide with this command line :

View File

@ -17,17 +17,6 @@
#include "dynamic.inc" #include "dynamic.inc"
// XXX
#include "xperiment.inc"
// XXX
object { Les_Arches rotate y*59 translate <-32, 0, 20> }
object { Les_Arches rotate y*159 translate <-34, 0, -26> }
object { Les_Cahutes () translate <32, 0, -9> }
object { Les_Cahutes () rotate y*7 translate <37, 0, -22> }
// --------------------------------------------------------- // ---------------------------------------------------------
// dessiner une grille // dessiner une grille
@ -42,7 +31,7 @@ object { Repere scale 10 translate y*7 }
object { Le_Decor } object { Le_Decor }
camera { camera {
location <45, 179+(42*NormClock), 18-(21*NormClock)> location <45, 159+(42*NormClock), 18-(42*NormClock)>
look_at <0, 1.18, 0.17 + (2.9*NormClock)> look_at <0, 1.18, 0.17 + (2.9*NormClock)>
angle 50 angle 50
} }

193
essai.pov
View File

@ -6,6 +6,7 @@
#version 3.7; #version 3.7;
#include "globals.inc" #include "globals.inc"
#debug "\n GLOBALS INCLUDED\n" #debug "\n GLOBALS INCLUDED\n"
#include "contexte.inc" #include "contexte.inc"
@ -15,70 +16,18 @@
#include "hexawood.inc" #include "hexawood.inc"
#include "trident.inc" #include "trident.inc"
// XXX
#include "xperiment.inc"
// XXX
// =======================================================
/* nouveau du 20 octobre 2025
* Un semblant de wagonnet qui va tourner sur le
* rail circulaire
*/
#macro Wagonnet_0 (Longueur)
object {
/* le corps */
merge {
#local L2 = Longueur / 2;
#local R = 0.50;
cylinder { <L2, 0, 0>, <-L2, 0, 0>, R }
sphere { <0, 0, 0>, R
scale <3, 1, 1>
translate x*L2
}
/* le kiosque (est-ce un sous-marin ?) */
sphere { <-L2, 0, 0>, R }
merge {
cylinder { <0, 0, 0>, <0, L2, 0>, R/4 }
sphere { <0, 0, 0>, R/4
scale <1, 0.4, 1> translate y*L2
}
scale <2, 1, 1> translate x*L2*0.70
}
#local R = rand(Rng1);
#if (R < 0.333)
texture { WIP_color }
#elseif (R < 0.666)
texture { GoldDark }
#else
texture { Flashy scale 17 }
#end
}
}
#end // macro
#declare Un_Wagonnet = object
{
#local R = 2;
object { Wagonnet_0 (3)
rotate y*clock
}
}
// ======================================================= // =======================================================
/* nouveau du 7 octobre 2025 */ /* nouveau du 7 octobre 2025 */
#macro Une_Boule () #macro Une_Boule ()
sphere { sphere {
0, 0.1111 + (rand(Rng1) * 0.20) 0, 0.18
#local R = rand(Rng1); #local R = rand(Rng1);
#if (R < 0.333) #if (R < 0.333)
texture { C_Texture } pigment { color Red }
#elseif (R < 0.666) #elseif (R < 0.666)
texture { M_Texture } pigment { color Green }
#else #else
texture { Y_Texture } pigment { color Blue }
#end #end
} }
#end // macro #end // macro
@ -90,112 +39,132 @@ sphere {
{ {
union { union {
#for (A, 0, 24, 1) #for (A, 0, 24, 1)
#local CK = (NormClock*60.00) + (A*0.07);
object { Une_Boule () object { Une_Boule ()
#local TX = 1.6 * sin(CK); #local TX = 2.6 * (A/10) * (0.5 - NormClock);
#local TY = 1.4 * cos(sin(CK)); #local TY = 2 * abs(sin(clock*0.07*A));
#local TZ = 2.0 * cos(1-CK); #local TZ = 3.0 * cos(NormClock*0.08*A);
translate <TX, TY, TZ> translate <TX, TY, TZ>
} }
object { Repere scale 2 }
#end // for #end // for
} }
} finish { ambient 0 phong 1 }
//translate <-0.5, -0.5, -0.5> // recalage de l'objet fini
scale 1.3333333
}
// ======================================================= // =======================================================
/* /*
* nouveau du 25 octobre 2025 * nouveau du 12 octobre 2025
*/ */
#declare Obj_BasicTexture = object
{
#local R = 0.333;
merge {
cylinder { 0, y, R }
sphere { 0, R scale <1, 0.20, 1> translate y }
}
}
#declare BasicTextures = object #macro Cahute_0 ()
#debug "Enter macro Cahute_0\n"
difference {
#local KX = 0.70;
#local KH = 1.60 + rand(Rng1) + rand(Rng1);
#local KZ = KX + (0.24*rand(Rng1));
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
#local KX = KX * 0.99;
#local KH = KH * 0.99;
#local KZ = KZ * 0.99;
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
cylinder { <-10, KH/2, 0>, <10, KH/2, 0>, KX * 0.741 }
#local R = rand(Rng1);
#debug concat("Random = ", str(R, 6, 4), "\n")
#if ( R < 0.33 )
texture { Flashy scale <17, 23, 5> }
#elseif ( R < 0.66 )
texture { T_Beton_1 }
#else
texture { T_Beton_2 }
#end // if
rotate y * (77 * rand(Rng1))
}
#end // macro
#declare Les_Cahutes = object
{ {
#local TR = 2.20;
union { union {
object { Obj_BasicTexture texture { R_Texture } #local K = 2.70;
translate <TR, 0, 0> } object { Cahute_0 () translate -x * K }
object { Obj_BasicTexture texture { G_Texture } object { Cahute_0 () translate x * K }
translate <0, 0, 0> } object { Cahute_0 () translate -z * K }
object { Obj_BasicTexture texture { B_Texture } object { Cahute_0 () translate z * K }
translate <0, 0, TR> }
object { Obj_BasicTexture texture { Y_Texture }
translate < TR, 0, TR> }
object { Obj_BasicTexture texture { M_Texture }
translate <-TR, 0, TR> }
object { Obj_BasicTexture texture { C_Texture }
translate <-TR, 0, -TR> }
} }
rotate y * (clock*3.33)
} }
// ======================================================= // =======================================================
#debug "ACTION !!!\n"
// ------------------------------------------------------ ##
#declare Tridents = object
{
#local RX = -11 + (80*sin(NormClock*9.81) + 3*sin(NormClock*23));
#local RZ = 96 - (54*Cos_010(NormClock));
union {
object { Trident_A () rotate <RX, 0, RZ>
translate < -1.5, 1.0, 0> }
object { Trident_A () rotate <0, clock, 0>
translate < 1.5, 1.8, 0> }
}
}
// ------------------------------------------------------ ##
#declare Gyros = object #declare Gyros = object
{ {
// #debug " Les gyros !!!\n"
union { union {
#for (I, 0, 359, 30) #for (I, 0, 359, 30)
#declare E = 12; #declare E = 11;
#declare Dx = E * sin(radians(I)); #declare Dx = E * sin(radians(I));
#declare Dz = E * cos(radians(I)); #declare Dz = E * cos(radians(I));
object { GyroPhare () translate <Dx, 0, Dz> } object { GyroPhare () translate <Dx, 0, Dz> }
// #debug " Gyro !!!\n"
#end #end
} }
} }
// ------------------------------------------------------ ##
object { Gyros } object { Gyros }
// ------------------------------------------------------ ## #declare Selector = mod(int(clock/30), 6);
#debug " !!! ACTION !!!\n"
// ------------------------------------------------------ ##
#declare Selector = mod(int(clock/60)+19, 8);
#debug concat("Selector = ", str(Selector, 6, 0), "\n") #debug concat("Selector = ", str(Selector, 6, 0), "\n")
#switch (Selector) #switch (Selector)
#case (0) #case (0)
object { OpenBox translate y*2.1 } object { Tridents scale 1.12 rotate -y*(clock*0.666) }
#break #break
#case (1) #case (1)
object { Les_Arches rotate -y*(clock*0.666) } object { Les_Cahutes scale 0.50 }
#break #break
#case (2) #case (2)
object { HexaWood rotate -y*(clock*0.38) translate y } object { HexaWood rotate -y*(clock*0.38) translate y }
#break #break
#case (3) #case (3)
object { Chose () translate y*0.34 rotate -y*clock } object { Chose rotate x*5 rotate y*clock }
#break #break
#case (4) #case (4)
object { HexaBenz () scale 2 translate 2.7*y rotate -y*clock } object { HexaBenz () scale 2 translate 2.7*y rotate -y*clock }
#break #break
#case (5) #case (5)
object { Les_Boules translate y*0.8 } object { Les_Boules translate y }
#break #break
#case (6)
object { Un_Wagonnet translate y }
#break
#case (7)
#local Pos = <0, 0, 0>;
object { BasicTextures rotate -y*clock translate Pos }
#break
#end // switch selector #end // switch selector
plane { plane {
y, 0 y, 0
texture { Ground_Texture } texture { T_Planete_B scale 0.666 }
} }
// object { Repere translate y*1.0 } object { Repere translate y*1.0 }
// ======================================================= // =======================================================
@ -213,6 +182,6 @@ camera {
orthographic orthographic
#end #end
location <CamX, CamY, CamZ> location <CamX, CamY, CamZ>
look_at <0, 1.6, 0> look_at <0, 1.4, 0>
angle 17 - 3*Cos_01(NormClock) angle 12 - 3*Cos_01(NormClock)
} }

View File

@ -108,41 +108,22 @@ finish { roughness 1.00 }
} }
} }
/* this texture will be clock dependent XXX */
#declare Flashy = texture { #declare Flashy = texture {
pigment { pigment {
onion onion
colour_map { colour_map {
[0.00, Red * 0.70 ] [0.00, Red ]
[0.33, Gray50 ] [0.40, Gray50 ]
[1.00, Blue * 0.70 ] [1.00, Blue ]
} }
turbulence 3.14159 turbulence 3.14159
scale 0.50 scale 0.50
} }
finish { finish {
emission 0 ambient 0.717 diffuse 0.209 specular 0 emission 0 ambient 1 diffuse 0 specular 0
} }
} }
/* ------------------------------------------------------------ */
/*
*
*/
#declare R_Texture = texture {
pigment { rgb <1.0, 0.0, 0.0> } finish { ambient 0.33 } }
#declare G_Texture = texture {
pigment { rgb <0.0, 1.0, 0.0> } finish { ambient 0.33 } }
#declare B_Texture = texture {
pigment { rgb <0.0, 0.0, 1.0> } finish { ambient 0.33 } }
#declare Y_Texture = texture {
pigment { rgb <0.8, 0.8, 0> } finish { ambient 0.33 } }
#declare M_Texture = texture {
pigment { rgb <0.8, 0.0, 0.8> } finish { ambient 0.33 } }
#declare C_Texture = texture {
pigment { rgb <0.0, 0.8, 0.8> } finish { ambient 0.33 } }
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
#declare GoldDark = texture #declare GoldDark = texture

View File

@ -16,12 +16,12 @@ GIF="t-$SEQ.gif"
echo "seq $SEQ -> $GIF" | tee -a WS/log echo "seq $SEQ -> $GIF" | tee -a WS/log
convert \ convert \
-delay 7 \ -delay 6 \
-dither none \ -dither none \
-equalize \ -equalize \
-resize '320x240!' \ -resize '320x240!' \
-remap datas/ega-16colors.png \ -remap datas/ega-16colors.png \
frames/$SEQ/00??[369].png \ frames/$SEQ/?[012]*[369].png \
$GIF $GIF

View File

@ -1,141 +0,0 @@
/*
* H E X A C O N E - X P E R I M E N T
*
* A cosy place for experimental things (2025/10/27)
*
*/
// =======================================================
/*
* nouveau du 25 octobre 2025
*/
#macro Une_Arche (Val)
object {
#debug concat(" Arche, val = ", str(Val, 6, 4), "\n")
merge {
#local Ha = 2;
// mettre une base de la colonne
cylinder { <-1, 0, 0>, <-1, 0.20, 0> Val*1.29 }
cylinder { < 1, 0, 0>, < 1, 0.20, 0> Val*1.27 }
cylinder { <-1, 0, 0>, <-1, Ha, 0>, Val }
cylinder { < 1, 0, 0>, < 1, Ha, 0>, Val }
#if (rand(Rng1) < 0.50)
torus { 0.008, Val*1.08 translate <-1, Ha, 0> }
torus { 0.008, Val*1.08 translate < 1, Ha, 0> }
#else
cylinder { y*(Ha-0.07), y*(Ha+0.01), Val*1.12 translate -x }
cylinder { y*(Ha-0.08), y*(Ha+0.01), Val*1.13 translate x }
#end
intersection {
torus { 1, Val }
box { <-20, -5, 0>, <20, 5, -20> }
rotate <90, 0, 0> translate Ha*y
}
#local R = rand(Rng1);
#if (R < 0.25)
texture { T_Stone40 scale 5+rand(Rng1) }
#elseif (R < 0.50)
texture { T_Stone44 scale 4+rand(Rng1) }
#elseif (R < 0.75)
texture { T_Stone32 scale 5+rand(Rng1) }
#else
texture { T_Stone36 scale 6+rand(Rng1) }
#end
}
}
#end
#declare Les_Arches = object
{
union {
#local E = 1.333 + (rand(Rng1) * 0.50);
object { Une_Arche (0.20) }
object { Une_Arche (0.16) translate -z*E }
object { Une_Arche (0.16) translate z*E }
object { Une_Arche (0.12) translate -z*E*2 }
object { Une_Arche (0.12) translate z*E*2 }
object { Une_Arche (0.08) translate -z*E*3 }
object { Une_Arche (0.08) translate z*E*3 }
}
}
// ==============================================================
/*
* new Mon Oct 27 04:54:41 PM UTC 2025
*/
#macro Un_Pylone (Type, Hauteur)
#debug " Un pylone ?\n"
#end // macro
// ==============================================================
/*
* nouveau du 12 octobre 2025
*/
#macro Cahute_0 ()
difference {
#local KX = 0.60;
#local KH = 1.80 + rand(Rng1) ;
#debug concat(" Cahute_0, KH = ", str(KH, 6, 4), "\n")
#local KZ = KX + (0.24*rand(Rng1));
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
#local Mult = 0.97;
#local KX = KX * Mult;
#local KH = KH * Mult;
#local KZ = KZ * Mult;
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
cylinder { <-10, KH*0.70, 0>, <10, KH*0.72, 0>, KX * 0.666 }
#local R = rand(Rng1);
// #debug concat("Random = ", str(R, 6, 4), "\n")
#if ( R < 0.13 )
texture { T_Planete_A }
#elseif ( R < 0.56 )
texture { T_Beton_1 }
#else
texture { T_Beton_2 }
#end // if
rotate y * (277 * rand(Rng1))
}
#end // macro
/* le support des cahutes XXX */
#macro Les_Cahutes ()
union {
#local K = 2.75;
union {
object { Cahute_0 () translate -x * K }
object { Cahute_0 () translate x * K }
object { Cahute_0 () translate -z * K }
object { Cahute_0 () translate z * K }
translate y
}
#local K2 = K + 1.35;
box { <-K2, 0, -K2>, <K2, 1, K2> pigment { Gray30 } }
}
// rotate -y * (clock*0.33)
#end
// =======================================================
/*
* new: 28 octobre 2025
*/
#declare Ground_Texture = texture
{
pigment { rgb <0.51, 0.58, 0.23> }
normal { dents 0.28 scale 1.5}
finish {
ambient 0 specular 0.5 metallic roughness 0.18
reflection { 0.5 metallic }
}
}
// ==============================================================