Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
            Objets Géométriques en POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'accueil
- Tutoriel POV-Ray
 
Objets Géométriques
   table des matières
Objets de Base
Objets avec macro + CSG
Objets dans "shapes3.inc"
D'autres objets comme macros
Objets 3D text
Autre Objets
Objets Non-CSG

height_field + HF macros
  - height_field par images
  - height_field réglé
  - height_field par fonctions
  - height_fields massive
  >HF - monts et vaux
  - HF_Square

  - HF_Sphere
  - HF_Cylinder
  - HF_Torus

Isosurface
                                       
Example height_field par fonctions

Avec " height_field " par monts et par vaux :

Comment créer
un paysage avec monts et vaux
avec un " height_field " par fonctions


Un paysage par "height_field" avec monts et vaux :

Si nous mettons des montagnes de "height_field" pure au plan de base, nous pouvons voir seulement le sommets des montagnes que se levent sur le terrain plat, les vallées sont absent !!!
Il a l'air d'être rempli par des sables mouvants !
 
Si nous voulons voir les vallées aussi, nous devons être sûr que il n'a pas tant de poussière de sable autour d'ici. Nous devons passer l'aspirateur sur cette scène !-)
Avec cela nous pouvons être avec succès par le 3 pas suivants montré avec les images ici à droit :

#declare HF_Res_X = 1024; // number of points in x
#declare HF_Res_Z = 1024; // number of points in z
#declare SF =
 function {
   pigment {
   spherical
     color_map {
       [0.0, color 0.0 ]
       [0.5, color 0.8 ]
       [1.0, color 1.0 ]
     } // end color_map
    scale <0.5,1,0.5>
    translate<0.5,0,0.5>
   } // end pigment
 } // end function

#declare HF_Function   =
 function(x, y, z)
  {1+f_snoise3d(x*10,y*10,z*10)*0.3 * SF(x,y,z).gray}

#declare HF_Amplitude    = 0.5;
#declare D = 0.00001; // just a little bit!

union{ // height_field + ground
 intersection{
  height_field{
   function  HF_Res_X, HF_Res_Z
   { HF_Function(x,0,y) * HF_Amplitude }
   //smooth
    translate<0,D-0.4 ,0>
   } // end HF
  box{ <D,-0.10,D>,<1-D,0.2-D,1-D>
   } // end box
  translate<0,-0.10,0>
 } // end intersection

difference{ // ground minus hole for height_field
 plane { <0,1,0>, 0 }   // plane of the ground
 box{ <D,-0.10,D>,<1-D,0.2-D,1-D> }
 } // end difference

 scale <1,1,1>
 translate<0,0,0>
 texture { pigment{ color rgb<1,0.95,0.8>}
           normal { bumps 0.75 scale 0.0025 }
           finish { phong 0.1 }
         }// end texture


}// end of  height_field + ground ------------- 
Un "height_field" pure sur le plan de base :
On ne peut pas voir les vallées !!!
Un "height_field" massive par la fonction
function{1+f_snoise3d(x*10,y*10,z*10)*0.3
multiplié par la fonction de motif boxed "pattern"
et "intersection" avec "box"
D'abord on doit creuser un trou dans le plan de base !
Puis nous devons mettre le "height_field" massive
dans le trou !
Et alors on peut voir non seulement les mountagnes, mais aussi les vallées !  
Description de la scène pour POV-Ray:
"HF_by_function_32.txt" ou
"HF_by_function_32.pov"


top

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