Retour à la page principale
Le résultat de la compilation est, comme mentionné sur la page principale, deux exécutables. Les deux permettent le rendu par raytracing d'une scène à choix. Le premier Raytracer++.exe va demander à l'utilisateur d'entrer un fichier XML décrivant la scène, puis le nom du fichier dans lequel l'image sera sauvée. Le type de fichier est automatiquement déduit de l'extension. Dans le cas où le fichier image est du type jpeg, la qualité est aussi demandée.
Le deuxième exécutables Raytrace++-batch.exe permet de déterminer le fichier XML, le nom du fichier image (ainsi que l'éventuelle qualité jpeg) lors de l'appel au programme, ce qui permet de lancer le programme dans un script et de ne pas s'occuper de l'exécution.
Un scène est décrite par un fichier XML, dont plusieurs exemple se trouve dans le répertoire Scene. La structure de ce fichier est :
<?xml version="1.0"?> <Scene> <!-- Champs optionnel : couleur de fond de l'environnement --> <Couleur> 213 93 82 </Couleur> <Camera> <!-- Taille de l'image (nombres entiers positifs) --> <Ecran> largeur hauteur </Ecran> <!-- Position de la caméra (nombres réels) --> <Coord> x y z </Coord> <!-- Direction dans laquelle est pointée la caméra (nombres réels) --> <Vecteur> x y z </Vecteur> <!-- Orientation de la caméra (nombres réels) --> <Vecteur> x y z </Vecteur> <!-- Distance focale de la caméra (nombre réel positif) --> <Distance> focale </Distance> <!-- Paramètre gérant l'antialiasing --> <Antialiasing> enum </Antialiasing> </Camera> <!-- Liste des sources de lumière --> <Sources> <!-- Si une source ambiante est présente, il faut que ce soit la première à apparaître ici. --> <Ambiante> ... </Ambiante> <!-- Ensuite viennent les autres sources, dans un ordre quelconque --> </Sources> <!-- Liste des objets de la scène --> <Objets> <!-- On peut trouver un nombre quelconque d'objets dans un ordre quelconque --> <Objet> <!-- Ici vient une forme, ici l'exemple utilise une sphère --> <Sphere> ... </Sphere> <!-- Ensuite on trouve le matériau --> <Materiau> ... </Materiau> </Objet> </Objets> </Scene>
Si l'utilisateur est familer avec les DTD ou le XML schema, il peut se référer au fichier Scenes/scene.dtd ou Scenes/scene.xsd pour une compréhension plus poussée de la structure d'un fichier de configuration.
La caméra est paramétrée par une position, une direction, une distance focale et une orientation. La position et la direction donne l'origine des rayons lancés, tandis que l'orientation détermine le sens de la hauteur de l'image. La distance focale détermine le zoom, qui peut être délicat à régler lors de la conception d'un fichier de configuration (et qui doit être changé lorsque l'on change la taille de l'image créée pour un rendu "à l'échelle").
La balise Camera peut avoir un attribut optionnel, qui permet de régler la profondeur maximale de récursion (entier positif). La valeur par défaut est de 10 et pour un incrément de 1, le temps de calcul est potentiellement multiplié par 2 (donc par 4 pour un incrément de 2, 8 pour 3 de plus, ...).
<Camera profondeur="12"> .. </Camera>
Le paramètre d'antialiasing permet de choisir la méthode d'antialiasing appliquée après le rendu. Les différentes valeurs sont :
Valeur | Effet |
---|---|
0 | Aucun antialiasing effectué |
1 | Antialiasing basique, assez rapide |
2 | Antialiasing moyen |
3 | Antialiasing poussé, demande un long temps de calcul |
La balise <Antialiasing> peut avoir un attribut optionnel, qui permet de régler le seuil au-delà duquel un pixel est antialiasé, pour plus de détails se référer à la page concernant l'antialiasing, attribut qui est un nombre réel compris entre 0 et 1.
<Antialiasing eps=".3"> 2 </Antialiasing>