Introduction au langage de description scènique POV-Ray raytracer         page 10
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
                                       

#include "MyObject.inc" - Ready Made Objects for Multiple Usage!

   Objets, une fois déjà construits, on peut définer comme un objet prêt à l'usage dans un fichier include personnel. Avec cette méthode on peut utiliser objets dans chaque autre scène plus tarde sans écrire ou copier toute la définition !
    Diviser une scène grande en composantes plus petites par fichiers include est une méthode élémentaire de travailer modulairement - sans cela il est presque impossible de venir à bout d'un projet vraiment grand et complexe.
Objet d'exemple :
Nous définissons premièrement un objet 'Column_1'
comme une macro:
//----------------- macro Column_1(...)
#macro Column_1( H_C,  // column height
                 R_B,  // base radius
                 R_min,// border radius
                 T_S,  // top scale
               ) //---------------------
union{
 cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
 torus{ R_B,R_min translate<0,R_min,0>}
 torus{ R_B*T_S,R_min*T_S
        translate<0,H_C-R_min*T_S,0>}
 }// end Column
#end //------------------- end of macro 

Créer un fichier include :
Pour un fichier d'un objet individuel est
recommandé de choisir le nome du fichier include
conforme au nome du objet !

  Pour le choix de nomes voir mes notes à "#declare"!
Ici nous faissons un fichier 'Column_1.inc' :
// POV-Ray include file "Column_1.inc"
//-------------------------------------
#ifndef( Column_1_Inc_Temp)
#declare Column_1_Inc_Temp = version;
#version 3.6;
//-------------------------------------
#macro Column_1( H_C,  // column height
                 R_B,  // base radius
                 R_min,// border radius
                 T_S,  // top scale
               ) //--------------------
//-------------------------------------
union{
 cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
 torus{ R_B,R_min translate<0,R_min,0>}
 torus{ R_B*T_S,R_min*T_S
        translate<0,H_C-R_min*T_S,0>}
 }// end Column
#end// ------------------- end of macro
//-------------------------------------
#version Column_1_Inc_Temp;
#end 
// ---------------- end of include file 
Ce fichier on doit être sauvegardé dans la même registre come le fichier de la scène ou dans un registre de fichiers include disponible in the dans le chemin de fichiers include (Library_Path) de POV-Ray.


Column_1 macro
La macro Column_1( ... ) appelée par :
object{Column_1(3.5, // height
                0.5, // base r
                0.06,// border r
                0.75,// top scale
              ) //---------------
  texture{
    pigment{color rgb<1,0.9,0.8>}
    normal{ bumps 0.5 scale 0.01}
    finish{ phong 0.1 }
  } // end texture
  translate<0,0,0>
} //-------------------------- 
Fichier de la scène test macro : Column_1_macro_test.pov

Note: Les parties en rouge du texte de fichier include sont ajutées pour éviter que l'objet est déclaré plusieurs reprises si le texte est déja inséré.
Et ce texte change la version de POV-Ray utilisée retour à la version dans laquelle le text fu écrit, aussi si nous avons in jour une version plus nouvelle.

Note: Si nous insérons un fichier include avec la commande #include "MyObject.inc", le texte de ce fichier sera inséré par POV-Ray mot pour mot justement au lieu de la commande pendant le parsing du fichier. Cela doit être toujours avant le lieu où nous utilisons le objet de ce fichier include.
Si le texte de un fichier include defini un objet complet, que nous voulons utiliser plusieurs fois dans une scène, nous devons insérer le fichier include seulement une fois!

Appeler un objet d'un fichier include :
Ici nous insérons 'Column_1.inc':   ( seulement une fois ! )
//---------------------------------------
#declare Column_Texture =
 texture{ pigment{ color rgb<1,0.95,0.8>}
          normal { bumps 0.5 scale 0.01}
          finish { phong 0.1 }
        } // end of texture
//-------------------------------------// 
#include "Column_1.inc"
//-------------------------------------//
union{ //--------------------------------
 #local Nr = 0;     // start
 #local EndNr = 10; // end
 #while (Nr< EndNr)
 union{ // inner union
   object{ Column_1(3.5, 0.5, 0.06, 0.75)
           translate<-2,0,0>}
   object{ Column_1(3.5, 0.5, 0.06, 0.75)
           translate< 2,0,0>}
   translate<0,0,Nr*2.5>
 } // end inner union
 #local Nr = Nr + 1;  // next Nr
 #end // --------------- end of loop
texture{  Column_Texture }
rotate<0,0,0>
translate<0,0,0>
} // end of union -----------------------



Column_1_rows
Files de colonnes

Description de cette scène pour POV-Ray :
Fichier de la scène: Column_1_Row.pov
Fichier include: Column_1.inc


Avec ce mécanisme on peut aussi utiliser pour sauvegarder les textures et les couleurs spéciales et personnelles dans un fichier nommé "Mes_texures.inc"! Un dépôt de meubles ou / et une collection des avions ou des vaisseau spatial on peut sauvegarder aussi en cette manière !!!


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