![]() |
CAMERA Documentation
[revenir à la page d'accueil] |
extern void camera_set_projection_opengl(CAMERA *camera);
récupère la projection openGL
en cours d'utilisation et l'utilise pour initialiser l'objet CAMERA.extern void camera_set_pos(CAMERA *camera, float x, float y, float z);
indique la position de la camera dans la
scène (facultatif lors de l'utilisation de
camera_set_projection_opengl()).extern void camera_sample_pixel(CAMERA *camera, float x, float y, MODEL *model, RAY *ray);
calcule et renvoie un rayon passant par le pixel de coordonnées x et y.extern void camera_get_viewport(CAMERA *camera, int viewport[4]);
renvoie la partie de l'image utilisée pour générer les
rayons. Le rectangle correspondant est décrit par les coordonnées d'un
sommet, ainsi que sa largeur et sa hauteur : MODEL *model= render_get_model(render);
CAMERA *camera= render_get_camera(render);
/* recupere la projection openGL actuelle */
camera_set_projection_opengl(camera);
/* recupere le plan image :
viewport[0]= xmin, [1]= ymin, [2]= largeur, [3]= hauteur */
camera_get_viewport(camera, viewport);
/* parcours l'image et genere un rayon par pixel */
for(y= 0; y < viewport[3]; y++)
{
for(x= 0; x < viewport[2]; x++)
{
camera_sample_pixel(camera,
(float) x + (float) viewport[0],
(float) y + (float) viewport[1],
model, &ray);
/* faire quelquechose avec le rayon */
...
}
}