POV pour les nuls...
|
| Voici une petite scène POV, très simple, commentée de manière à vous initier. |
|
// Tutorial POV - 09-03-2001
// Ligthning Generator
// D'abord on défini une caméra...
camera {
location <-20,-40,30> // Position de la caméra |
| Vous pouvez télécharger le source ICI. |
| Savez vous ce qu'est la CSG (Constructive Solid Geometry) ? POV vous permet de créer des formes complexes à l'aide d'objets primitifs (sphéres, cubes, cylindres ...). A cet effet vous disposez de 4 opérations sur les objets : Union, Difference, Intersection, Merge. Un petit exemple vaut mieux qu'un long discours : |
//TUT CSG
//19-03-2001
//Lightning Generator
//Déclaration d'une variable ; vous pourrez changer la valeur pour tester
#declare typ_CSG=0 ;
// typ_CSG
// 0 : Union
// 1 : Différence
// 2 : Intersection
// 3 : Merge
// autre : Pas de CSG
//On charge un fichier inc contenant les couleurs principales (ouvrez-le pour voir)
#include "colors.inc"
//On charge un fichier inc contenant des textures prédéfinies pour les verres
#include "glass.inc"
//Nota : les fichiers ci-dessus doivent être dans le chemin du type ...\POV-Ray for Windows v3.1\include\
//Notre caméra
camera {
location <5, 5, -5>
look_at 0
angle 30
}
//Une lumière
light_source { <5, 5, -5> White }
//Un plan (damier vert et blanc)
plane { y, -1.5
pigment { checker White Gray90 }
}
//Déclaration des objets de la scène (ils ne sont pas pour autant affichés)
#declare Boite=object{box { -1, 1 texture { T_Old_Glass }}}
#declare Cylindre=object{cylinder { -2.*z, 2*z, 0.5 pigment { Magenta } }}
//Test de la valeur de typ_CSG, variable déclarée au début du script
#if (typ_CSG=0)
//On fait une union des deux objets.
union { object{Boite}
object{Cylindre}
}
#else
#if (typ_CSG=1)
//On fait la difference entre Boite et Cylindre.
difference{ object{Boite}
object{Cylindre}
}
#else
#if (typ_CSG=2)
//On ne prend que les points en commun.
intersection{ object{Boite}
object{Cylindre}
}
#else
#if (typ_CSG=3)
//On fait une union un peu particulière...
merge{ object{Boite}
object{Cylindre}
}
#else
//On affiche seulement les deux objets
object{Boite}
object{Cylindre}
#end
#end
#end
#end
//Ne pas oublier les #end !!!
//
// Dans ce script, vous avez vu
// comment utiliser des variables avec #if,#else,#end ;
// comment inclure des fichiers avec #include
// comment se comporte la CSG.
//
// Conclusion : union, unie l'objet 1 avec l'objet 2
// difference, calcule la différence de l'objet 1 avec l'objet 2
// intersection, on ne garde que les points en commun
// merge, unie aussi les objets, mais il y a une différence notable à l'intérieur
//
|
Selon les valeurs de la variable typ_CSG, vous obtiendrez, de gauche à droite, Union, Difference, Intersection, Merge :![]() ![]() ![]()
Vous pouvez télécharger le source ICI. |
et |