conversion opengl -> povray
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:
1 2 3
|
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview); |
Par example, apres quelques rotations, j'obtient la matrice suivante:
Code:
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:
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:
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:
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