Introduction au langage de description scènique POV-Ray raytracer         page 8
par Friedrich A. Lohmüller
English English English
Italiano Deutsch
Deutsch Deutsch

Page d'Accueil
- Tutoriels POV-Ray
 
  
Introduction POV-Ray
  Table des matières  -  INDEX
 
  1. Utiliser POV-Ray:
      "Insert Menu Add-on".
  2. Bases
      Comment écrire le texte
      xyz – Coordonnées,
      virgule flotante et vecteurs
  3. Structure d'une scène
      Exemple de base.
  4. La tête d'une scène
      Fichiers #include,
      camera, light_source.
  5. Objets géométriques de base
      sphere, box, cylinder,
      cone, torus, plane
      et autres formes
  6. Transformations
      échelle, rotation,
      translation et autres.
      CSG: union,
      difference, intersection.
  7. Couleurs et surfaces
      texture, pigment, normal, finish
>8. #declare, #local #macro.
      Variables, objets flexibles.
  9. #while - Boucles
      Exemples de base.,
 10. #include - fichiers include
      objets réutilisables.
 11. Efficacité,
      vitesse, flexibilité,
      travailer modulaire.
      Adapter de 3.1 à 3.5;3.6
      Adattare di 3.5;3.6 a 3.7
      POV-Ray + Windows Vista.
 
  - Insert Menu Add-on
    & Téléchargement
                                       

#declare, #local - Abréviations et variables.
La définition des valeurs variables (nombres et vecteurs), des textures et des objets, etc.
N'oubliez pas pour choisir des nomes et des abréviations:
> N'utilisez pas aucuns des caractères nationaaux spécifiques!
> N'utilisez pas aucuns des mots clé réservés!
> Les capitales et les minuscules sont discriminées!
> Il est indiqué de utiliser des mots commencants avec une capitale
   pour tout les choses définies par vous même.

   Tous les mots clé de POV-Ray commençant avec des minuscules!


#declare est utiliser pour les variables que sont valable global, tandis que dans les macros ou fichiers include on peut déclarer des valeurs avec #local des variables que sont seulement valable local. Ces variables locales on peut changer dans une macro ou fichier include (par ex. comme un compteur dans un boucle while), sans influencer une variable global avec le même nome en dehors. Variables locales ne sont pas visible (non existent pas) en dehors de la région ou ils sont déclarées !

Exemple pour la définition et l'usage des objets définis par » #declare ... = ...; «:

#declare R1 = 0.25 ; // ball radius
#declare RR = 1.00 ; // ring radius
#declare Position_1 =  <0,0.25,1> ;
#declare Ball_Texture =
 texture{ pigment{ color rgb<1,0.65,0>}
          finish { phong 1.0 }
        } // end of texture
#declare Ball1 =
 sphere{ <RR,0,0>,R1
         texture{Ball_Texture}}
//-------------------------------------
#declare BallHalfCircle =
union{
  object{Ball1 rotate <0,  0,0>}
  object{Ball1 rotate <0, 20,0>}
  object{Ball1 rotate <0, 40,0>}
  object{Ball1 rotate <0, 60,0>}
  object{Ball1 rotate <0, 80,0>}
  object{Ball1 rotate <0,100,0>}
  object{Ball1 rotate <0,120,0>}
  object{Ball1 rotate <0,140,0>}
  object{Ball1 rotate <0,160,0>}
  object{Ball1 rotate <0,180,0>}
 } // end of BallHalfCircle
// drawing command:
object{ BallHalfCircle
        translate Position_1}
// -------------------------------- end 
Example declare
Description de scène pour POV-Ray :
BallHalfCircle_1.pov



#macro ... #end
Cela permette une définition des objects plus flexible.
Pour choisir des nomes et abréviations voyez mes précisions à » #declare «.
Ici un example pour l'usage de » #macro «:
#macro BallHalfCircle (R1, RR, Texture)
#local Ball1 =
 sphere{ <RR,0,0>,R1 texture{Texture}}
union{
  object{Ball1 rotate <0,  0,0>}
  object{Ball1 rotate <0, 20,0>}
  object{Ball1 rotate <0, 40,0>}
  object{Ball1 rotate <0, 60,0>}
  object{Ball1 rotate <0, 80,0>}
  object{Ball1 rotate <0,100,0>}
  object{Ball1 rotate <0,120,0>}
  object{Ball1 rotate <0,140,0>}
  object{Ball1 rotate <0,160,0>}
  object{Ball1 rotate <0,180,0>}
 } // end of BallHalfCircle
#end // ------------------ end of macro
//-------------------------------------
#declare Texture1 =
  texture{ pigment{ color rgb<1,0.65,0>}
           finish { phong 1.0}
         }
#declare Texture2 =
  texture{ pigment{ color rgb<1,0.2,0>}
           finish { phong 1.0}
         }
// drawing commands:
object{
  BallHalfCircle(0.25, 1.00, Texture1)
  translate<0,0.25,1>}
object{
  BallHalfCircle(0.15, 0.50, Texture2)
  translate<0,0.5,1>}
// -------------------------------- end 
Example macro
Description de scène pour POV-Ray :
BallHalfCircle_2.pov





part 0 | part 1 | part 2 | part 3 | part 4 | part 5 | part 6 | part 7 | part 8 | part 9 | part 10 | part 11

top

© Friedrich A. Lohmüller, 2014
homepage:www.f-lohmueller.de