سؤال

وأنا باستخدام SlimDX / C # لكتابة تطبيق Direct3D. I تكوين الكاميرا حسب طريقة النص:

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;

والرسم وطريقة التناوب كلها Matrix.RotationYawPitchRoll لائق وmesh.DrawSubset(0). كل شيء آخر يبدو العادية.

ومشكلتي هي أن بلدي شبكة 3D (رقيقة مربع مربع)، عندما ننظر من جانب، والوقوف عموديا، يبدو أكثر سمكا من عندما يكون الأفقي. لقد حاولت تغيير AspectRatio إلى 1، انها أسوأ. ذلك من خلال التجربة والخطأ، اكتشفت أنه يبدو الى حد طبيعي عندما AspectRatio حوالي 2.6. لماذا هو أن وما يمكن أن يكون الخطأ؟

هل كانت مفيدة؟

المحلول

ولقد برزت هذه المشكلة والإجابة بالفعل.

ويبدو أنني لم توسيع نطاق شبكة، ولتتناسب مع نسبة الارتفاع، وأنا تطبيق Matrix.Scaling بعد Matrix.RotationYawPitchRoll. عندما تناوب على شبكة تواجه الأمام فقط وأنا أدرك أنه تبدو هي نفسها بغض النظر عن عموديا أو أفقيا، والتحجيم وتمتد أنه الجانبي لا ماثر كيف تدوير. مبادلة مصفوفة 2 لا حل مشكلتي. على أي حال شكرا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top