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
    - Piramide
    - Colonna
    - Arco
    - Recinti
    - Mobili
    - Faccende di Casa
  - Tecnica
                                       
 
Piramide

Piramide

Oggetti:   "box".
Metodi:  "#declare", "union", "#while".
Con quest'esempio voglio spiegare la costruzione di una piramide.
Per questo dobbiamo definire le dimensioni esteriore: l'altezza, la larghezza e il numero di scalini della piramide. Poi fissiamo l'altezza all'incirca di un solo scalino o gradino.

Un file include per usare questo oggetto come un oggetto pronto per l'uso si trova su la mia paggina Oggetti POV-Ray.
La Costuzione Passo a Passo :
Primo di tutto dobbiamo definire le testure e le dimensioni:
#declare Top___Width = 1.00;   // half width at the top
#declare Base___Width = 3.00;  // half width at the base
#declare Total___Height = 3.00; // total height of the pyramid
#declare Number_of___Steps = 8; // number of steps
//-------------------------------------------------------------- 
pyramid
Pyramide in Grundform
Testo di scena per POV-Ray:
"pyramid0.txt" o "pyramid0.pov"
Poi calculiamo l'altezza all'incirca di un solo scalino o gradino.
#local D = 0.00001;
#local Step___Height = Total___Height/Number_of___Steps;
#local Step___Width  = (Base___Width-Top___Width)/(Number_of___Steps-1);
//-------------------------------------------------------------- 
Assemblaggio con while loop:
union{
 #local Nr = 0;     // start
 #local EndNr = Number_of___Steps; // end
 #while (Nr< EndNr)
   #local P___Width = Base___Width-Step___Width*Nr;
   #local P___Height = Step___Height;

   box{ <-P___Width, 0.00, -P___Width>,< P___Width, P___Height, P___Width>

        translate<0,Total___Height-(EndNr-Nr)*Step___Height,0>

        texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // ~ LightWood
                 finish { diffuse 0.9 phong 1 reflection 0.00}
               } // end of texture

       } // end of box

 #local Nr = Nr + 1;  // next Nr
 #end // --------------- end of loop
rotate<0,0,0>
translate<0,0,0>} // end of union
//----------------------------------------------------------------------------- 

pyramid
Senza struttura nella ombra.
 
 
pyramid
Con 2 tessturi differenti.
Testo di scena per POV-Ray:
"pyramid1.txt" o "pyramid1.pov"
Strutture nella ombra :
Se si costruisce una piramide die "box" con testura continua l'oggetto si presenta senza struttura nella ombra (solo luce ambientale).
Per evitare questo si può fare ogni gradino die due "box" differenti con due testure solo poco differenti:

   union{ // inner union
     //---------------------------------------------------------- visible in x and z
     box{<-P___Width, 0.00+D, -P___Width>,< P___Width, P___Height-D, P___Width>
         texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // LightWood}// rgb<1,1,1>}
                  finish { diffuse 0.8  phong 1 reflection 0.00}
                } // end of texture
        } // end of box
     //----------------------------------------------------------------- visible in y
     box{<-P___Width+D, 0.00, -P___Width+D>,< P___Width-D, P___Height, P___Width-D>
         texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // ~ LightWood light
                  finish { diffuse 0.9 phong 1 reflection 0.00}
                } // end of texture
        } // end of box
     //------------------------------------------------------------------------------

     translate<0,Total___Height-(EndNr-Nr)*Step___Height,0>
   } // end of inner union 

Riguardante per testure di muro realisici vede Torre merlato
pyramid


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, 2006
www.f-lohmueller.de