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

macro "Column_N (...), Pyramid_N (...) " Übersicht meine Macro-Objekte macro "Facetted_Sphere (...)"

Diese Objekte sind in meiner Include_Datei "shapes_lo.inc" als Makros definiert:

Egg
Egg_Shape

Egg

Egg_Shape


    Ei-Objekt
 
Syntax:
object{ Egg
        texture{ ... ... }
        scale 1
        rotate <0,0,0>
        translate < 0, 0, 0>
     } // end of object ------------------------

   eiförmiges Objekt
 
Syntax:
object{ Egg_Shape (Lower_Scale, Upper_Scale)
        texture{ ... ... }
      } // end of object ------------------------
Mit:
Lower_Scale = y-Maßstab der unteren Objekthälfte,
Upper_Scale = y-Maßstab der oberen Objekthälfte.
Die Gesamthöhe des Objekts ist auf 2 Einheiten skaliert.

Beispiele:
#include "shapes_lo.inc"
object { Egg  // = Egg_Shape (1.15,1.55)
         texture{ pigment{ color rgb<1,1,1&lgt;}
                  normal { bumps 0.5 scale 0.0025}
                  finish { ambient 0.15 diffuse 0.85
                           phong 0.5 reflection 0.02}
                } // end of texture
        rotate < 0,0, 0>
        translate < 0,0, 0>
       } // end of object --------------------------- 
#include "shapes_lo.inc"
object { Egg_Shape (2.05,0.65)
         texture{ pigment{ color rgb<1,1,1>}
                  normal { bumps 0.5 scale 0.0025}
                  finish { ambient 0.15 diffuse 0.85
                           phong 1 reflection 0.02}
                } // end of texture
         translate < 0,0, 0>
       } // end of object --------------------------- 


Das Makro im Detail:

Dieses Makro verwendet eine Vereinigungsmenge (union) von zwei durch Schnitt von geeignet skalierten Kugeln und Quadern erzeugte Ellipsoid-Hälften:

// -------------------------------------- macro Egg_Shape (...)
#macro Egg_Shape (Lower_Scale, Upper_Scale)                  //
// ------------------------------------------------------------
#local Egg_Lower_Part =
         difference {
                      sphere{<0,0,0>,1 scale<1,Lower_Scale,1>}
                      box{<-1,0,-1>,<1,Lower_Scale,1>}
                    } //---------------------------------------
#local Egg_Upper_Part =
         difference {
                      sphere {<0,0,0>,1 scale<1,Upper_Scale,1>}
                      box {<-1,-Upper_Scale,-1>,<1,0,1>}
                     }//---------------------------------------
//-------------------------------------------------------------
  union {
          object {Egg_Upper_Part}
          object {Egg_Lower_Part}
          translate<0,Lower_Scale,0>
          scale 2/(Lower_Scale+Upper_Scale)

        } // end of union ------------------------------------
#end //---------------------------------- end of the egg macro

Das Ei-Objekt wird durch feste Skalierung mit demselben Makro erzeugt, wobei Lower_Scale = 1.15 und Upper_Scale = 1.55:

// ----------------------------- shape of a simple egg
#declare Egg = object { Egg_Shape (1.15,1.55)}
// ------------------------------------- end of the egg object


Hier einige Variationen dieses Makro-Objektes:
 
Egg
Edd
"Egg object" "Egg object"


macro "Column_N (...), Pyramid_N (...) " Übersicht meine Macro-Objekte macro "Facetted_Sphere (...)"

© Friedrich A. Lohmüller, 2010
email email: (legacy email redacted)
homepage:www.f-lohmueller.de