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
  ->blob
  - sphere_sweep
  - julia_fractal
  - Regulare Polyhedron
  - Paraboloid, Hyperboloid
  - Polynomial equations
  - Cubic & Quartic shapes
  - Parametric shapes

Non CSG Shapes
height_field + HF macros
Isosurfaces
                                   

"blob{ ... }" - Metaballs, isosurfaces of scalar fields

For this kind of shapes
only 2 types of blob components are allowed:
    spheres and cylinders !
(both with an additionale strength value!)
blob
general syntax sample:
#declare Strength = 1.00;
// +/- strength of component's radiating density
#declare Radius  = 1.00;
//(0 < Radius) outer sphere of influence
// on other components
blob{
  threshold 0.6
  // threshold (0.0 < threshold <= Strength)
  // surface falloff threshold number
  cylinder{<-1,0,0>,< 1,0,0>,Radius,Strength}
  sphere{  < 0,1.25,0>,Radius,Strength}
  sphere{  < 0,0,-1.25>,Radius,Strength}
  //  a negative component:
  sphere{  < 0,1.50,0>,Radius/2,-Strength}
  // sturm
  scale 1
  rotate<0,0,0>
  translate<0,0.5,0>
  texture{ pigment{ color rgb<0.7,1,0.0>}
           finish { phong 1}}
 } //---------- end of blob object

Samples:
 
blob
#declare Stren = 1.00;
#declare R = 1.00;
blob{
  threshold 0.6
  cylinder{<-2,0.00, 0>,<2,0.00,0>, R, Stren}
  cylinder{< 0,0.75,-2>,<0,0.75,2>, R, Stren}
  // sturm
  scale 1
  rotate<0,0,0>
  translate<0,0.5,0>
  texture{ pigment{ color rgb<1,0,0>*0.8}
           finish { phong 1}}
 } //------------- end of blob object
blob
#declare Stren = 1.0;
#declare R = 1.00;
blob{
  threshold 0.65
  cylinder{<-1.00,0,0>,<1.00,0,0>, R, Stren}
  sphere{  < 2.25,0,0>, R, Stren}
  // sturm
  scale 1
  rotate<0,0,0>
  translate<0,0.5,0>
  texture{ pigment{ color rgb<1,0.7,0>}
           finish { phong 1}}
 } //------------- end of blob object
blob
#declare Stren = 1.0;
#declare R1  = 2.00;
#declare R2  = 1.00;
blob{
  threshold 0.65
  cylinder{<-1,0,0>,<1,0,0>, R1, Stren}
  sphere{< 1.35,0, 0.00>, R2,-Stren}
  sphere{< 0.00,0,-0.65>, R2,-Stren}
  sphere{< 0.00,0, 0.65>, R2,-Stren}
  // sturm
  scale 1
  rotate<0,0,0>
  translate<0,1,0>
  texture{ pigment{ color rgb<0.7,0.3,1>}
           finish { phong 1}}
 } //------------- end of blob object

Blobs in while loops:
 
blob

blob

#declare Stren = 1.00;
#declare R1 = 1.00;
blob{
 threshold 0.65
 // center
 sphere{ <0,0,0>, R1, Stren scale<1,2,1>}
 // wings
 #local Nr = 0;    // start
 #local EndNr = 7; // end
 #while (Nr< EndNr)
  cylinder{<0,0,0>,< 1,0,0>, R1, Stren
            scale<1,0.3,1>
            rotate<-30,0,0>
            translate<1.25,0,0>
            rotate<0,Nr * 360/EndNr,0>}
 #local Nr = Nr + 1; // next number Nr
 #end // ---------------  end of loop
 scale 1
 rotate<0,0,0>
 translate<0,0.5,0>
  texture{ pigment{ color rgb<0.7,1,0>*0.8}
           finish { phong 1}}
 } //------------- end of blob object

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