نسبة Direct3D كاميرا الجانب / مشكلة التوسع
سؤال
وأنا باستخدام 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 لا حل مشكلتي. على أي حال شكرا