c'est quelque chose que je ne comprends pas sur la transformation (mailles). S'il vous plaît jeter un oeil à mon premier code (qui est en fonction Render()):Basculer entre les objets actifs - comprendre la transformation/voir
foreach (GeometricObject obj in this.objects)
{
if (obj != this.activeObject)
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Yellow, device);
}
else
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Green, device);
obj.GeometryMatrix.Translate(this.move);
}
device.Transform.World = obj.GeometryMatrix;
obj.Mesh.DrawSubset(0);
}
Explication: J'ai quelques gometriObjects jaunes (mailles) et un ActiveObject vert (je peux basculer entre eux par clavier 1-4). 'move' est un vecteur que je change après chaque flèche sélectionnée sur le clavier (donc je peux déplacer les objets actifs).
MAIS ça ne fonctionne pas comme je le voulais. ... si je change la position de l'un de mes objets ... puis après avoir basculé sur l'autre (en changeant activeObject) j'ai l'autre vue sur l'écran (après tous les commutateurs ... tous les objets sont au même endroit que le écran;/). Pourquoi est-ce que ce n'est pas la même vue pour tout le temps? Je pense que ... il se doit, parce que j'ai la même vue setted:
device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f, 2.0f, -25.0f), // Camera position
new Vector3(0.0f, 0.0f, 0.0f), // Look-at point
new Vector3(0.0f, 1.0f, 0.0f)); // Up vector
Alors, quel est mon problème? Des idées:)? Aha ... le problème n'est pas lié à cette fonction changeMeshColor ... j'ai vérifié.
J'ai lu ceci plusieurs fois et je ne sais toujours pas quelle est votre question. AFAICT le fait que votre matrice de vue ne change jamais mais que vous pouvez changer la position de vos objets signifie que la caméra ne regarde peut-être pas un objet donné. – Goz