Question

J'utilise SlimDX / C # pour écrire une application Direct3D. J'ai configuré la caméra comme indiqué dans la zone de texte:

private float cameraZ = 5.0f;
camera = new Camera();
camera.FieldOfView =(float)(Math.PI/2);
camera.NearPlane = 0.5f;
camera.FarPlane = 1000.0f;
camera.Location = new Vector3(0.0f, 0.0f, cameraZ);
camera.Target = Vector3.Zero;
camera.AspectRatio = (float)InitialWidth / InitialHeight;

Les méthodes de dessin et de rotation sont toutes correctes Matrix.RotationYawPitchRoll et mesh.DrawSubset (0) . Tout le reste semble normal.

Mon problème est que mon maillage 3D (maigre boîte carrée), lorsque vous regardez de côté, et de rester verticalement, il semble plus épais que lorsqu'il est horizontal. J'ai essayé de changer le AspectRatio en 1, c'est pire. Ainsi, par essais et erreurs, j’ai découvert que c’était très normal lorsque AspectRatio est d’environ 2,6. Pourquoi est-ce cela et qu'est-ce qui pourrait mal se passer?

Était-ce utile?

La solution

J'ai compris le problème et j'ai déjà répondu.

Apparemment, j’ai mis à l’échelle le maillage et pour faire correspondre le rapport d’aspect, et j’applique Matrix.Scaling après Matrix.RotationYawPitchRoll. Lorsque je fais pivoter le maillage uniquement vers l'avant, je réalise qu'il a la même apparence, que ce soit verticalement ou horizontalement, la mise à l'échelle l'étire latéralement, peu importe la façon dont je tourne. Échanger la matrice 2 résout mon problème. Merci quand même

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top