HexaCone/essai.pov
2025-02-09 19:02:32 +01:00

156 lines
3.0 KiB
POVRay

/*
* H E X A C O N E - E S S A I
* nouveau projet du Thu Dec 5 11:37:05 AM UTC 2024
*/
#version 3.7;
#include "globals.inc"
#include "contexte.inc"
#include "elements.inc"
#include "hexabenz.inc"
// =======================================================
/*
* nouveau debut fevrier 2025 - we love raytracing
*/
/*
* deux textures
*/
#declare T_Beton_1 = texture
{
pigment { color <0.9, 0.8, 0.8> }
normal { dents 0.75 scale 0.3 }
}
#declare T_Beton_2 = texture
{
pigment { color <0.9, 0.8, 0.8> }
normal { dents 0.25 scale 2 }
}
/*
* une seule forme de cabane pour le moment
*/
#declare Base_cabane_forme = object
{
difference {
box { <-0.90, 0, 0>, <0.90, 1.00, 0.80> }
box { <-0.89, -1, -1> <0.89, 0.99, 0.79> }
cylinder { <-1, 0.75, -0.23>, <1, 0.75, 0.23>, 0.09 }
}
}
/*
* comparaison des deux textures par le rendu
* de la meme forme de cabane.
*/
#declare Cabane_Base_1 = object
{
object { Base_cabane_forme }
texture { T_Beton_1 }
}
#declare Cabane_Base_2 = object
{
object { Base_cabane_forme }
texture { T_Beton_2 }
}
/*
* assemblage des deux versions face a face
*/
#declare Les_Cabanes = object
{
union {
#local E = 1.10;
object { Cabane_Base_1 rotate 270*y translate -x*E }
object { Cabane_Base_2 rotate 90*y translate x*E }
#undef E
}
}
// =======================================================
#declare QuadriPole = object
{
#local R = 0.02;
#local E = 0.25;
#local H = H_cone*2;
union {
cylinder { 0, y*H, R translate -x*E }
cylinder { 0, y*H, R translate x*E }
cylinder { 0, y*H, R translate -z*E }
cylinder { 0, y*H, R translate z*E }
}
texture { WIP_color }
#undef E
#undef H
#undef R
}
// =======================================================
#macro Bubble ()
sphere {
0, 0.065
#if ( rand(Rng1) < 0.333 )
texture { Ruby_Glass }
#elseif ( rand(Rng1) < 0.666 )
texture { Orange_Glass }
#else
texture { Gold_Nugget }
#end
}
#end
#macro Un_Machin ()
union {
#for (Y, 1, 8, 1)
object { Bubble() translate y*Y*0.1 }
#end
}
#end
#declare Les_Machins = object
{
union {
#local Rk = 3.95 + NormClock;
#for (foo, 0, 359, 45)
#local Xpos = Rk * sin(radians(foo));
#local Zpos = Rk * cos(radians(foo));
#local RND = rand(Rng1);
object { Un_Machin () translate <Xpos, 0, Zpos> }
#end
#undef RND
#undef Rk
}
}
// =======================================================
object { GroundBase }
object { Les_Cabanes rotate -y*(clock*0.75) translate y*H_base }
// object { OpenBox translate y*1.2 }
object { Les_Machins translate y*1.5 }
object { Le_Decor }
object { Repere translate y*2 }
// =======================================================
// light_source { <-8, 7, -9>, rgb <0.81, 0.65, NormClock> }
// light_source { < 11, 7, 4>, rgb <1-NormClock, 0.28, 0.80> }
#local CamX = -2.7 + (3.8*Cos_01(NormClock));
#local CamY = 1.81 + (4*sqrt(NormClock));
#local CamZ = 1.7 + (3.8*Cos_01(NormClock));
camera {
// fisheye
location <CamX, CamY, 9.99>
look_at <0, 0.5, 0>
angle 32 + 4*Cos_01(NormClock)
}