GALERIE     EN COURS     SCENES     MACROS     GUIDE     PORTFOLIO     A PROPOS


Radiosité (1)


Radiosity_Default
Radiosity_Default


Radiosity_Normal
Radiosity_Normal


Radiosity_Normal
Radiosity_Final


Radiosity_Normal
Radiosity_IndoorLQ


Radiosity_Normal
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 > }