Comment puis-je tourner autour d'une scène en webgl sur mousedrag (imitant un mouvement de caméra autour d'une position)
Bon,
Donc j'ai lu depuis quelques heures et j'ai réussi à obtenir de la souris faites glisser pour travailler sur l'axe des x à l'aide de la matrice de calcul, mais pas de chance avec l'axe y:
où
newX = nouvelle souris X coord
previousX = souris X coord lors de la dernière mise à jour
position = position de la caméra
mvMatrix = modèle de matrice de vue ou de la 'matrice'
angle = 0.01*(newX-previousX);
rM = mat4.create();
mat4.identity(rM);
rM[0] = Math.cos(angle);
rM[2] = Math.sin(angle);
rM[8] = -Math.sin(angle);
rM[10] = Math.cos(angle);
mat4.multiplyVec3(
rM,
position,
position
)
*Notez que ce n'utilise le glMatrix Bibliothèque (http://code.google.com/p/glmatrix/)
Et aussi dans le but de toujours faire face à la position 0,0,0
mat4.lookAt(
position,
vec3.create([0, 0, 0]),
vec3.create([position[0], position[1]+1, position[2]]),
mvMatrix
);
J'ai eu la matrice de http://en.wikipedia.org/wiki/Rotation_matrix
J'ai utilisé la matrice dans "basic rotations" et Ry
Je suis sûr que cela a été fait avant, toute aide serait aprécié.
Acclamations, Josh
OriginalL'auteur Josh Mc | 2011-04-01
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à mon WebGL leçon 11 -- il fait pivoter l'objet dans le monde, au lieu de la caméra, mais vous devez juste être capable de changer l'ordre dans lequel vous multipliez newRotationMatrix et moonRotationMatrix pour renverser cette tendance.
Thomas malheureusement le lien est mort, pourriez-vous s'il vous plaît mettre à jour la référence?
OriginalL'auteur Giles Thomas
En supposant que vous voulez un déplacement libre de la caméra, avec le Z-axe vertical de chaque image, vous pouvez faire quelque chose comme ceci:
Où degToRad transforme des degrés en radians. Passer ensuite le modelViewMatrix et de la matrice de projection pour le vertex shader, qui peut l'utiliser:
OriginalL'auteur Roderick