C# 具有三维模型的奇数几何体XNA+;搅拌机
好的,没有图片很难解释。我制作了一个非常有限的格洛克式搅拌机模型,底座是挤压立方体,桶体是按比例缩放的立方体。 在搅拌机中,它看起来很好: 但是,将模型导出到.fbx并将其加载到编译器后,结果如下: 我不知道到底发生了什么事。模型上的所有内容都正确地进行了UV映射,坐标也正确,只是看起来平移是。。关 以下是我的drawModel代码:C# 具有三维模型的奇数几何体XNA+;搅拌机,c#,xna,C#,Xna,好的,没有图片很难解释。我制作了一个非常有限的格洛克式搅拌机模型,底座是挤压立方体,桶体是按比例缩放的立方体。 在搅拌机中,它看起来很好: 但是,将模型导出到.fbx并将其加载到编译器后,结果如下: 我不知道到底发生了什么事。模型上的所有内容都正确地进行了UV映射,坐标也正确,只是看起来平移是。。关 以下是我的drawModel代码: private void DrawModel(Model model, Matrix world, Matrix view, Matrix projectio
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.World = world;
effect.View = view;
effect.Projection = projection;
}
mesh.Draw();
}
}
任何提示都会有帮助
编辑:应用旋转、位置和缩放后,我能够将它们放置在正确的位置,但为什么它看起来是透明的
谢谢你的帮助 启用深度缓冲区:
GraphicsDevice.DepthStencilState = DepthStencilStates.Default;
要在Xna中绘制模型,您可以按照以下步骤进行操作,即显示如何应用骨骼变换以获得正确位置的网格。发生这种情况的原因:
深度缓冲区未启用,因此当GPU先绘制桶体,然后绘制库存/手柄时,手柄将绘制在桶体顶部,即使桶体的某些部分被认为是不可见的,因为它们将被桶体隐藏
如何修复:
如其他答案所示启用深度缓冲区。和/或根据与摄影机的距离对模型中的网格进行排序,并按从近集到远集的顺序绘制tehm。现在这似乎没有什么用处,但当您开始使用透明对象时,您将看到为什么这是一件值得学习的事情。正如Nikola所提到的,在Blender的更高版本中,它们具有适当的XNA支持 以下是我在导出模型时选择的设置的屏幕截图:
您是否在搅拌机中应用了旋转/缩放/平移?您需要在导出之前执行此操作,以便导出的模型拾取新的位置/比例/方向。我认为这不是绘图问题,代码似乎正确,您在Blender中犯了错误。我添加了比例,但我认为我忽略了翻译