Home
- POV-Ray Tutorials
Introduzione a POV-Ray
Indice del contenuto
1. Usare POV-Ray:
"Insert Menu Add-on".
2. Principi fondamentali
Comme descrivere una scena?
Coordinate 3D,
Numeri e vettori
3. Struttura di Scena
Esempio di Base.
4. Scene file header:
#include files,
camera, light_source.
5. Oggetti geometrici di base
sphere, box, cylinder,
cone, torus, plane.
et altri oggetti
6. Trasformazioni
scala, rotazione,
translazione e altri.
CSG: union,
difference, intersection.
7. Colori e superfici
texture, pigment, normal, finish
8. #declare, #local, #macro.
Variabili e oggetti flessibili.
9. #while - loops, cicli.
Esempi di Base.
>10. #include, include files.
Oggetti riutilizzabili.
11. Efficienza,
velocità, flessibilità,
lavorare con moduli.
Adattare di 3.1 a 3.5;3.6
Adattare di 3.5;3.6 a 3.7
POV-Ray + Windows Vista.
- Insert Menu Add-on
& Download
|
#include "MyObject.inc"
- Elementi prefabbricati per l'uso multiplo!
Oggetti, costruitti una volta, si può definire come oggetti pronto per l'uso in
un proprio include file.
Con questo metodo oggetti si può riutilizza in ogni altra scena senza riscrivere o copiare
della definizione completa!
Suddividere scene più grandi in component più piccole par usare include file è
una tecnica elementare technology di lavorare modulare -
senza questa è quasi impossibile di realizzare scene veramente grande e complesso.
|
Oggetto esempio:
Prima definisscono un oggetto 'Column_1' come macro:
//----------------- macro Column_1(...)
#macro Column_1( H_C, // column height
R_B, // base radius
R_min,// border radius
T_S, // top scale
) //---------------------
union{
cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
torus{ R_B,R_min translate<0,R_min,0>}
torus{ R_B*T_S,R_min*T_S
translate<0,H_C-R_min*T_S,0>}
}// end Column
#end //------------------- end of macro |
Creare un include file:
Per un include file di un oggetto singolo
si è raccomando di scegliere il nome del include
file in conformità al nome del oggetto!
Per la scelta di nomi q.v. le regole in "#declare"!
Qui facciamo un file 'Column_1.inc':
// POV-Ray include file "Column_1.inc"
//-------------------------------------
#ifndef( Column_1_Inc_Temp)
#declare Column_1_Inc_Temp = version;
#version 3.6;
//-------------------------------------
#macro Column_1( H_C, // column height
R_B, // base radius
R_min,// border radius
T_S, // top scale
) //--------------------
//-------------------------------------
union{
cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
torus{ R_B,R_min translate<0,R_min,0>}
torus{ R_B*T_S,R_min*T_S
translate<0,H_C-R_min*T_S,0>}
}// end Column
#end// ------------------- end of macro
//-------------------------------------
#version Column_1_Inc_Temp;
#end
// ---------------- end of include file |
Questo file dobbiamo memorizzare nella stessa
directory come il file di nostra scena o in una directory
di include file disponibile nel include file path
(Library_Path) di POV-Ray.
|
La macro Column_1( ... ) chiamata con:
object{Column_1(3.5, // height
0.5, // base r
0.06,// border r
0.75,// top scale
) //---------------
texture{
pigment{color rgb<1,0.9,0.8>}
normal{ bumps 0.5 scale 0.01}
finish{ phong 0.1 }
} // end texture
translate<0,0,0>
} //-------------------------- |
Note: Le parti rosse del testo di include file sono aggiunte per evitare che
lo stesso oggetto é dichiarato ripetutamente se il è gia inserito una volta.
E questi parti chambiano anche la versione di
POV-Ray usato version indietro a la versione per laquale questo testo è scritto,
anche se un bel giorno usiamo una versione più nuovo. |
Note: Se inseriamo un include file con il comando #include "MyObject.inc",
il testo di questo file sara inserito di POV-Ray carattere per carattere
esatto al posto del comando during durante il parsing del file.
Questo deve essere sempre davanti al posto dove usamo l'oggetto di questo include file.
Se questo testo del include file definisce un oggetto completo, che vogliamo usare ripetutamente in una scena,
dobbiamo inserire il include file solo una volta! |
|
Calling an object from an include file:
Qui inseriamo 'Column_1.inc': (solo una volta!)
//---------------------------------------
#declare Column_Texture =
texture{ pigment{ color rgb<1,0.95,0.8>}
normal { bumps 0.5 scale 0.01}
finish { phong 0.1 }
} // end of texture
//-------------------------------------//
#include "Column_1.inc"
//-------------------------------------//
union{ //--------------------------------
#local Nr = 0; // start
#local EndNr = 10; // end
#while (Nr< EndNr)
union{ // inner union
object{ Column_1(3.5, 0.5, 0.06, 0.75)
translate<-2,0,0>}
object{ Column_1(3.5, 0.5, 0.06, 0.75)
translate< 2,0,0>}
translate<0,0,Nr*2.5>
} // end inner union
#local Nr = Nr + 1; // next Nr
#end // --------------- end of loop
texture{ Column_Texture }
rotate<0,0,0>
translate<0,0,0>
} // end of union ----------------------- |
|
File di colonne
Descrizione della scena per POV-Ray:
file di scena: Column_1_Row.pov
include file: Column_1.inc
|
Con questo meccanismo si può anche conservare le sue texture speciale e le sue colori speciali
come un file per esempio chiamato "My_tex.inc"!
Anche un magazzino di mobili ed anche una colleczione di aeroplani o
di veicoli spaziali si può conservare con questo metodo!!!
|
|