J'essaie d'apprendre Three.js, en étant nouveau à ces technologies. J'ai réalisé un soleil avec la planète en orbite, avec la lune en orbite autour de la planète. Ce qui me préoccupe, c'est de faire ce que j'ai jusqu'ici, je dois faire beaucoup d'objets et effectuer pas mal de calculs pendant le rendu des boucles.Planète animée en orbite autour de son parent indépendant sur l'état de rotation du parent
1.: codes sources
WestLangley nous a fourni tripote présentant problème plus facile à comprendre la manière si:
- this fiddle présente plus comme il est à la recherche en ce moment - la planète a son parent à l'intérieur soleil, et la rotation de ce parent fera l'orbite de la planète. Mais avec un objet supplémentaire par planète/lune, theres un problème que la rotation parent tourne la planète en place aussi, pendant
updateMatrixWorld
la méthode Object3D. Donc, il va tourner un peu plus vite que vous pouvez supposer en regardantmesh2.rotateOnAxis(AXIS, 0.01);
bit. - this fiddle montre une approche sans parent. Le cas est, j'essaie de trouver moyen, où je peux configurer les positions de la planète/tours-vitesse/orbit-vitesse au démarrage du système et de simplement le nourrir avec l'heure du serveur, de sorte qu'il se sent synchronisé entre les joueurs au même endroit .
3. Question se
Pour autant que je voyageais à travers les manuels, je trouve qu'il peut y avoir une possibilité d'effectuer une telle animation en utilisant la logique de la matrice Three.js. Je suis prêt à réduire l'utilisation de ::animate()
objets intérieurs autant que possible (peut-être en remplaçant les méthodes updateMatrix
et updateMatrixWorld
). Malheureusement, mon anglais et mes maths ne sont pas assez bons pour comprendre, ce qui se passe avec ces matrices. Si quelqu'un peut m'aider, j'apprécierais vraiment ceci.
4. Les travaux actuels progrès
violon de travail est here. J'ai été capable de créer une planète et j'ai presque tout ce que je veux. Un problème de gauche est que, aimerait planer en orbite autour de degrés plus aléatoires.
[Ce violon] (http://jsfiddle.net/t83pzoj2/) montre comment trois.js est destiné à être utilisé. Voir [ce post] (http://stackoverflow.com/questions/11966779/learning-webgl-and-three-js/11970687#11970687) pour certaines ressources mathématiques. – WestLangley
@WestLangley cela ressemble exactement à ce que j'ai en ce moment. Le problème est que la rotation du pivot le long de la position changeante du maillage2 change sa rotation locale en conséquence de 'updateWorldMatrix' Je suis disposé à contrôler sa vitesse de rotation séparément et à éviter d'utiliser des éléments Object3D vides comme parents. Est-ce au moins possible? – yergo
Est-ce ce que vous voulez dire - sans pivots? http://jsfiddle.net/t83pzoj2/4/ – WestLangley