POV pour les nuls...

  Prologue | Exemple 1 (scène basique) | Exemple 2 (CSG) | Exemple 3 (HF) | Exemple 4 (Lumière) | Retour Site |

Voici une petite scène POV, très simple, commentée de manière à vous initier.
Tut1.jpg (7 ko)
// 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 
  sky       <0,0,1>                     // On utilise un système dont l'axe Z désigne la hauteur
  up        <0,0,1>                     //
  right     <320/200,0,0>               // selon la résolution finale, mettre 800/600 par exemple pour une image en 800x600
  angle     45                          // angle de vision (45°)
  look_at   <0,0,10>                    // On regarde le point <0,0,10>
}

// Nous avons notre 'oeil', il faut éclairer la scène
light_source {                          // Source de lumière
  <-10, -34, 40>                        // position de la source
  color rgb <1.000, 1.000, 1.000>       // Couleur de la source 
  }

// Faisons simple, un plan qui servira de sol
plane { z,0                             // Plan à l'infini sur l'axe z=0
  material { texture { pigment {        // on lui donne une texture, ici un damier
                checker                 // damier
                color rgb <1,1,1>       // 1ere couleur du damier, ici Blanc (Rouge=1,Vert=1,Bleu=1)
                color rgb <0,0,0>       // 2eme couleur du damier, ici Noir  (Rouge=0,Vert=0,Bleu=0)
            scale  20                   // les case du damier sont par défaut d'unité 1, on les agrandies de 20 unités
        }
        }
        }
}

// Nous avons notre sol, un objet simple maintenant,
sphere { <0,0,0>,10  // Sphere de rayon de 10 unités
  // On lui donne une texture
  material {
    texture {
        pigment { color rgb <1, 1, 1> } // couleur de la sphère (Blanche)
        finish {                        // Ici on définit comment va réagir la texture à la lumière
                ambient 0.2             // Elle réfléchit 20% (0.2) de la lumière ambiente (ne provenant pas de la source de lumière)
                diffuse 0.1             // Elle diffuse elle-meme 10% (0.1) de lumière
                metallic                // Définition de l'aspet 'metallique'
                specular 0.80           // On définit ici comment la texture réagit au spot lumineux
                roughness 0.05          //
                reflection 0.6          // La lumière est réfléchit à 60%, à 100% on a effet de mirroir
                }
        }
        }
  translate  10*z                       // on la place à 10 unités de hauteur (z) de façon à ce quelle semble être sur le sol
}

// Voilà !
// très simple, non ?!
//
Vous pouvez télécharger le source ICI.

  Prologue | Exemple 1 (scène basique) | Exemple 2 (CSG) | Exemple 3 (HF) | Exemple 4 (Lumière) | Retour Site |

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 :
uniondifferenceintersectionmerge

Vous pouvez télécharger le source ICI.


  Prologue | Exemple 1 (scène basique) | Exemple 2 (CSG) | Exemple 3 (HF) | Exemple 4 (Lumière) | Retour Site |

© Tous droits réservés 2002 Lightning Generator
et Hit-Parade

Valid CSS!