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
|
#declare, #local - Abbreviazioni, variablili e oggetti flessibili.
Definizione dei valori variabili (numeri e vettori), delle strutture e degli oggetti etc.
Bisogna non dimenticare quando scegliamo i nomi e le abbreviazioni:
> Non usare alcuni caratteri nazionali specifici!
> Non usare chiave riservati!
> i capitali ed i piccoli caratteri sono discriminati!
> È racommandato: per tutti gli oggetti e cose definito da sè - usi i capitali all'inizio!
Le parole chiavi riservati del POV-Raggio cominciano con caratteri piccoli!
#declare si usa per variabili che sono valido globali, mentre in una macro o un include file
si può dichiarare con #local variabili che sono valido solo locali. Queste variabili locali
si puòo cambiare all'interno di una macro o di un include file (per es. come un contatore in un while loop),
senza influenzare una variabile globale con lo stesso nome fuori della macro o del include file.
Variabili locali no si può 'vedere' (cioè: non essistono!) fuori della regione dove sono dichirarati!
Un esempio per l'uso di oggetti e valori definiti con "#declare ... = ":
#declare R1 = 0.25 ; // ball radius
#declare RR = 1.00 ; // ring radius
#declare Position_1 = <0,0.25,1> ;
#declare Ball_Texture =
texture{ pigment{ color rgb<1,0.65,0>}
finish { phong 1.0 }
} // end of texture
#declare Ball1 =
sphere{ <RR,0,0>,R1
texture{Ball_Texture}}
//-------------------------------------
#declare BallHalfCircle =
union{
object{Ball1 rotate <0, 0,0>}
object{Ball1 rotate <0, 20,0>}
object{Ball1 rotate <0, 40,0>}
object{Ball1 rotate <0, 60,0>}
object{Ball1 rotate <0, 80,0>}
object{Ball1 rotate <0,100,0>}
object{Ball1 rotate <0,120,0>}
object{Ball1 rotate <0,140,0>}
object{Ball1 rotate <0,160,0>}
object{Ball1 rotate <0,180,0>}
} // end of BallHalfCircle
// drawing command:
object{ BallHalfCircle
translate Position_1}
// -------------------------------- end | |
|
#macro ... #end
Ciò permette una definizione molto più flessibile per es. degli oggetti.
Per i nomi e le abbreviazioni veda il mio suggerimento a "#declare".
Qui un esempio per l'uso di "#macro":
- Un semicerchio di sfere -
#macro BallHalfCircle (R1, RR, Texture)
#local Ball1 =
sphere{ <RR,0,0>,R1 texture{Texture}}
union{
object{Ball1 rotate <0, 0,0>}
object{Ball1 rotate <0, 20,0>}
object{Ball1 rotate <0, 40,0>}
object{Ball1 rotate <0, 60,0>}
object{Ball1 rotate <0, 80,0>}
object{Ball1 rotate <0,100,0>}
object{Ball1 rotate <0,120,0>}
object{Ball1 rotate <0,140,0>}
object{Ball1 rotate <0,160,0>}
object{Ball1 rotate <0,180,0>}
} // end of BallHalfCircle
#end // ------------------ end of macro
//-------------------------------------
#declare Texture1 =
texture{ pigment{ color rgb<1,0.65,0>}
finish { phong 1.0}
}
#declare Texture2 =
texture{ pigment{ color rgb<1,0.2,0>}
finish { phong 1.0}
}
// drawing commands:
object{
BallHalfCircle(0.25, 1.00, Texture1)
translate<0,0.25,1>}
object{
BallHalfCircle(0.15, 0.50, Texture2)
translate<0,0.5,1>}
// -------------------------------- end | |
|
|
|