Radiosité (1)
Radiosity_Default
Radiosity_Normal
Radiosity_Final
Radiosity_IndoorLQ
Radiosity_IndoorHQ
Script :
// -----------------------------------------------------------------------------
// louis bellotto - louisbel @ free.fr
// radiosity test
// -----------------------------------------------------------------------------
#version unofficial MegaPov 1.1;
// -----------------------------------------------------------------------------
// --- INCLUDES ----------------------------------------------------------------
// -----------------------------------------------------------------------------
#include "colors.inc"
#include "rad_def.inc"
#include "myMacros.inc"
#declare displayAxis = true;
#declare pieceLargeur = 5000; // les dimensions sont en millimetres.
#declare pieceLongueur = 10000;
#declare pieceHauteur = 2800;
#declare murEpaisseur = 200;
// -----------------------------------------------------------------------------
// --- SCENE -------------------------------------------------------------------
// -----------------------------------------------------------------------------
global_settings {
assumed_gamma 1.8
max_trace_level 16
radiosity {
// Rad_Settings(Radiosity_Default, off, off)
// Rad_Settings(Radiosity_Normal, off, off)
// Rad_Settings(Radiosity_Final, off, off)
// Rad_Settings(Radiosity_IndoorLQ, off, off)
Rad_Settings(Radiosity_IndoorHQ, off, off)
// les temps de rendus sont de plus en plus longs...
}
}
#declare camera1 = camera {
location p2r(45, 30, 25000,false)
look_at < 0, 0, 0 >
}
#declare camera2 = camera {
location < pieceLongueur-3*murEpaisseur, 1700, pieceLargeur-3*murEpaisseur >
look_at < 2*murEpaisseur, 1700, 2*murEpaisseur >
}
#declare camera3 = camera {
location < (2*murEpaisseur+pieceLongueur)*0.50, pieceHauteur-200,(2*murEpaisseur+pieceLargeur)*0.50 >
look_at < (2*murEpaisseur+pieceLongueur)*0.50, 1200,(2*murEpaisseur+pieceLargeur)*0.50 >
}
camera { camera2 }
light_source {
p2r(45, 45, 500000,false)
color White
}
background {
color White
}
#if (displayAxis)
drawAxis (25000, 100)
#end
// -----------------------------------------------------------------------------
// --- PIECE -------------------------------------------------------------------
// -----------------------------------------------------------------------------
#declare piece = union {
// --- plafond
box {
< 0, 0, 0 >
< pieceLongueur+2*murEpaisseur, -murEpaisseur, pieceLargeur+2*murEpaisseur >
translate pieceHauteur*y
}
// --- murs
box {
< 0, 0, 0 >
< pieceLongueur+2*murEpaisseur, pieceHauteur, murEpaisseur >
}
box {
< 0, 0, 0 >
< pieceLongueur+2*murEpaisseur, pieceHauteur, murEpaisseur >
translate (pieceLargeur+murEpaisseur)*z
}
box {
< 0, 0, 0 >
< +murEpaisseur, pieceHauteur, pieceLargeur+2*murEpaisseur >
}
box {
< 0, 0, 0 >
< +murEpaisseur, pieceHauteur, pieceLargeur+2*murEpaisseur >
translate (pieceLongueur+murEpaisseur)*x
}
}
#declare ambientValue = 0.30;
#declare diffuseValue = 1.10-ambientValue;
// --- sol ---------------------------------------------------------------------
box {
< 0, 0, 0 >
< pieceLongueur+2*murEpaisseur, -murEpaisseur, pieceLargeur+2*murEpaisseur >
pigment {
checker Black, White
scale 500
translate < murEpaisseur, 0, murEpaisseur >
}
finish {
ambient ambientValue
diffuse diffuseValue
}
}
object {
piece
pigment { color White }
finish { ambient ambientValue diffuse diffuseValue }
}
// -----------------------------------------------------------------------------
// --- NEONS -------------------------------------------------------------------
// -----------------------------------------------------------------------------
#declare tube = cylinder { < 0, 25, 0 > < 0, 25, 600 > 25 }
#declare tubes = union {
object { tube translate -200*x }
object { tube }
object { tube translate +200*x }
}
#declare tubeAltitude = pieceHauteur-murEpaisseur-50; // -2*murEpaisseur;
union {
object {
tubes
translate <
murEpaisseur+pieceLongueur*0.25,
tubeAltitude,
murEpaisseur+pieceLargeur*0.25-300
>
}
object {
tubes
translate <
murEpaisseur+pieceLongueur*0.75,
tubeAltitude,
murEpaisseur+pieceLargeur*0.25-300
>
}
object {
tubes
translate <
murEpaisseur+pieceLongueur*0.25,
tubeAltitude,
murEpaisseur+pieceLargeur*0.75-300
>
}
object {
tubes
translate <
murEpaisseur+pieceLongueur*0.75,
tubeAltitude,
murEpaisseur+pieceLargeur*0.75-300
>
}
pigment { color White+Gold*0.25 }
finish { ambient 0 diffuse 25 }
}
// -----------------------------------------------------------------------------
// --- TABLE -------------------------------------------------------------------
// -----------------------------------------------------------------------------
#declare table = union {
cylinder { < 0, 0, 0 > < 0, 20, 0 > 300 }
torus { 300, 10 translate 10*y }
cylinder { < 0, 20, 0 > < 0, 40, 0 > 260 }
torus { 260, 10 translate 30*y }
cylinder { < 0, 40, 0 > < 0, 60, 0 > 220 }
torus { 220, 10 translate 50*y }
cylinder { < 0, 1100, 0 > < 0, 1200, 0 > 750 }
torus { 750, 50 translate 1150*y }
}
union {
object {
table
pigment { color White*0.25 }
finish { ambient ambientValue diffuse diffuseValue phong 0.90 }
}
cylinder {
< 0, 0, 0 > < 0, 1190, 0 > 80
pigment { color White*0.05 }
finish { ambient ambientValue diffuse diffuseValue reflection 1 metallic }
}
translate <
(2*murEpaisseur+pieceLongueur)*0.50,
0,
(2*murEpaisseur+pieceLargeur)*0.50
>
}
// -----------------------------------------------------------------------------
// --- OBJETS SUR LA TABLE -----------------------------------------------------
// -----------------------------------------------------------------------------
cone {
< 0, 0, 0 >, 350, < 0, 500, 0 >, 0
pigment { color Yellow }
finish { ambient ambientValue+0.1 diffuse diffuseValue phong 0.90 }
translate <
(2*murEpaisseur+pieceLongueur)*0.50-300,
1200,
(2*murEpaisseur+pieceLargeur)*0.50-300
>
}
cylinder {
< 0, 0, 0 >, < 0, 450, 0 > 100
pigment { color Red }
finish { ambient ambientValue+0.1 diffuse diffuseValue phong 0.90 }
translate <
(2*murEpaisseur+pieceLongueur)*0.50+400,
1200,
(2*murEpaisseur+pieceLargeur)*0.50+150
>
}
box {
< -200, 0, -200 > < +200, 400, +200 >
rotate -30*y
pigment { color Blue }
finish { ambient ambientValue+0.1 diffuse diffuseValue phong 0.90 }
translate <
(2*murEpaisseur+pieceLongueur)*0.50-150,
1200,
(2*murEpaisseur+pieceLargeur)*0.50+350
>
}
sphere {
< 0, 200, 0 > 200
pigment { color Green }
finish { ambient ambientValue+0.1 diffuse diffuseValue phong 0.90 phong_size 50 }
translate <
(2*murEpaisseur+pieceLongueur)*0.50+300,
1200,
(2*murEpaisseur+pieceLargeur)*0.50-200
>
}
// -----------------------------------------------------------------------------
// --- MIRROIR -----------------------------------------------------------------
// -----------------------------------------------------------------------------
#declare mirroirEpaisseur = 20;
#declare mirroirHauteur = 1600;
#declare mirroirLargeur = 2500;
#declare mirroirAltitude = (pieceHauteur-mirroirHauteur)*0.50;
box {
< 0, 0, 0 > < mirroirEpaisseur, mirroirHauteur, mirroirLargeur >
pigment { color Black }
finish { ambient 0 diffuse 1 reflection 1 }
translate <
murEpaisseur+mirroirEpaisseur+1,
mirroirAltitude,
(pieceLargeur*0.50)+murEpaisseur-(mirroirLargeur*0.50)
>
}
// -----------------------------------------------------------------------------
// --- TABOURETS ---------------------------------------------------------------
// -----------------------------------------------------------------------------
#include "tabouret.inc"
#set tabouret = object { tabouret scale 1.10 }
object { tabouret rotate 30*y translate < 3500, 0, 3250 > }
object { tabouret rotate 110*y translate < 6000, 0, 2000 > }
object { tabouret rotate 200*y translate < 7000, 0, 3000 > }
object { tabouret rotate 260*y translate < 3500, 0, 4600 > }