我有一个项目很快就要到期了,我在尝试加载我在 3D Studio Max 中制作的模型时遇到了很多问题。我制作的模型是我想要的 XNA 游戏中的地形。这是我到目前为止所做的:
方法:
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Model terrainModel;
Vector3 terrainPosition = Vector3.Zero;
Vector3 cameraPosition = new Vector3(0.0f, 60.0f, 160.0f);
Vector3 cameraLookAt = new Vector3(0.0f, 60.0f, 160.0f);
Matrix cameraProjectionMatrix;
Matrix cameraViewMatrix;
加载内容()
spriteBatch = new SpriteBatch(GraphicsDevice);
cameraViewMatrix = Matrix.CreateLookAt(
cameraPosition,
Vector3.Zero,
Vector3.Up);
cameraProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(80.0f),
graphics.GraphicsDevice.Viewport.AspectRatio,
1.0f,
1000.0f);
terrainModel = Content.Load<Model>("alphastreet");
平局(游戏时间游戏时间)
GraphicsDevice.Clear(Color.CornflowerBlue);
DrawModel(terrainModel, terrainPosition);
// TODO: Add your drawing code here
base.Draw(gameTime);
然后我想画:
void DrawModel(Model model, Vector3 modelPosition)
{
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.PreferPerPixelLighting = true;
effect.World = Matrix.CreateTranslation(modelPosition);
effect.Projection = cameraProjectionMatrix;
effect.View = cameraViewMatrix;
}
mesh.Draw();
}
}
其他一切都与 XNA 文件的外观相同。它自己的模型看起来像一条相当简单的街道。然而,在 XNA 加载模型时,它只是加载窗口中的一个大块。
我不知道我在做什么让模型像这样加载,但它让我把头发拉出来。任何帮助,将不胜感激。
另外,任何人都可以指导我进行演练/指导或创建第一人称射击相机的课程,因为那是我要去的游戏。我可能不应该选择那个,但现在改变已经太晚了,所以如果你也能在那里提供帮助,你真的会拯救我的皮肤!
谢谢,杰克!