Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller

            Geometrische Körper in POV-Ray

English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial
 
Geometrische Körper
   Inhaltsübersicht
Grundkörper
Körper mit Makros + CSG
3D-Text-Objekte
Andere Formen
Non-CSG Objekte

 height_field + HF macros
  - height_field mit Bildern
  - height_field gerastert
  >height_field mit Funktionen
  - height_fields massiv
  >HF - Berge u. Täler
  - HF_Square
  - HF_Sphere
  - HF_Cylinder
  - HF_Torus

 Isosurfaces
                                       
Sample height_field by_functions Sample height_field by_functions

"height_field" durch eine Funktionen:

Wie man Berge
mit "height_field"
und Funktionen erzeugt.


Beispiel "height_field" von Funktionen:

#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" durch die Funktion
function{0.1+0.1*sin(x*30)}

Variationen zu "height_field" von Funktionen:

"height_field" durch die Funktion
function{0.1+0.1*sin(x*30)+0.1-0.1*cos(z*30))}
 
"height_field" durch die Funktion
function{0.2+0.05*sin(x*20)+0.035*sin(z*70)}

Beispiel: "height_field" mit POV-Ray eigenen Funktionen:

#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" durch die Funktion
function(x, y, z) {1 + f_snoise3d(x*10,y*10,z*10)*0.30 }

Beispiel: "height_field" mit Funktionen aus den Grauwerten von Pigmenten:

#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" mit der Funktion
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

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