Bonjour,
Dans mon application je génère des objets par révolution, et je voudrais pouvoir par la suite les placer à des endroits précis du monde 3D. Ces endroits peuvent changer évidemment.
J'ai regardé du côté des matrices et j'ai cherché sur le web, mais je n'arrive pas à placer les objets ET effectuer des mouvements de caméra. C'est soit l'un soit l'autre. Est-ce que quelqu'un a trouvé un article ou un lien intéressant et assez complet sur le sujet? Ou quelqu'un saurait-il quelle technique il faut employer pour parvenir au résultat voulu?
merci d'avance pour vos réponses.
PS: Je développe sous C# avec managed DirectX
Code pour placer la caméra:
Code pour placer l'objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 m_device.Transform.World = Matrix.RotationYawPitchRoll(anglex, angley, 0); m_device.Transform.View = Matrix.LookAtLH(new Vector3(0, 0, -30), new Vector3(0, 0, 0), new Vector3(0, 1, 0)); m_device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4.0F, 1.55F, 0.2F, 1000.0F);
Je place d'abord la caméra, puis l'objet pour le moment. Le résultat est que la vue reste fixe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 m_matpos = Matrix.Translation(pObj3d.Position); m_matrot = Matrix.RotationYawPitchRoll(pObj3d.Rotation.X, pObj3d.Rotation.Y, pObj3d.Rotation.Z); m_matres = m_matpos * m_matrot; m_device.SetTransform(TransformType.World, m_matres);
Partager