Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
            Objets Géométriques en POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'accueil
- Tutoriel POV-Ray
 
Objets Géométriques
   table des matières
Objets de Base
Objets avec macro + CSG
Objets dans "shapes3.inc"
D'autres objets comme macros
Objets 3D text

Autre Objets
  ->blob
  - sphere_sweep
  - julia_fractal
  - Polyèdres réguliers
  - Paraboloide, Hyperboloide
  - Polynomial equations
  - Cubic & Quartic shapes
  - Formes parametriques

Objets Non-CSG
height_field + HF macros
Isosurface
                                       

"blob{ ... }" - Metaballs, isosurfaces - surfaces équilpotentielles de champs scalaires

Pour cette sorte de formes
seulement 2 types de composants sont permis:
    "sphere" et "cylinder" !
(les deux avec un valeur additionnel de "strength" !)
blob
Exemple de syntaxe générale :
#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

Exemples:
 
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 en boucles while :
 
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


top

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