Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
      Objets POV-Ray - Comment faire des objets pour POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'Accueil
- POV-Ray Tutorial

  - Exemples POV-Ray
   Table des matières
  - Géométrie
  - Architecture
    - Maison
    - Toit
    - Tour
    - Châteaux
    - Fenêtre + Porte
    - Escaliers
    - Pyramide
    - Colonne
    - Arc, Arche
    - Clôtures
    - Meubles
    - Ménage
  - Technique
                                       
 
Tower_Squared

Donjon avec Créneaux

Cet exemple veut expliquer la construction d'une tour avec créneaux.
La tour est fait d'une forme brute par soustraire ("difference{...}) le lacunes des créneaux. Pour maintenir les choses plus flexible pour modifications dans le design, toutes les textures et dimensions sont declarés comme variables a la tête delle texte de la scène.
Pour gagner des résultats propre avec la "difference" la forme soustraite ne peut pas avoir des surfaces ambigües extérieures à l'objet base, on doit éviter les surfaces coïncidentes. Pour cette raison on se serve de la variable "D = 0.0001" - seulement un peu! Avec cela est très facile à dire "+D" = "seulement un peu plus" ou "-D" = "seulement un peu moins"! Pour ressortir clairement les parts de la "difference" on peut choisir un texture seconde avec couleur verte. Plus tard nous pouvons changer ce texture par changer les 2 barres des remarques "//".
Un ficher include pour utiliser cet objet comme un objet prêt à l'usage vous pouvez trouver sur mon site Objets POV-Ray.
La Constuction Pas à Pas:
Tout d'abord nous définissions les textures et les dimensions:
#declare Tower_Texture_1 = // sable - grès
 texture{ pigment{ color rgb<0.9,0.78,0.6>}
          normal { bumps 0.5 scale 0.015 }
          finish { diffuse 0.9 phong 0.1}
        } // end of texture
#declare Tower_Texture_2 =//grès - un peu plus sombre
 texture{ pigment{
     // color rgb<0.9, 0.78, 0.6>*0.95}
        color rgb<0.4,1,0.0>} // test_color
          normal { bumps 0.5 scale 0.015 }
          finish { diffuse 0.9 phong 0.1}
        } // end of texture
//-----------------------------------------
#declare D = 0.0001; // seulement un peu
#declare Tower_R = 2.00;// half width x, z
#declare Tower_H = 8.00;// tower heigth in y
// marque 1
//-----------------------------------------
Et puis nous avons besoin d'une tour en forme brute:
// la tour en forme brute
box{ <-Tower_R,       0,-Tower_R>,
     < Tower_R, Tower_H, Tower_R>
     texture{ Tower_Texture_1 }
   } // end of box
//-----------------------------------------
Tower_Squared_01
La tour en forme brute
Puis on doit definir les dimensions des lacunes des créneaux. Nous commencons à la tête de la tour.
#declare Merlon_H = 0.80;// hauteur y des créneaux
#declare Merlon_R = 0.20; //la moitié du largeur x, z
//-----------------------------------------
#declare Merlon_Cut_Off =
box { <-Merlon_R,-Merlon_H,-Tower_R-D>,
      < Merlon_R,        D, Tower_R+D>
      texture { Tower_Texture_2 }
    } // end of box
//-----------------------------------------
Pour soustraire cet objet de la forme brute de la tour on doit insérer cet objet devant insert this befor "// la tour en forme brute " près de " marque 1".
Tower_Squared_02
Merlon cut off shape
Pour contrôler la position et la dimension nous ajoutons derrière notre forme brut de la tour:
object{ Merlon_Cut_Off
        translate<0,Tower_H,0> }
