IMAGE DE SYNTHESE

OBJECTIF

La bibliothèque de l'insa, voulait avoir un plan de la salle pour la signalisation des ouvrages.
Je me suis proposé de modéliser la salle en images de synthèse et de faire un poster. Ou la signalisation peut etre ajoutée à l'aide de vignettes.

DESCRIPTION

Pour la conception j'ai utilisé "Persistence Of Vision". Ce logiciel à été créé par des passionnés, des étudiants et des chercheurs du monde entier, communiquant via INTERNET, et distribué gratuitement.

Il permet grâce à des algorithmes mathématiques (équations d'une sphère, d'un plan...) et physiques (réflexion, réfraction, diffusion de la lumière), à partir d'un fichier décrivant une scène 3D, de calculer une image .

Dans le fichier d'origine on trouve la définition d'une caméra (position, angle, direction), l'emplacement des lampes, leurs couleurs, la description de différents objets (ex : sphère <0,0,0> ,1 décrit une sphère dont le centre coïncide avec l'origine du repère et de rayon 1), les textures appliquées à chaque objet (ex : marbre, verre, chrome).

Le raytraceur POV (Persistence Of Vision) lors du calcul "lance" un rayon de chaque point de l'écran jusqu'à rencontrer un objet. Suivant les propriétés de celui-ci il "renvoit" un ou plusieurs rayons, jusqu'à trouver une source lumineuse. Le chemin inverse permet de déterminer la couleur du point.

EXEMPLE

#include "textures.inc"


camera {  
  location  <0.5, 0, 1.2>
  sky       <0.0,     1.0,  0.0>
  up        <0.0,     0.0,  1.0>
  right     <1.0 ,  0.0,  0.0>
  look_at   <0.5, 0.5, 0>
}

// *******  lumières *******

light_source { 
  <0.5, 0.5, 0.5>
  color rgb <1.000, 1.000, 1.000>
}

light_source {  
  <2, -3, 5>
  color rgb <0.800, 0.500, 1.000>
}

light_source {  
  <1, -1, 4>
  color rgb <0.500, 0.500, 0.800>
}

light_source { 
  <0.2, 0.8, 0.3>
  color rgb <0.800, 0.800, 0.800>
}

//*******  objets  ********


box {
  <0, 0, 0>, <1, 1, 0.02>
  texture {
     pigment {
    image_map {
      tga "f:\projet\projtga\scan49hi.tga"

    }
    }
  }
}

object { 
  sphere {<0.5,0.5,0.5>,0.15}
  texture {
    Glass2
  }
 }