Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller

            Geometrische Körper in POV-Ray

English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial
 
 Geometrische Körper
   Inhaltsübersicht
Grundformen
Körper mit Makros + CSG
Körper in "shapes3.inc"
Andere Körper als Makros
3D-Text-Objekte

Andere Formen
  ->blob
  - sphere_sweep
  - julia_fractal
  - Regulare Polyhedron
  - Paraboloid, Hyperboloid
  - Polynomial equations
  - Cubic & Quartic shapes
  - Parametric shapes

Non CSG Körper
height_field + HF macros
Isosurfaces
                                       

"blob{ ... }" - Metaballs, Äquipotenzialflächen (isosurface) skalarer Felder

Für diese Art von Formen sind
nur 2 Typen als Komponenten erlaubt:
    "sphere" und "cylinder" !
(beide mit einen zusätzlichen Wert für "strength"!)
blob
Allgemeines Syntax-Beispiel:
#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-Schleifen:
 
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