Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
Esempi POV-Ray - Come fare oggetti per POV-Ray
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  - Esempi per POV-Ray
   Indice generale
  - Geometria
  - Architettura
    - Casa
    - Tetto
    - Torre
    - Castello
    - Finestra e Porta
    - Scale
    - Recinti
    - Piramide
    - Colonna
    - Arco
    - Mobili
    - Faccende di Casa
  - Tecnica
                                       
 
table

Un pezzo di formaggio

Oggetti: "box", "sphere", "Rounded Cylinder", "shapes_lo.inc"
Metodi: "#declare", "union", "difference", "#while", "#macro"
Scale di modelo: 1 unità = 1.00 meter
Primo arrangiamo qualche sfere in un reticolo rettangolare:
#declare Cheese_R_ = 0.30; // width in x
#declare Cheese_H_ = 0.14; // width in y
#local Max_D =  Cheese_H_/4; // distance
#local Max_Num_X = int(Cheese_R_/Max_D)-0.5;
#local Max_Num_Y = max(1,int(Cheese_H_/Max_D)-0.5);
//-------------------------------------------------
 #local NrX = 0.75; // outer loop x
 #while (NrX < Max_Num_X)
  #local NrY = 0.5; // inner loop y
  #while (NrY <  Max_Num_Y)
    sphere{ <0,0,0>,Max_D/2
      translate<(NrX+0.5),(NrY+0.5),0>*Max_D
      pigment{color rgb<1,0.7,0.3>} finish{phong 1}
    } // ------- end sphere
  #local NrY = NrY + 1;  // next Nr y
  #end // --------------- end of inner loop y
  // end inner loop
 #declare NrX = NrX + 1;  // next Nr x
 #end // --------------- end of outer loop x 
Poi aggiungiamo qualche casualità alla scala e alla posizione. Aggiungiamo avant del loop:
#declare Rnd_ = seed( 18926 );
e sostituiamo la sfera con questa:
sphere{ <0,0,0>,Max_D/2
      scale<1+0.5*(rand(Rnd_)),
            1-0.5*(rand(Rnd_)),
            1+0.5*(0.5-rand(Rnd_))>
      translate<(NrX+0.5)+0.85*(0.5-rand(Rnd_)),   
                (NrY+0.5)+0.85*(0.5-rand(Rnd_)),
                0.15*(0.5-rand(Rnd_))> * Max_D
       pigment{ color rgb<1,0.7,0.3>}
     } // ------- end sphere
Poi ritagliamo un pezzo del formaggio usando la macro Round_Cylinder e mia macro Segment_of_Object(Object,Angle) :
Pour download: "Step 2" a shapes_lo.inc.
#include "shapes_lo.inc"
#declare Cheese_R_  = 0.30; // radius
#declare Cheese_H_  = 0.15; // height
#declare Cheese_Border_R_ = 0.05;
#declare Cut_Angle_ = 30; // degrees
//------------------------------------
#declare Cheese_Shape_ =
object{ Round_Cylinder(
        <0,0,0>,<0,Cheese_H_,0>,
        Cheese_R_ , Cheese_Border_R_, 0) }
object{ Segment_of_Object(Cheese_Shape_,Cut_Angle_)
        texture{ Cheese_Texture }
      } // ----------------------------------------

Addesso dobbiamo sottrarre i buci dalla facciata anteriore e posteriore della forma di base "Cheese_Shape_"!
(Si può vedere il file della scena per i dettagli!)

regulare grid
Reticolo rettangolare
regulare grid
Reticolo rettangolare
con qualche casualità
cut of cheese
Un pezzo di formaggio.
cut of cheese
Un pezzo di formaggio con buci.
Cliccare qui per una descrizione
della scèna in POV-Ray:
".txt" file o ".pov" file
Oggetti pronto per l'uso per POV-Ray
come Archivi include con archivi esempio
si trova su la Paggina POV-Ray Objects.
top

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