Bonfo
26-01-2007, 00:28
Ho postato qui perche' non so bene dove postare quando si tratta di OpenGL.
Insomma il mio problema riguarda la grafica 3D, la programmazione e sicuramente non posso postare dove si parla di DirectX :D :D
Comunque alla fine e' piu' di geometria :sofico:
Se ho postato nel posto sbagliato...MODERATORE SPOSTAMI ;)
Ecco in breve il problema. So che deve essere una cavolata, ma in questo momento non riesco ad uscirne fuori.
Voglio fare uno stupido visualizzatore di modelli 3D. Per adesso il mio modello e' un cubo :D. Voglio che quando l'utente preme SU o GIU si abbia una rotazione dell'oggetto rispetto all'asse orizzontale dello schermo, mentre se preme destra o sinistra si abbia una rotazione rispetto all'asse verticale dello schermo.
La pressione dei tasti modificano dei valri che mi rappresentano gli angoli di rotazione.
Fin qua spero di essere abbastanza chiaro...ora diventera' piu' difficile spiegarmi :p
Applicando due rotazioni in OpenGL
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(rotY, 1.0, 0.0, 0.0);
glRotatef(rotX, 0.0, 1.0, 0.0);
sia ha appunto che la prima rotazione e' introno all'asse X, ma quando poi si applica la rotazione introno all'asse Y questo fa si che l'asse X non coincida piu' con l'asse orizzonatale dello schermo, non facendo piu' la rotazione che vorrei io.
Per risolvre il problema devo semplicemente fare in modo che la prima rotazione non sia piu' intono all'asse X iniziale, ma intorno ad un asse X' che sarebbe l'asse X iniziale ruotato di -rotY.
Ora la soluzione la so, ma non riesco fare questa cosa utilizzando le funzioni OpenGL e giocando con lo stack delle matrici. :doh:
C'e' un modo con OpenGL o devo per forza implementarmi la mia classe vettore3D e pure la classe Matrice?? :help: :help:
Insomma il mio problema riguarda la grafica 3D, la programmazione e sicuramente non posso postare dove si parla di DirectX :D :D
Comunque alla fine e' piu' di geometria :sofico:
Se ho postato nel posto sbagliato...MODERATORE SPOSTAMI ;)
Ecco in breve il problema. So che deve essere una cavolata, ma in questo momento non riesco ad uscirne fuori.
Voglio fare uno stupido visualizzatore di modelli 3D. Per adesso il mio modello e' un cubo :D. Voglio che quando l'utente preme SU o GIU si abbia una rotazione dell'oggetto rispetto all'asse orizzontale dello schermo, mentre se preme destra o sinistra si abbia una rotazione rispetto all'asse verticale dello schermo.
La pressione dei tasti modificano dei valri che mi rappresentano gli angoli di rotazione.
Fin qua spero di essere abbastanza chiaro...ora diventera' piu' difficile spiegarmi :p
Applicando due rotazioni in OpenGL
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(rotY, 1.0, 0.0, 0.0);
glRotatef(rotX, 0.0, 1.0, 0.0);
sia ha appunto che la prima rotazione e' introno all'asse X, ma quando poi si applica la rotazione introno all'asse Y questo fa si che l'asse X non coincida piu' con l'asse orizzonatale dello schermo, non facendo piu' la rotazione che vorrei io.
Per risolvre il problema devo semplicemente fare in modo che la prima rotazione non sia piu' intono all'asse X iniziale, ma intorno ad un asse X' che sarebbe l'asse X iniziale ruotato di -rotY.
Ora la soluzione la so, ma non riesco fare questa cosa utilizzando le funzioni OpenGL e giocando con lo stack delle matrici. :doh:
C'e' un modo con OpenGL o devo per forza implementarmi la mia classe vettore3D e pure la classe Matrice?? :help: :help: