2.2.1 Notre première image

Vous savez que vous avez fait trop de raytracing quand ...
... Vous avez fait tout le tour et vous vous trouvez en train d'écrire une scène qui contient seulement une brillante sphère trônant au dessus d'un échiquier plan vert et jaune ...
-- Ken Tyler

Nous créerons le fichier scène pour une image simple. Puisque les raytraceurs excellent avec les sphères, c'est ce que nous allons générer d'abord.

2.2.1.1 Comprendre le système de coordonnées de POV-Ray

Premièrement, nous devons dire à POV-Ray où est notre caméra et où elle regarde. Pour cela, nous utilisons les coordonnées 3D. Le système de coordonnées de POV-Ray a l'axe y pointant vers le haut, l'axe x pointant vers la droite et l'axe z pointant vers l'écran comme ceci :

Le système de coordonnées main gauche
Le système de coordonnées main gauche

Ce type de système de coordonnées est appelé un système de coordonnées main gauche. Si vous utilisez les doigts de votre main gauche, vous comprendrez pourquoi on le nomme ainsi. Pointez votre pouce dans la direction de l'axe x (vers la droite), l'index dans la direction de l'axe y (vers le haut) et le majeur dans la direction de l'axe z (vers l'avant). Nous ne pouvons faire cela qu'avec la main gauche. Si vous aviez utilisé votre main droite, vous n'auriez pas pu pointer le majeur dans la bonne direction.

La main gauche peut également être utilisée pour définir le sens des rotations. Pour cela, nous devons accomplir le fameux exercice nommé 'Computer Graphics Aerobics'. Nous levons la main gauche, en pointant le pouce dans l'axe de rotation. Nos doigts s'enrouleront dans le sens positif de la direction. Inversement, si nous pointons notre pouce dans le sens inverse de l'axe de rotation, nos doigts s'enrouleront dans le sens négatif de la rotation.

Computer Graphics Aerobics
"Computer Graphics Aerobics"

Dans la précédente illustration, la main gauche s'enroule autour de l'axe x. Le pouce pointe dans la direction positive des x et les doigts s'enroulent dans le sens positif de la rotation.

Si nous voulons utiliser le système main droite comme certains logiciels de CAD et modeleurs, le vecteur right de la caméra doit être changé. Voir les détails dans "Main". Dans un système main droite, vous utilisez votre main droite pour "l'Aerobics".

Il y a des controverses sur la méthode de POV-Ray pour faire un système main droite. Pour couper court, nous adopterons le système main gauche.

2.2.1.2 Ajout de fichier inclus standard

Vous savez que vous avez fait trop de raytracing quand ...
... vous venez de voir Monsters.Inc au cinéma, et vous vous demandez quand ils sortiront Monsters.Pov.
-- Fabien Mosen

En utilisant votre éditeur de texte préféré, nous créons un fichier appelé demo.pov. Certaines versions de POV-Ray viennent avec leur propre éditeur de texte intégré qui peut être plus facile à utiliser. Nous y tapons le texte suivant. Les entrées sont sensibles à la casse, aussi nous devons être sûrs de mettre correctement les minuscules et les majuscules.

#include "colors.inc"	// Le fichier inclus contient
#include "stones.inc"	// des éléments de scène prédéfinis

La première ligne lit des définitions pour d'utiles couleurs variées. La seconde lit une collection de textures de pierre. POV-Ray vient avec de nombreux fichiers en standard. D'autres dignes d'intérêt sont :

#include "textures.inc"	// éléments de scène prédéfinis
#include "shapes.inc"
#include "glass.inc"
#include "metals.inc"
#include "woods.inc"

Elles lisent des textures, formes, textures de verres, métaux et bois prédéfinies. C'est une bonne idée d'y jeter un oeil pour voir quelques unes des nombreuses formes possibles et textures disponibles.

Nous ne devons inclure que les fichiers dont nous avons réellement besoin dans notre scène. Quelques fichiers à inclure de POV-Ray sont assez volumineux, et il est préférable d'économiser du temps d'analyse et de la mémoire si nous n'en avons pas besoin. Dans les exemples suivants, nous n'utiliserons que les fichiers à inclure colors.inc, et stones.inc.

Vous pouvez avoir autant de fichiers inclus que nécessaire. Ces fichiers peuvent également contenir des fichiers à inclure, mais nous sommes limités à des déclarations emboîtées jusqu'à 10 niveaux.

Les noms de fichiers spécifiés dans les commandes include seront d'abord cherchés dans le répertoire courant. Si cela échoue, POV-Ray cherche toute "bibliothèque de recherche" que vous avez spécifiée. Les bibliothèques de recherche sont des options paramétrées par le commutateur de ligne de commande +L ou l'option Library_Path. Voir le chapitre "Paramétrer les options de POV-Ray" pour plus d'informations sur les bibliothèques de recherche.

Parce qu'il est utile de garder les fichiers inclus dans un dossier séparé, l'installation standard les place dans \povray3\include (remplacez c:\povray3 avec le dossier où vous avez installé POV-Ray). Si vous avez un message d'erreur disant que le programme ne peut pas ouvrir un de ces fichiers, vérifiez les paramètres des bibliothèques de recherche.

2.2.1.3 Ajout d'une caméra

L'élément camera décrit où et comment la scène est vue par la caméra. Il donne les coordonnées x, y et z pour indiquer la position de la caméra et vers quel endroit de la scène elle pointe. Nous donnons les coordonnées en utilisant un vecteur à trois variables. Un vecteur est construit en posant trois valeurs numériques entre les signes inférieurs et supérieurs, et séparées par des virgules. Nous ajoutons la définition de caméra suivante à la scène.

camera {
	location <0, 2,-3>
	look_at <0, 1, 2>
}

Brièvement, location <0, 2,-3> place la caméra deux unités au-dessus, et trois unités en arrière du centre de l'univers de l'image, qui est à <0, 0, 0>. Par défaut, +z est dans l'écran, et -z sort en dehors de l'écran.

Ensuite look_at <0, 1, 2> incline la caméra pour pointer aux coordonnées <0, 1, 2>. Un point se situant 1 unité au-dessus et 2 unités au-delà de l'origine. Cela fait 5 unités devant et une unité plus bas que la caméra. Le look_at doit être le centre d'attention de votre image.

2.2.1.4 Décrire un objet

Maintenant que la caméra est placée pour enregistrer la scène, plaçons-y une sphère jaune. Vous ajoutez cela à votre fichier scène :

sphere {
	<0, 1, 2>, 2
	texture {
		pigment {color Yellow}
	}
}

Le premier vecteur indique le centre de la sphère. Dans cet exemple, la coordonnée x est à zéro, donc elle est centrée sur l'axe gauche_droite. Elle est aussi à y = 1 ou une unité au-dessus de l'origine. La coordonnée z est 2 qui est cinq unités au-delà de la caméra (elle est à z = -3). Après le vecteur du centre, il y a une virgule suivie par le rayon, qui, dans ce cas, est de deux unités. Puisque le rayon est la moitié de la largeur de la sphère, elle a une largeur de quatre unités.

2.2.1.5 Ajout d'une texture à un objet

Après avoir défini la position et la taille de la sphère, nous devons décrire l'apparence de sa surface. Le bloc texture spécifie ces paramètres. Les blocs texture décrivent les propriétés de couleur, d'aspect et de finition d'un objet. Dans cet exemple, nous ne spécifierons que la couleur. C'est le minimum que nous devons faire. Toutes les autres options de texture, hors la couleur, utiliseront des valeurs par défaut.

La couleur que nous donnons est celle que nous obtiendrions si l'objet était totalement illuminé. Si nous avions peint une sphère, nous aurions utilisé des nuances sombres de la couleur pour teinter le côté ombré et des nuances claires pour le côté illuminé. Le logiciel prend cela en charge. Nous désignons seulement la couleur de base de l'objet et POV-Ray la clarifie ou l'assombrit selon l'illumination de la scène. Parce que nous avons défini la couleur de base que l'objet a, plutôt que la façon dont il apparaît, ce paramètre est appelé pigment.

Plusieurs types de spectres de couleurs sont disponibles pour l'utilisation dans un paramètre pigment. Le mot clé color spécifie que la totalité de l'objet est dans une couleur unie, plutôt que dans un spectre de couleurs. Vous pouvez utiliser l'un des identificateurs couleur préalablement définis dans le fichier inclus standard colors.inc.

Si aucune couleur standard n'est disponible pour vos besoins, vous pouvez définir votre couleur en utilisant le mot clé color suivi par les mots clés red, green et blue spécifiant les quantités de rouge, de vert et de bleu à mélanger. Par exemple, une jolie nuance de rose peut être définie ainsi :

color red 1.0 green 0.8 blue 0.8

Note : la formulation internationale - plutôt qu'américaine - "colour" est aussi acceptable et peut être utilisée chaque fois que "color" peut l'être.

Les valeurs après chaque mot clé doivent être dans la fourchette de 0.0 à 1.0. Tout composant non spécifié prend la valeur 0 par défaut. Une syntaxe plus courte peut aussi être utilisée. Ce qui suit donne le même rose :

color rgb <1.0, 0.8, 0.8>

Dans la plupart des cas, le mot clé color est superflu, aussi la formulation la plus courte pour la couleur rose est :

rgb <1.0, 0.8, 0.8>

Les couleurs sont expliquées plus en détail dans la section "Spécifier les couleurs".

2.2.1.6 Définir une source de lumière

Un détail supplémentaire est nécessaire pour notre scène. Nous avons besoin d'une source de lumière. Tant que nous n'en avons pas créée, il n'y a aucune lumière dans ce monde virtuel. Aussi nous ajoutons la ligne suivante :

light_source {<2, 4,-3> color White}

pour avoir notre première scène complète pour POV-Ray, ce résumant à :

#include "colors.inc"
background {color Cyan}
camera {
	location <0, 2,-3>
	look_at <0, 1, 2>
}
sphere {
	<0, 1, 2>, 2
	texture {
		pigment {color Yellow}
	}
}
light_source {<2, 4,-3> color White}

Le vecteur dans la déclaration de light_source spécifie sa position à deux unités à droite, quatre unités au-dessus et trois unités en arrière de l'origine. La source est un point invisible qui diffuse de la lumière. Elle n'a pas de forme physique, aussi aucune texture n'est nécessaire.

C'est tout ! Nous fermons le fichier et rendons une petite image avec la commande appropriée à votre plate-forme. Si vous spécifiez une visualisation, cela apparaîtra sur votre écran. Si vous spécifiez une sortie fichier (ce qui est le défaut), POV-Ray créera aussi un fichier.

Note : si vous n'avez pas de sortie écran en couleur réelle, ou haute, l'image paraîtra pauvre, mais tous les détails sont dans le fichier image, en accord avec le type d'affichage.

Cette scène n'est pas l'état de l'art, mais nous devions commencer avec les bases avant de passer à des caractéristiques et des scènes plus fascinantes.

Complément sur la couleur

2.2 Débuter 2.2 Débuter 2.2.2 Les formes de base 2.2.2 Les formes de base