[DirectX] UpVector

Le côté programmation du développement d'un jeu vidéo.

UpVector

Messagepar Skurcey » 24 Mar 2006, 15:28

Je n'arrive pas a creer une camera valable. Quand j arrive a 90° (en montant) et que je continue a monter avec la souris l'angle de la camera redescend jusque -90°. mettre le UpVector a (0,-1,0) ne marche pas. je ne comprend pas pourquoi. Une explication? merci
Avatar de l’utilisateur
Skurcey
Hello World, I'm new !
 
Messages: 123
Inscription: 14 Avr 2005, 19:31

Messagepar Lenolian » 24 Mar 2006, 15:34

J'avoue que tu n'es pas très explicite. Est-ce que tu peut poster le code incriminé?

Comment gère tu tes angles : matrices ou quaternions ?
J'ai toujours raison, même quand j'ai tort car alors j'ai raison d'avoir tort.
Avatar de l’utilisateur
Lenolian
Hello World, I'm new !
 
Messages: 799
Inscription: 10 Avr 2005, 16:17
Localisation: Toulouse

Messagepar Skurcey » 25 Mar 2006, 01:53

[code]
_Lookat._position.X = (float)(_Position.PositionX + _radius * Math.Sin(_AngleY * Math.PI / 180));
_Lookat._position.Z = (float)(_Position.PositionZ + _radius * Math.Cos(_AngleY * Math.PI / 180));
_Lookat._position.Y = (float)(_Position.PositionY + _radius * Math.Sin(_AngleX * Math.PI / 180));
[code]

Je les calcules "a l'ancienne" si je peux me permetre (dsl). J augmente l'angle au fur et a mesure avec la souris...
Avatar de l’utilisateur
Skurcey
Hello World, I'm new !
 
Messages: 123
Inscription: 14 Avr 2005, 19:31

Messagepar Skurcey » 26 Mar 2006, 08:27

Okay, j ai finnis par trouver (apres avoir passer 2 jours a jouer, lol)

_ViewMatrix = Matrix.LookAtLH(_Position._position, _Lookat._position, _UpVector._position);


_ViewMatrix.Multiply(Matrix.RotationY(-RadY));
_ViewMatrix.Multiply(Matrix.RotationX(-RadX));
Avatar de l’utilisateur
Skurcey
Hello World, I'm new !
 
Messages: 123
Inscription: 14 Avr 2005, 19:31


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités

cron