J'ai un modèle 3D (opengl ES 1.1 iPhone sdk v3.0) em> qui est un peu complexe ( c'est-à-dire des milliers de sommets et faces em>) et je voudrais Faites pivoter ce modèle autour de l'axe des Y ou à proximité du centre du modèle. Le problème est que le glrotate tourne mon modèle autour d'un point à / près du centre la question: strong>
est là un moyen facile de changer le centre de rotation dans OpenGL? em> p> p>
3 Réponses :
Bien sûr. Traduisez l'objet vers le bas. Puis faites-le pivoter. P>
Je suis incapable de ré-positionnez le modèle en raison de contraintes dans le jeu. Donc, je ne peux pas traduire. Je vais mettre à jour avec une source dans une seconde ..
Traduisez-le de sorte que le point que vous souhaitez faire pivoter est à l'origine, puis faites-la tourner, puis la traduisez-la à l'emplacement que vous le souhaitez.
@John, cela le fera orbiter la nouvelle origine, pas tourner autour de "lui-même" (pensez année au lieu de la journée).
Traduire >> Tourner >> Traduire le dos Travaillé. Merci!
Ne va pas faire semblant de comprendre les maths ... mais votre solution m'a aidé @rexonronoides
Vous devez utiliser votre API modèle pour modifier le modèle em> strong> origine. Si vous pouviez dire lequel vous utilisez-vous, peut-être que je pourrais aider d'autres. P>
Si vous avez accès à un logiciel pouvant éditer votre modèle, vous pouvez corriger cela directement dans le fichier de modèle et supprimer tous les hacks de votre code. P>
Il convient de rappeler que toutes les opérations de OpenGL sont effectuées par rapport à l'origine. Vous ne pouvez pas «changer le centre de rotation dans OpenGL». Vous déplacez le monde par rapport à cette origine. P>
Son parle du centre de rotation d'un maillage, vous pouvez certainement traduire cela puis faire pivoter autour de la nouvelle "origine" du maillage. (voir réponse acceptée)
La réponse acceptée est de savoir traduire par rapport à l'origine mondiale, tournez puis traduisez ensuite. Exactement ce que je disais. Si vous ne comprenez pas comment OpenGL fonctionne, je ne peux pas vous aider.
Pourriez-vous également nous montrer le code qui dessine la voiture?