当前顶点声明不包括当前顶点着色器所需的所有元素。缺少纹理坐标0。C#
我第一次尝试在XNA制作3D游戏,我已经有了2D和C#编码的经验,但这让我有点扫兴 我正在尝试在3D对象(我正在Blender中处理的未完成枪模型)上绘制纹理,该模型加载,但完全为白色(预期),现在我想使用以下方法在枪上绘制灰色:当前顶点声明不包括当前顶点着色器所需的所有元素。缺少纹理坐标0。C#,c#,3d,xna-4.0,C#,3d,Xna 4.0,我第一次尝试在XNA制作3D游戏,我已经有了2D和C#编码的经验,但这让我有点扫兴 我正在尝试在3D对象(我正在Blender中处理的未完成枪模型)上绘制纹理,该模型加载,但完全为白色(预期),现在我想使用以下方法在枪上绘制灰色: private void DrawModel(Model model, Matrix world, Matrix view, Matrix projection) { foreach (ModelMesh mesh in model.M
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是我以正常方式加载的纹理2D,基本上是一个用油漆制作的灰色正方形
现在的问题是,当我编译时,我得到了这个错误:“当前顶点声明不包括当前顶点着色器所需的所有元素。缺少TextureCoordination 0。”
更重要的是,我觉得错误是由以下两个因素造成的:
effect.TextureEnabled = true;
effect.Texture = guntexture;
移除第一个会导致游戏编译,但没有纹理。将其保留并设置为false也会执行相同的操作。我也试着重新排序,但同样的事情也没有成功
请帮我了解发生了什么,是不是纹理有问题?还是枪
此外,我可以使用默认照明来照明枪,不会出现错误。您缺少纹理uv坐标。必须使用网格导出它们。如果它们不存在,您可以在blender中创建它们 如果没有uv坐标,请检查“混合器纹理教程”
这显示了如何在xna中使用纹理的基本效果I UV映射它,现在问题解决了,谢谢!