我正在XNA中为正面投影绘制一些几何体用于侧面滚轮式游戏。我想要做的是在透视投影中渲染背景几何。
然而,我显然需要背景几何与前景“对齐”,即如果在透视中我将3D模型的位置设置为300,30然后在正交投影中它排列为300,30。
有没有办法可以做到这一点?我一直在调查世界屏幕投影,但不确定我是否在正确的轨道上。
感谢您的帮助!
答案 0 :(得分:1)
答案 1 :(得分:1)
乔尔是对的,如果你能把2d和3d结合起来,那将是理想的选择。 2d用作正交视图,3d用于透视图。 使用多个2d精灵进行2d渲染以取代正交视图。 关于几何,你最好选择使用Matrix结构的辅助函数。比如,
Matrix view = Matrix.CreatePerspective(.......)
和其他类似的静态辅助函数....
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.matrix_members.aspx
此外,通过缩放,旋转,平移来转换模型,可以通过矩阵结构本身来实现。
Matrix oldWorld = Matrix.CreateWorld(...);
// something happens ; next update
Matrix scaleMat = Matrix.CreateScale(...);
Matrix rotXMat = Matrix.CreateRotationX(...);
Matrix rotYMat = Matrix.CreateRotationY(...);
Matrix rotZMat = Matrix.CreateRotationZ(...);
Matrix translationMat = Matrix.CreateTranslation(...);
Matrix newWorldMat = scaleMat*rotXMat*rotYMat*rotZMat*translationMat*oldWorldMat;