Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

  Koordinatensysteme
  und 2D-Funktionen

  - Karopapier
  - Koordinatensysteme
      mit Achsen
  > Makro für Raster
      mit 2 Niveaus
  - 2D-Funktionen
      Beispiele
  - Mathematische Funktionen
      in POV-Ray
                                           
Raster mit 2 Niveaus

Die Konstruktion eines Koordinatennetzes mit Unterteilung
(i.e. 1m and 0.1m) mittels überlagerten Raster-Texturen.
Objekte:    "plane, cylinder, cone".
Methoden: "color_map, layered textures, #macro"
        

Die Konstruktion im Detail:
Wir verwenden zuerst ein Makro zur Erzeugung von Streifen in einem vorgegebenen Abstand in eine Richtung.
In einem zweiten Makro dies zweimal mit dem ersten Abstand zu einer 'box' (z.B. mit 1 Einheit Abstand) dabei drehen wir eine davon um 90° um die y-Achse. Dann fügen wir ein zweites, feineres Koordinatennetz (z.B. mit 0.1 Einheiten Abstand) auf dieselbe Weise hinzu.


//------------------------------------- ////////////
#macro Raster_Lines (RScale, LineW, Intensity_)
 pigment{ gradient x scale RScale
          color_map{
           [0.000   color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,0>*Intensity_]
           [1.000   color rgbt<1,1,1,0>*Intensity_]
           } // end color_map
         } // end pigment
 #end// of Raster(RScale, HLine)-macro
//------------------------------------- ////////////
//------------------------------------- ////////////
#macro Raster_Plate(
    RD1, Width1,//primary raster distance/width,
    RD2, Width2,//secondary raster distance/width,
    Base_Texture, //  non = pigment { Clear }
    Intensity, // Line gray intensity
    Start_Box, End_Box, // vectors
  ) //------------------------------------------
//----------------------------------------------
box{ Start_Box,End_Box
     texture{ Base_Texture }
  #if (RD1 > 0 ) // raster big  RD1, Width1,
    texture { Raster_Lines(RD1,Width1,Intensity) }
    texture { Raster_Lines(RD1,Width1,Intensity)
              rotate<0,90,0>}
  #end
  #if (RD2 > 0 ) // raster small RD2, Width2,
    texture { Raster_Lines(RD2,Width2,Intensity) }
    texture { Raster_Lines(RD2,Width2,Intensity)
              rotate<0,90,0>}
  #end
} // end box -----------------------------------
#end // ------------------------------ end of macro
//------------------------------------- ////////////

// How to use:  ------------------------------------
#declare B_Tex =
  texture{ pigment{ color rgb<1,1,1<*1.2}}
//--------------------------------------------------
object{ Raster_Plate(
    1.0, 0.010,// RD1, Width1,// 1st distance/width,
    0.1, 0.045,// RD2, Width2,// 2nd distance/width,
    B_Tex, // Base_Texture, // non = pigment{Clear}
    0.6, // Intensity, // Line gray intensity
    <-2,-0.05,-2>, <2,0,2>, //Start/End
  ) //----------------------------------------------
  rotate<0,0,0>
  translate<0,0.001,0>
} //------------------------------------------------

Raster mit 2 Niveaus
Raster mit 2 Niveaus.
Diese Szene in POV-Ray:
raster_plate_2.pov
Grid with 2 Levels
Raster mit 2 Niveaus und Grundniveau.




Grids with 2 Levels
Raster 3D mit 2 Niveaus.
Diese Szene in POV-Ray:
raster_plate_4.pov

top

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