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

Home
- POV-Ray Tutorial

  - POV-Ray Beispiele
    Inhaltsübersicht
  - Geometrie
  - Architektur
    - Haus
    - Dach
    - Turm mit Zinnen
    - Schloss
    - Fenster u. Tür
    - Treppen
    - Pyramide
    - Säulen
    - Bogen
    - Zäune
    - Möbel
  - Technik
                                       
 
columns

Gerippte Säule

Objekte:    "cone"
Methoden: "#macro", "#local", "difference"
Die Konstruktion im Detail:
Von einem Kegelstumpf-Rohling werden ein Kranz von kleineren Kegelstümpfen (Deren Anzahl der gewünschten Rippen entspricht) abgezogen. Das Resultat dieser Differenz erhält eine durchgehende Stein-Textur!
Eine Include-Datei mit der man dieses Objekt als Fertig-Objekt verwenden kann findet man auf meiner POV-Ray Objects-Seite.
Der Säulenkern:
//---------------- texture --------------------------
#declare Column_Kernel_Texture =
         texture { T_Grnt16
                   normal { agate 0.35 scale 0.05}
                   finish { phong 0.2 }
                   scale 1
                 } // end of texture
//------------------------ dimensions ---------------
#declare C_Height___ = 2.00; // column kernel height
#declare C_Base_Radius___ = 0.30; //
#declare C_Top_Radius___  = 0.30; //
//---------------------------------------------------
cone { <0,0,0>, C_Base_Radius___,
       <0,C_Height___,0>, C_Top_Radius___
     } // end of cone ------------------------------- 
Kegelstumpf-Rohling!
Eine Säulenrippe zum Subtrahieren:
//---------------- the rips dimensions -------------- 
#local Column_Subdivision___ = 16 // number of rips
//---------------------------------------------------
#local R_Top_R___ = // rip top radius
2*pi*C_Top_Radius___ /Column_Subdivision___*1/sqrt(2);
#local R_Base_R___= //rip base radius
2*pi*C_Base_Radius___/Column_Subdivision___*1/sqrt(2);
#local R_Top_D___ = // rip top distance
C_Top_Radius___ +Rip_Top_R___ *1/sqrt(2);
#local R_Base_D___= // rip base distance
C_Base_Radius___ +Rip_Base_R___*1/sqrt(2);
#local R_over = +Rip_Base_R___*0.1;
//----------------------- single rip ----------------
cone { <R_Base_D___,-R_over,       0>, R_Base_R___,
       <R_Top_D___ ,C_Height___+R_over,0>, R_Top_R___
         texture { pigment{ color rgb< 1, 1, 1>*1.2 }
                 } // end of texture
     } // end of cone for rips ----------------
Eine einzelne Rippe
Säulenrippen im Kreis arrangiert:
//---------------- a ring of rips -------------------
 #local Nr = 0;     // start
 #local EndNr = Column_Subdivision___; // end
 #while (Nr< 1) // EndNr)
 cone{ <R_Base_D___,-R_over,           0>,R_Base_R___,
       <R_Top_D___ ,C_Height___+R_over,0>,R_Top_R___
       rotate<0,Nr * 360/EndNr,0>
       texture { pigment{ color rgb< 1, 1, 1>*1.2 }
               } // end of texture just for testing
     } // end of cone -------------------------------
 #local Nr = Nr + 1;    // next Nr
 #end // ---------------  end of loop
//--------------------------------------------------- 
Die Rippen angeordnet mit einer While-Schleife.
Säulenkern minus Rippen:
//---------------- column kernel - rips --------------
difference{ //
cone { <0,0,0>, C_Base_Radius___,
       <0,C_Height___,0>, C_Top_Radius___
     } // end of cone -------------------------------
// subtractin the rips:
 #local Nr = 0;     // start
 #local EndNr = Column_Subdivision___; // end
 #while (Nr< 1) // EndNr)
 cone{ <R_Base_D___,-R_over,           0>,R_Base_R___,
       <R_Top_D___ ,C_Height___+R_over,0>,R_Top_R___
       rotate<0,Nr * 360/EndNr,0>
     } // end of cone --------------------------------
 #local Nr = Nr + 1;    // next Nr
 #end // ---------------  end of loop
 texture { pigment{ color rgb< 1, 1, 1>*1.2 }
         } // end of texture just for testing
} // end of difference
//---------------------------------------------------- 
Säulenkern minus Rippen.
Eine spezielle Texture für Säulen:
//----------------------------------------------------
#declare Stone_Texture = // Column kernel stone texture
         texture { T_Grnt16
                   normal { agate 0.35 scale 0.05}
                   finish { phong 0.2 }
                   scale 1
                 } // end of texture
//  ..........-............. with vertical subdivisions
#declare Column_Kernel_Texture =
 texture { gradient<0,1,0>
           scale <1,0.67,1> turbulence 0.01
           texture_map{
            [0.00 Stone_Texture ]
            [0.001 pigment{ color rgb<1,1,1>*.1}]
            [0.005 pigment{ color rgb<1,1,1>*.1}]
            [0.006 Stone_Texture ]
            [1.00 Stone_Texture ]
            } // end of texture_map
          } //  end of texture -----------------------
//---------------------------------------------------- 
Dies ergibt folgendes Bild:
columns
Textur mit horizontalen Streifen.
 
Zugehörige Szenenbeschreibung als Macro für POV-Ray:
".txt"-Datei oder ".pov"-Datei
Gebrauchsferige POV-Ray Objekte als
Include-Dateien mit Beispieldateien findet man
auf der POV-Ray-Objects-Seite.
top

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