我正在尝试在XNA中首次制作3D游戏,我已经拥有2D和C#编码的经验,但这让我感到很沮丧。
我正在尝试在3D对象上绘制纹理(我正在Blender中工作的未完成的枪模型)模型加载,但是完全是白色(打算),现在我想在上面绘制灰色枪用这个:
private void DrawModel(Model model, Matrix world, Matrix view, Matrix projection)
{
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.TextureEnabled = true;
effect.Texture = guntexture;
effect.World = world;
effect.View = view;
effect.Projection = projection;
}
mesh.Draw();
}
}
guntexture是我正常加载的Texture2D,它基本上是一个用Paint制作的灰色方块。
问题在于,现在当我编译时,我得到了这个错误:“当前顶点声明不包括当前顶点着色器所需的所有元素.GraceCoordinate0缺失。”
更重要的是,我觉得错误是由这两个产生的:
effect.TextureEnabled = true;
effect.Texture = guntexture;
删除第一个导致游戏编译,但没有纹理。保持它并将其设置为false也是如此。我也尝试重新排序,但这不起作用,同样的事情。
请帮我理解发生了什么,纹理有问题吗?还是枪?
此外,我可以使用默认照明点亮枪而没有错误。