4.1.8 Script ionic5
Utilisation : Les liens ne sont pas apparents. Pour obtenir des informations sur un mot clé, cliquez-le dans le script !
global_settings {assumed_gamma 1.8}
#include "colors.inc"
#include "shapes.inc"
#include "marble.inc"
#include "b-snake.inc"
#include "turn.inc"
#include "panther.inc"
#include "s-head3.inc"
#declare pink = color red 1.0 green 0.5 blue 0.5;
camera {
location <-50, 80,-220>
direction <0, 0, 1.5>
up <0, 1, 0>
right <4/3, 0, 0>
}
sphere {
<0, 0, 0>, 50000
hollow on
texture {
pigment {MidnightBlue}
finish {
ambient 1.0
diffuse 0.0
}
}
}
light_source {<700, 150,-500> color White}
light_source {<-4000, 100,-1000> color White}
#declare base_a = union {
sphere {<0, 0, 0>, 1 scale <13, 5.5, 13>}
sphere {<0, 0, 0>, 1 scale <11, 3, 11> translate 4*y}
cylinder {<0, 0, 0>, y, 1 scale <10, 4, 10> translate 5*y}
texture {
marble1
scale <9, 6, 4>
finish {
ambient 0.5
diffuse 1
}
}
texture {
marble4
scale <7, 12, 9>
rotate <0, 0,-40>
finish {
diffuse 1.0
phong 0.6
phong_size 50
}
}
rotate 40*y
}
#declare motif1 = cylinder {
<0, 0, 0>, y, 1
scale <9.5, 7, 9.5>
texture {
pigment {
image_map {png "congo4.png"}
scale <19, 7, 1>
translate <-9.5, 0,-1>
}
finish {
ambient 0.3
diffuse 0.9
phong 0.6
}
}
}
#declare column_a = cylinder {
<0, 0, 0>, y, 1
scale <9.3, 50, 9.3>
texture {
marble1
finish {
crand 0.01
ambient 0.2
diffuse 0.8
}
scale <16, 4, 4>
}
texture {
marble2
scale <10, 6, 5>
rotate -30*z
finish {diffuse 1.0}
}
texture {
marble4
finish {
phong 0.6
phong_size 45
}
scale <8, 15, 5>
rotate <0, 0, 50>
}
rotate 10*y
}
#declare top_column = union {
object {base_a}
object {motif1 translate 9*y}
object {column_a translate 12*y}
}
#declare gfloor = object {
Cube
scale <100, 1, 50>
texture {
pigment {Salmon}
finish {
ambient 0.2
diffuse 0.5
phong 1.0
phong_size 10
}
}
}
#declare sp1 = sphere {<0, 0, 0>, 2}
#declare round_cap = object {
union {
object {sp1 translate <-100, 0,-50>}
object {sp1 translate <-100, 0, 50>}
object {sp1 translate <100, 0,-50>}
object {sp1 translate <100, 0, 50>}
cylinder {<0, 0, 0>, x, 1 scale <200, 2, 2> translate <-100, 0,-50>}
cylinder {<0, 0, 0>, z, 1 scale <2, 2, 100> translate <-100, 0,-50>}
}
texture {
marble1
scale <50, 10, 40>
finish {
ambient 0.4
diffuse 0.9
}
}
texture {
marble2
scale <40, 5, 20>
rotate <0, 0, 40>
}
texture {
marble4
scale <20, 20, 20>
rotate <0, 0,-40>
finish {phong 0.6 phong_size 20}
}
}
#declare d1 = object {Cube scale <1, 1.5, 2>}
#declare cornice = union {
object {Cube scale <103, 0.5, 53> translate <0, 2.5, 0>}
object {Cube scale <103, 1, 53> translate <0,-2, 0>}
object {Cube scale <101, 2, 51> translate <0, 0, 0>}
texture {
marble1
scale <10, 6, 4>
finish {
ambient 0.4
diffuse 1.0
}
}
texture {
marble2
scale <7, 6, 4>
rotate <0, 0, 40>
}
texture {
marble4
scale <3, 6, 5>
rotate <0, 0,-40>
finish {
phong 0.6
phong_size 20
}
}
}
#declare dentile_a = union {
object {d1 translate -50*x}
object {d1 translate -45*x}
object {d1 translate -40*x}
object {d1 translate -35*x}
object {d1 translate -30*x}
object {d1 translate -25*x}
object {d1 translate -20*x}
object {d1 translate -15*x}
object {d1 translate -10*x}
object {d1 translate -5*x}
object {d1 translate 0*x}
object {d1 translate 50*x}
object {d1 translate 45*x}
object {d1 translate 40*x}
object {d1 translate 35*x}
object {d1 translate 30*x}
object {d1 translate 25*x}
object {d1 translate 20*x}
object {d1 translate 15*x}
object {d1 translate 10*x}
object {d1 translate 5*x}
texture {
marble1
scale <10, 6, 4>
finish {
ambient 0.4
diffuse 0.9
}
}
texture {
marble2
scale <7, 6, 4>
rotate <0, 0, 40>
}
texture {
marble4
scale <3, 6, 4>
rotate <0, 0,-40>
finish {
phong 0.6
phong_size 20
}
}
}
#declare top_floor = union {
object {gfloor translate <0, 9, 0>}
object {round_cap translate <0, 7, 0>}
object {cornice translate <0, 3, 0>}
object {dentile_a translate <-50, 4,-52>}
object {dentile_a translate <50, 4,-52>}
}
#declare turn = object {s1 rotate -90*x}
#declare cap_a = union {
sphere {
<0, 0, 0>, 1
scale <7, 2, 7>
translate <0, 1, 0>
}
cylinder {
<0, 0, 0>, y, 1
scale <6, 5, 6>
translate <0, 2, 0>
}
sphere {
<0, 0, 0>, 1
scale <8, 3, 8>
translate <0, 8, 0>
}
cylinder {
<0, 0, 0>, y, 1
scale <8, 2, 8>
translate <0, 8, 0>
}
texture {
marble1
finish {
ambient 0.4
diffuse 1.0
}
scale <5, 13, 4>
}
texture {
marble4
finish {
diffuse 1.0
phong 0.6
phong_size 20
}
scale <5, 7, 3>
rotate <0, 0, 50>
}
}
#declare cap_b = union {
cylinder {<0, 0, 0>, y, 1 scale <1.2, 8, 1.2> translate <1, 0,-4>}
cylinder {<0, 0, 0>, y, 1 scale <1.2, 8, 1.2> translate <-1, 0,-4>}
cylinder {<0, 0, 0>, y, 1 scale <1.2, 8, 1.2> translate <-2, 0,-4>}
cylinder {<0, 0, 0>, y, 1 scale <1.2, 8, 1.2> translate <2, 0,-4>}
object {Cube scale <10, 2, 8> translate <0, 10, 2>}
object {Cube scale <7, 4, 4> translate <0, 4, 0>}
cylinder {<0, 0, 0>, z, 1 scale <4.5, 4.5, 8> translate <-6, 4,-4>}
cylinder {<0, 0, 0>, z, 1 scale <4.5, 4.5, 8> translate <6, 4,-4>}
texture {
marble1
finish {
ambient 0.4
diffuse 1.0
}
scale <5, 13, 4>
}
texture {
marble4
finish {
diffuse 1.0
phong 0.6
phong_size 20
}
scale <5, 7, 3>
rotate 50*z
}
}
#declare capital = union {
object {cap_a translate <0, 0, 0>}
object {cap_b translate <0, 10, 0>}
object {turn translate <-6, 14,-4>}
object {turn rotate <0, 180, 0> translate <6, 14,-4>}
}
#declare motif2 = cylinder {
<0, 0, 0>, y, 1
scale <6.5, 8, 6.5>
texture {
pigment {
image_map {png "congo4.png"}
scale <13, 8, 1>
translate <-6.5, 0,-1>
}
finish {
ambient 0.3
diffuse 0.9
phong 1.0
}
}
}
#declare column_b = cylinder {
<0, 0, 0>, y, 1
scale <6, 54, 6>
texture {
marble1
finish {
ambient 0.4
diffuse 0.8
crand 0.1
}
scale <9, 30, 18>
}
texture {
marble2
scale <10, 18, 5>
rotate <0, 0,-30>
finish {diffuse 1.0}
}
texture {
marble4
finish {
diffuse 0.9
phong 0.8
phong_size 45
}
scale <4, 15, 5>
rotate 50*z
}
}
#declare bottom_column = union {
object {capital translate <0, 58, 0>}
object {motif2 translate <0, 50, 0>}
object {column_b translate <0, 0, 0>}
}
#declare brick_wall = object {
Cube
scale <30, 6, 3>
texture {
marble1
finish {
ambient 0.2
diffuse 0.9
}
scale <20, 30, 4>
}
texture {
marble2
scale <20, 9, 5>
finish {diffuse 1.0}
rotate -30*z
}
texture {
marble4
finish {
phong 0.6
phong_size 25
}
scale <18, 18, 3>
rotate 50*z
}
}
#declare top_wall = object {
difference {
object {Cube scale <30, 10, 3> translate <0, 0, 0.01>}
object {Cylinder_Z scale <13, 13, 1> translate <0,-10, 0>}
}
texture {
marble1
finish {
ambient 0.2
diffuse 0.9
}
scale <30, 20, 4>
}
texture {
marble2
scale <26, 16, 5>
finish {diffuse 1.0}
rotate -30*z
}
texture {
marble4
finish {
phong 0.6
phong_size 25
}
scale <15, 27, 2>
rotate 50*z
}
}
#declare molding_2 = union {
difference {
cylinder {<0, 0, 0>, z, 1 scale <16, 16, 12> translate <0, 0,-6>}
object {Cylinder_Z scale <13, 13, 1>}
}
object {Cube scale <10, 2, 6> translate <-21,-2, 0>}
object {Cube scale <10, 2, 6> translate <21,-2, 0>}
object {Cube scale <31, 1, 6> translate <0, 17, 0>}
texture {
marble1
finish {
ambient 0.5
diffuse 1.0
}
scale <15, 3, 4>
}
texture {
marble4
finish {
phong 0.8
phong_size 15
ambient 0.6
}
scale <15, 7, 6>
rotate 50*z
}
}
#declare motif3 = object {
Cube
scale <9.5, 5, 3.1>
texture {
pigment {
image_map {png "congo4.png"}
scale <19, 10, 1>
translate <-9.5,-5,-1>
}
finish {
ambient 0.3
diffuse 0.9
phong 1.0
}
}
}
#declare low_wall = object {
Cube
scale <9, 22, 3>
texture {
marble1
finish {
ambient 0.3
diffuse 0.9
}
scale <15, 20, 7>
}
texture {
marble2
scale <10, 25, 3>
finish {diffuse 1.0}
rotate <0, 0,-30>
}
texture {
marble4
finish {
phong 0.8
phong_size 25
ambient 0.5
}
scale <8, 16, 3>
rotate 50*z
}
}
#declare wall = union {
object {low_wall translate <-21, 22, 0>}
object {low_wall translate <21, 22, 0>}
object {motif3 translate <-21, 42, 0>}
object {motif3 translate <21, 42, 0>}
object {molding_2 translate <0, 50, 0>}
object {top_wall translate <0, 60, 0>}
object {brick_wall translate <0, 74, 0>}
}
object {
Cube
scale <95, 55, 1>
texture {
marble1
finish {
ambient 0.2
diffuse 0.9
}
scale <40, 30, 5>
}
texture {
marble2
scale <30, 60, 3>
rotate -30*z
}
texture {
marble4
finish {
phong 0.8
phong_size 25
}
scale <30, 20, 3>
rotate 50*z
}
translate <0, 15, 10>
}
object {top_column rotate 10*y scale 1.9 translate <-30, 94,-25>}
object {top_floor translate <-10, 80, 0>}
object {bottom_column scale <1.3, 1, 1.3> translate <-100, 0,-40>}
object {bottom_column scale <1.3, 1, 1.3> translate <-30, 0,-40>}
object {bottom_column scale <1.3, 1, 1.3> translate <40, 0,-40>}
object {wall translate <5, 0,-32>}
object {wall translate <-65, 0,-32>}
object {
Cube
scale <2000, 1500, 1>
texture {
pigment {Maroon}
finish {
ambient 0.2
diffuse 0.6
}
}
texture {
pigment {
gradient y
color_map {
[0.0 0.3 color Salmon color BlueViolet filter 0.3]
[0.3 1.0 color BlueViolet filter 0.3 color Black filter 0.2]
}
scale <4000, 3000, 1>
translate <0,-1500, 0>
}
finish {
ambient 1.0
diffuse 0.0
}
}
scale <1, 1, 1>
translate <0, 0, 2000>
}
object {
panther
rotate -20*y
scale 1.2
translate <-70, 89.5,-10>
}
object {
lizard
scale <1, 0.9, 1>
rotate -10*z
translate <-33, 16,-20>
}
#declare snake = union {
object {top}
object {
head
scale <1.9, 1.6, 1.6>
rotate <0,-90,-90>
translate <23, 0,-13>
}
rotate <-90,-180,-90>
}
object {snake translate <-4, 87,-68>}
Et voici ce que nous obtenons :

Le fichier "congo4.png" donne ceci :

Puis le seul fichier inclus assez léger :
Quand aux acteurs significatifs, dans l'ordre d'apparition, nous avons base_a, motif1, column_a, top_column, round_cap, cornice, dentile_a, top_floor, cap_a, cap_b, capital, motif2, column_b, bottom_column, brick_wall, top_wall, molding_2, motif3, low_wall et wall.