Voila, je veux "convertir" une scene creer avec opengl/glut en C en script povray.
Je coince au niveau de l'orientation et position de la camera dans povray.

Dans le code C, je peux obtenir la matrice modelview qui contient en principe toutes les informations de rotation, translation de la scene:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
Par example, apres quelques rotations, j'obtient la matrice suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
modelview matrix:
 a1=0.484810   a5=0.000000   a9=-0.874620    a13=0.000000
 a2=-0.383408  a6=0.898794   a10=-0.212527  a14=0.000000
 a3=0.786103   a7=0.438371   a11=0.435744   a15=-6.000000
 a4=0.000000   a8=0.000000    a12=0.000000   a16=1.000000
Pour convertir en povray, il faut avoir les vecteurs, location, direction, right et up:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
camera{ perspective
   location  <x,y,z>
   direction <x,y,z>
   right     <x,y,z>
   up        <x,y,z>
}
Je'ai cru comprendre que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
right = <a1,a2,a3>
up = <a5,a6,a7>
direction = <a9,a10,a11>
location = <a13,a14,a15>
mais si je lance povray avec ca, j'obtient cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Creating vista buffer.Slab Building Error: Cannot use non-perpendicular camera vectors with vista buffer.
En verifiant a la main, Les vecteurs <a1,a2,a3> et <a5,a6,a7> sont perpendiculaires, ainsi que <a5,a6,a7> et <a9,a10,a11>. Les autres sont non-perpendiculaires....

une idee ?

merci d'avance

Dave