... tout en règle? Bon, essayez cette chose ici ...
union{ //  union de les créneaux negatives
  object{ Merlon_Cut_Off
          translate<-2*Tower_R/4,0,0>}
  object{ Merlon_Cut_Off
          translate< 0*Tower_R/4,0,0>}
  object{ Merlon_Cut_Off
          translate< 2*Tower_R/4,0,0>}
  object{ Merlon_Cut_Off
          translate<-2*Tower_R/4,0,0>
                       rotate<0,90,0>}
  object{ Merlon_Cut_Off
          translate< 0*Tower_R/4,0,0>
                       rotate<0,90,0>}
  object{ Merlon_Cut_Off
          translate< 2*Tower_R/4,0,0>
                       rotate<0,90,0>}
  translate<0,Tower_H,0>
} // end of union of the merlon cut offs
Tower_Squared_03
6 créneaux negatives.
Si nous mettons ces lacunes des créneaux dans une difference avec la forme brut de la tour, comme suit :
#declare .... // textures
#declare ... // dimensions
#declare Merlon_Cut_Off = ....
// all things to declare
// than:
difference{
 // tower base shape:
 box{...
    } // end of box
 // things to subtract:
 union{ //  union of the merlon cut offs
  object{ ...
        }
  ....
  object{ ...
        }
  translate<0,Tower_H,0>
 }// end of union of the merlon cut offs
}// end of difference 
...nous devons obtenir ce qu'on peut voir ici à droite:
 
 
Tower_Squared_04
Soustrait!
Maintenant nous devons creuser l'intérieur de la balustrade en haut:
// --------------------------
#local Balu_H = 1.50; // hauteur
#local W_D = 0.30; // largeur du mur

box { <-Tower_R+W_D,-Balu_H,-Tower_R+W_D>,
      < Tower_R-W_D,      D, Tower_R-W_D>
      texture { Tower_Texture_2 }
      translate<0,Tower_H,0>
    } // end of box
Tower_Squared_05
Creuser la balustrade.
Si nous mettons cet forme aussi dans les accolades de la difference avec la forme brut de la tour, nous devons obtenir cet forme ici à droite:
Tower_Squared_06
Centre creusé.
Comment Faire une Texture Realistique de un Mur
Avec une texture simple comme cela
#declare Tower_Texture_1 = // sandstone - grès
 texture{ pigment{ color rgb<0.9,0.78,0.6>}
          normal { bumps 0.5 scale 0.015 }
          finish { diffuse 0.9 phong 0.1}
        } // end of texture 
nous ne pouvons pas voir les joints des blocs de pierre du mur!
Tower_Squared_07
Grès sans joints.
For a simulation for a wall of stones with interstices we can use the POV-Ray bricks pattern:
#declare Tower_Texture_1=// sandstone
texture{
  pigment{ color rgb<0.9,0.78,0.6>}
  normal {
    pigment_pattern{ brick
                     color rgb 0.2,
                     color rgb 0.8
                     scale 0.135
                     translate<0,0,0>
                     rotate<0,0,0>
                    } // end pattern
             0.35 // normal intensity
          } // end of normal
   finish { diffuse 0.9 phong 0.1}
 } // end of texture
Tower_Squared_08
Grès
avec des joints.
Problèms avec le motif "bricks" (bricks pattern).
Avec le motif "bricks" nous otenons souvent des images comme cela ici à droit.
Le raison pour otenir des lignes obscurs et clairs de cette façon est que nous avons touché la zone du mortier du motif "bricks" avec les bords de notre mur. Pour éviter cela aussi bien que pour créer un mur avec des pierres plus grandes ou plus petites nous devons apliquer des transformations appropriées comme "scale", "translate" et/ou "rotate" pour le "pigment_pattern".
Tower_Squared_09
typique
erreur avec "brick"
L'adaption des niveaux des joints aux dimensions des lacunes des créneaux est un travail très difficil - et très rarement fini perfectment. Pourtant le résultat de cette simulation simple est très remarquable, spécialement comparé aux efforts très minimale.
Tower_Squared_10
Cliquez ici pour un image plus grand.
 
Objets prêt à l'usage pour POV-Ray comme
fichiers include avec fichiers exemple
on peut trouver sur la POV-Ray Objects page.
top

© Friedrich A. Lohmüller, 2012
www.f-lohmueller.de