Frage

Ich verwende SlimDX / C # eine Direct3D-Anwendung zu schreiben. Ich baute die Kamera per Textbox Art und Weise:

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;

Die Zeichnung und Rotationsverfahren sind alle anständig Matrix.RotationYawPitchRoll und mesh.DrawSubset(0). Alles andere als normal erscheinen.

Mein Problem ist, dass mein 3D-Mesh (dünne quadratische Kasten), wenn Blick von der Seite, und vertikal stehen, erscheinen sie dicker als wenn es horizontal. Ich habe versucht, die AspectRatio bis 1 zu ändern, ist es noch schlimmer. Also durch Versuch und Irrtum, fand ich heraus, dass es viel normal aussieht, wenn die AspectRatio 2.6 ist um. Warum ist das so und was falsch sein könnte?

War es hilfreich?

Lösung

Ich habe das Problem herausgefunden und Antwort bereits.

Offenbar habe ich das Netz skaliert, und das Seitenverhältnis anzupassen, und ich gelte die Matrix.Scaling nach Matrix.RotationYawPitchRoll. Wenn ich das Netz nach vorne drehen nur mit Blick erkenne ich, dass es das gleiche, egal vertikal oder horizontal aussieht, wird die Skalierung Stretching es keine mather SIDEWAY, wie ich drehen. Tauschen Sie die 2-Matrix mein Problem nicht beheben. Danke trotzdem

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top