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 basic functions. Examples:
   Built-in shape
isosurface
isosurface{ //-------------------------
  function{ f_pillow( x,y,z, 0.26 )
          } // field strength
  contained_by {box { -1.5, 1.5 }}
  threshold 0
  max_gradient 18

  texture{
    pigment{ color rgb<1,0.45,0.8>}
    finish { specular 0.2 phong 0.7}
  } // end of texture
  scale <1,1,1>*0.65
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function{
    f_rounded_box(x,y,z,
    0.15, // radius of curvature
    1.00, 0.75, 0.50 ) // length in x,y,z
    }
  contained_by {box { -1 , 1 }}
  threshold 0
  max_gradient 3.168
  accuracy 0.0001

  texture{
    pigment{ color rgb<0.75,0.6,0.45>}
            normal { bumps 0.5 scale 0.005 }
            finish { phong 1 }
  } // end of texture
  scale <1,1,1>*1.0
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function {  f_rounded_box(x,y,z,0,1,1,1 )
    - f_superellipsoid( x,y,z, 1.0, 0.45)
     // exponents east-west, north-south
  }
  threshold 0
  contained_by {box { -1 , 1 }}
  max_gradient 10
  accuracy 0.005
  open  // optional

  texture {
    pigment{ color rgb<0.3,0.15,1>}
    finish { specular 0.2 phong 0.7 reflection 0.1}
  } // end of texture
  scale <1,1,1>*1
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function {  f_torus( x,y,z, 0.75, 0.25)
           } // major radius, minor radius
  threshold 0.00
  max_gradient 5
  contained_by{box{ -1, 1 }}

  texture{
    pigment{ color rgb<0.2,0.45,1>}
    finish { specular 0.2 phong 0.7 reflection 0.1}
  } // end of texture
  scale <1,1,1>*1.5
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function{ f_torus2( x,y,z, -0.75, 0.66, 0.02)
      // needs negative Field Strength
      // or a negated function, major radius, minor radius
          }
  threshold 0.16
  accuracy 0.005
  max_gradient 10
  contained_by{box{ -1, 1 }}

  texture{
    pigment{ color rgb<1.0,0.05,0.2>}
    normal { bumps 0.5 scale 0.035}
    finish { diffuse 0.75 specular 0.2
             phong 0.7 reflection 0.05}
  } // end of texture
  scale <1,1,1>*1.5
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function{  f_paraboloid(x,-y,z, -1) }

  accuracy 0.002
  max_gradient 4
  contained_by{box{ -1, 1 }}

  texture{
    pigment{ color rgb<0.5,1,0.1>}
    finish { phong 1}
  } // end of texture
  scale <1,1,1>*1.0
  rotate <0,0,0>
  translate <0,1,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function { f_sphere(x, y, z, 1) }
  threshold 0
  accuracy 0.0001
  max_gradient 5
 contained_by{ sphere{<0,0,0>, 1} }

  texture{ pigment{ color rgb<1,0.6,0>}
           finish { specular 0.2 phong 1}
  } // end of texture
  scale <1.00,1.00,1.00>
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function { f_heart( x,y,z, -0.15)}
  threshold 0
  accuracy 0.0001
  max_gradient 100
 contained_by{ box{<-1.1,-1.5,-1.1>,<1.1,1.22,1.5>}}

  texture{ pigment{ color rgb<1,0.7,0.1>}
           finish { phong 1 specular 0.3}
  } // end of texture
  scale <1,1,1>*1.0
  rotate <-90, 90, 0>
  translate <0,1.3,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function { f_comma( x,y,z, 1)  }
  threshold 0
  accuracy 0.0001
  max_gradient 5
 contained_by{ sphere {0,1.5} }

  texture{ pigment{ color rgb<0.7,1,0>}
           finish {  phong 0.5 }
  } // end of texture
  scale <1,1,1> *1.2
  rotate <90,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function{ f_dupin_cyclid( x,y,z,
            -0.05, // field strength,
            1,     // major radius of torus,
            0.25,  // minor radius of torus,
            0.25,  // x displacement of torus,
            0.0,   // y displacement of torus,
            0.75 ) // radius of inversion
          }
  contained_by {sphere {0,1.25}}
  texture{
    pigment{ color rgb<0.6,0.5,1>}
    finish { specular 0.1
             roughness 0.1 phong 0.6}
  } // end of texture
  scale <1,1,1>*1.2
  rotate <90,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function{ f_flange_cover( x,y,z,
       0.004, // spikiness,
       10,    // inverse size,
       0.53,  // flange, (1 = off)
       1   )  // threshold
  }
  contained_by {sphere {0,1.5}}
  threshold 0.01
  accuracy 0.00001
  max_gradient 5

  texture{
    pigment{ color rgb<0.9,0.4,0.7>}
    finish {specular 0.1
            roughness 0.1 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_sphere(x,y,z, 0.85)
    + f_spikes( x,y,z,
       0.0001, //  spikiness, (very low, 1 = sphere)
       1.34,   // hollowness,
       0.95,   // size,
       0.70,   // roundness,
       1.00 )  // fatness
  }
  contained_by {box { -2, 2 }}
  threshold 1.55 //1.25
  max_gradient 8
  texture{
    pigment{ color rgb<1,0.15,0.3>}
    finish { diffuse 0.75 specular 0.2
             phong 0.7 reflection 0.2 }
  } // end of texture
  scale <1,1,1>*0.65
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------
isosurface
isosurface{ //-------------------------
  function { y + f_spikes_2d( x,y,z,
      2,    // height of central spike,
      12,   // frequency of spikes in the x direction,
      12,   // frequency of spikes in the z direction,
      0.75) // rate at which the spikes reduce
  }         // as you move away from the center
  contained_by {box {<-2,0,-2>,<2,4,2>}}
  threshold 1.55 //1.25
  max_gradient 8
  texture{
    pigment{ color rgb<1,0.15,0.3>}
    finish { diffuse 0.9 specular 0.2
             phong 0.7 reflection 0.2 }
  } // end of texture
  scale <1,1,1>*0.65
  rotate <0,0,0>
  translate <0,0,0>
} // end of isosurface ----------------

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