Home
- POV-Ray Tutorials
Camera + Luce
in POV-Ray
Indice del contenuto
Tipi di sorgenti di luce:
puntiforme
spotlight
cylindrico,
parallel,
area_light, ombre diffuse
Luce - le specialità:
light_source visible
shadowless
projected_through
Fading, attenuazione
Tipi di Camera:
perspective camera
ultra_wide_angle
orthographic camera
cylindrical camera
spherical camera
fisheye camera
panoramic camera
omnimax camera
Camera - le specialità:
Aspect ratio
Focal blur
La camera perturbata
Prospettiva architettonica
Mostrare e nascondere:
no_shadow
no_reflection
no_image
no_body
|
|
Camera per la prospettiva architettonica
Una camera speciale di tipo 'perspective' per eliminare le linee cadenti,
usando uno scorrimento elastico.
Simulazione di decentramento della lente sull'asse verticale verso l'alto ou verso il basso,
come con un camera a banco ottico o
una camera con un obiettivo decentrabile (perspective control, shift lens),
quasi obligatorio per la fotografia architettonica.
|
|
Per confronto:
La camera prospettiva standard
Il tipo 'perspective' della camera (POV-Ray default):
#declare Camera_Location = <0.0,1.6,-5.0>;
#declare Camera_Look_At = <0.0,4.0, 0.0>;
#declare Camera_Angle = 45; |
camera{ //perspective //(optional, default)
location Camera_Location
look_at Camera_Look_At
angle Camera_Angle
right x*image_width/image_height
} // ------------------------------ |
|
La camera 'perspective' default.
|
Vista classica prospettiva
con 3 punti di fuga
|
|
Come eliminare le linee cadenti:
La camera per
la prospettiva architettonica
Per una camera di tipo 'perspective'
con uno scorrimento elastico verso la direzione y,
dobbiamo dichiarare i valori seguenti:
Camera_Location, Camera_Look_At, Camera_Angle
#declare Camera_Location = <0.0,1.6,-5.0>;
#declare Camera_Look_At = <0.0,4.0, 0.0>;
#declare Camera_Angle = 45; |
Poi dobbiamo calcolare alcuni valori aggiuntivi, e la 'camera' è definito come segue:
|
Camera per prospettiva architettonica
|
Prospettiva architettonica
con 2 punti di fuga
|
#include "transforms.inc"
#declare Cam_V = Camera_Look_At - Camera_Location;
#declare Cam_Ho = sqrt(pow(Cam_V.x,2)+pow(Cam_V.z ,2));
#declare Cam_Y = Camera_Look_At.y - Camera_Location.y;
//--------------------------------------------------//
camera{ angle Camera_Angle
right x*image_width/image_height
location<0,Camera_Look_At.y,-Cam_Ho>
matrix<1,0,0, 0,1,0, 0,Cam_Y/Cam_Ho,1, 0,0,0>
Reorient_Trans(z,<Cam_V.x,0,Cam_V.z>)
translate<Camera_Look_At.x,0,Camera_Look_At.z>
} //------------------------------------------// |
|
Nota: Con questa fotocamera, si ottiene
questo messaggio di avviso in giallo:
// Parse warning: Camera vectors are not perpendicular.
Making look_at the last statement may help.
|
Dobbiamo ignorarlo! Non c'è bisogno di preoccuparsi, funziona ancora!
Certamente: il vettore 'up' non è perpendicolare al vettore direzione della 'camera',
ma con un obiettivo sfollati parallelamente (lens shift) deve essere così!
|
|