Descriptions and Examples for the POV-Ray Raytracer by Friedrich A. Lohmüller
    POV-Ray Examples - How To Make Objects for POV-Ray
Italiano Italiano
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial
  - POV-Ray Examples
   Index of Content
  - Geometry
  - Architecture
    - House
    - Roof
    - Tower
    - Castle
    - Window + Door
    - Stairs
    - Pyramid
    - Columns
    - Archs
    - Fences
    - Furnitur
  - Engineering
                                       
 
Columns

Ribbed Column

Objects: "cone"
Methods: "#macro", "#local", "difference"
The construction in details:
From a truncated cone as the raw shape of a column we subract a ring of smaller truncated cones (With the number of the rips we wish). The result of this difference gets a coninuous stone texture!
An include file to use this object as a read-made object you can find at my POV-Ray Objects page.
The kernel of the column:
//---------------- 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 ---------------------------------- 
The raw truncated cone!
A single rip for subtracting:
//---------------- 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 ----------------
A single rip:
The rips arranged by a while loop:
//---------------- 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
//--------------------------------------------------- 
The rips arranged by a while loop.
Kernel of the column minus rips:
//---------------- 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
//---------------------------------------------------- 
Kernel of the column minus the rips.
A special texture for columns:
//----------------------------------------------------
#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 -----------------------
//---------------------------------------------------- 
The final image:
Columns
Texture with horizontal stripes.
 
Click here for the complete scene description as a macro
for POV-Ray: ".txt" file or ".pov" file
Ready-made POV-Ray objects as
include files and example files you'll find
at the POV-Ray Objects Page
top

© Friedrich A. Lohmüller, 2006
www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!