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 Example height_field par fonctions

" height_field " par fonctions :

Comment créer des montagnes
avec fonctions


Exemple : Montagnes avec "height_field" par fonctions:

#declare HF_Res_X = 1024; // number of points in x
#declare HF_Res_Z = 1024; // number of points in z
#declare HF_Function  = function{0.1+0.1*sin(x*30)}
#declare HF_Amplitude = 0.5;

height_field{
  function  HF_Res_X, HF_Res_Z
  { HF_Function(x,0,y) * HF_Amplitude }
  //smooth
  //water_level 0
  texture { pigment{ color rgb<0.6,0.5,1>}
            finish { phong 1 phong_size 400
                     reflection{0.25 metallic}}
          } // end of texture
  translate< 0,0.001,0>
  scale <1,1,1>
}//------------------------------------------------ 
 
"height_field" par la fonction
function{0.1+0.1*sin(x*30)}

Variations sur "height_field" par functions :

"height_field" par la fonction
function{0.1+0.1*sin(x*30)+0.1-0.1*cos(z*30))}
 
"height_field" par la fonction
function{0.2+0.05*sin(x*20)+0.035*sin(z*70)}

Exemple : "height_field" par fonctions incorporé en POV-Ray :

#declare HF_Res_X = 1024; // number of points in x
#declare HF_Res_Z = 1024; // number of points in z
#declare HF_Function  =
 function(x,y,z) {1+f_snoise3d(x*10,y*10,z*10)*0.3}
#declare HF_Amplitude = 0.5;

height_field{
  function  HF_Res_X, HF_Res_Z
  { HF_Function(x,0,y) * HF_Amplitude }
  //smooth
  //water_level 0
  texture { pigment{ color rgb<0.83,0.42,0.67>}
            finish { phong 1 phong_size 400
                     reflection{0.25 metallic}}
          } // end of texture
  translate< 0,-0.4,0>
  scale <1,1,1>
}//------------------------------------------------ 
 
 
"height_field" par la fonction
function(x, y, z) {1 + f_snoise3d(x*10,y*10,z*10)*0.30 }

Exemple : "height_field" par fonctions de le valeur de gris de pigments :

#declare HF_Res_X = 1024; // number of points in x
#declare HF_Res_Z = 1024; // number of points in z
#declare HF_Function  =
 function{
   pigment{
     crackle turbulence 0.45
     color_map{
       [0.00, color 0.00]
       [0.10, color 0.25]
       [0.12, color 0.30]
       [0.30, color 0.30]
       [0.70, color 0.27]
       [1.00, color 0.25]
     }// end color_map
    scale <0.25,0.005,0.25>*0.7
   } // end pigment
 } // end function
#declare HF_Amplitude = 0.5;

height_field{
  function  HF_Res_X, HF_Res_Z
  { HF_Function(x,0,y).gray * HF_Amplitude }
  //smooth
  //water_level 0
  texture { pigment{ color rgb<0.83,0.42,0.67>}
            finish { phong 1 phong_size 400
                     reflection{0.25 metallic}}
          } // end of texture
  translate< 0,0.00,0>
  scale <1,1,1>
}//------------------------------------------------ 
 
 
"height_field" par la fonction
function{
  pigment{
    crackle turbulence 0.45
    color_map{
      [0.00, color 0.00]
      [0.10, color 0.25]
      [0.12, color 0.30]
      [0.30, color 0.30]
      [0.70, color 0.27]
      [1.00, color 0.25]
      }// end color_map
    scale <0.25,0.005,0.25>*0.7
  } // end pigment
} // end function


top

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