Descriptions and Examples for the POV-Ray Raytracer by Friedrich A. Lohmüller
Geometric Shapes in POV-Ray
Italiano Italiano
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial
 
Geometric Shapes
   Overview
Basic Shapes
Shapes by macro + CSG
Shapes in "shapes3.inc"
Other Shapes by macros
3D text shapes
Other Shapes
Non CSG Shapes
height_field + HF macros

Isosurfaces
  - with Basic Surfaces
  - with Sine Functions
  - by Built-in Functions
  ->by Helix Functions
  - by Pattern Functions
                                   
       isosurface{ ... } - by built-in helix, spiral and mesh1 functions. Examples:
          Built-in shape
isosurface
isosurface{ //------------------------------------
  function{ f_helix1( x,y,z,
        1,    // number of helixes, (1 = single helix, 2 = double helix etc.)
        3.5*2*pi,// For number N of turns per heigth of y = 1 unit, use N* 2*pi
        0.07, // minor radius,
        0.80, // major radius,
        1,    // shape parameter,
        0.3,  // cross section type,
              // (0.0 to 1.0 = square ... rounded to circle
              // over 2.0 to 3.0 = rounded to diamond and concave diamond
        0 )   // cross section rotation angle
  }
  contained_by {box { -1 , 1 }}
  threshold 0
  max_gradient 3.168
  accuracy 0.0001

  texture{
    pigment{ color rgb<1,0.9,0.5>}
    finish { diffuse 0.75 specular 0.1
             roughness 0.1 phong 0.2  }
  } // end of texture
  scale <1,1,1>*0.9
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------------------
  function{ f_helix1( x,y,z,
        8,    // number of helixes, (1 = single helix, 2 = double helix etc.)
        0.6 *2*pi,// For number N of turns per heigth of y = 1 unit, use N* 2*pi
        0.07, // minor radius,
        0.80, // major radius,
        0.75, // shape parameter,
        2.0,  // cross section type,
              // (0.0 to 1.0 = square ... rounded to circle
              // over 2.0 to 3.0 = rounded to diamond and concave diamond
        0  )  // cross section rotation angle
  }
  contained_by {box { -1, 1 }}
  threshold 0
  max_gradient 18

  texture{
    Chrome_Metal
    finish {phong 0.2 }
  } // end of texture
  scale <1,1,1>*1
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //---------------------------------
  function { f_helix2( x,y,z,
        0,    // not used,
        1.9*2*pi, // For number N of turns per heigth of y = 1 unit, use N * 2*pii
        0.38, // minor radius,
        0.50, // major radius,
        0,    // not used,
        0.5,  // cross section type,
              // (0.0 to 1.0 = square ... rounded to circle
              // over 2.0 to 3.0 = rounded to diamond and concave diamond
        0  )  // cross section rotation angle

  }
  contained_by {box { -1 , 1 }}
  threshold 0
  max_gradient 10

  texture {
    pigment{ color rgb<1,1,1>*1.1}
    finish { specular 0.4 phong 0.7}
  } // end of texture
  scale <1,1,1>*1
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------

isosurface
isosurface{ //-------------------------
  function {   f_spiral( x,y,z,
        0.2,   // distance between windings,
        0.05,  // thickness,
        0.9,   // outer diameter of the spiral,
        0,     // not used,
        0,     // not used,
        0.45 ) // cross section type
  }
  threshold 0
  max_gradient 5
  contained_by{sphere{<0,0,0>,1}}

  texture{
    pigment{ color rgb<1,0.75,0>}
    finish { specular 0.2 phong 0.7 }
  } // end of texture
  scale <1,1,1>*1.25
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------

isosurface
isosurface{ //-------------------------
  function{ f_mesh1( x,y,z,
       0.45, // distance between neighboring threads in the x direction,
       0.30, // distance between neighboring threads in the z direction,
       0.15, // relative thickness in the x and z directions,
       0.05, // amplitude of the weaving effect,
       0.25) // relative thickness in the y direction
  }
 contained_by{box{-1.5,1.5}}
 threshold 0.01
 max_gradient 8

  texture{
    pigment{ color rgb<0.65,0.55,0.45>}
    normal { bumps 0.25 scale 0.015}
    finish { phong 0.2 }
  } // end of texture
  scale <1,1,1>*1
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------

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