【问题标题】:XNA 3D blender models not keeping scaleXNA 3D 搅拌机模型无法保持比例
【发布时间】:2014-01-02 23:13:10
【问题描述】:

所以我将所有模型制作为 Blender,然后使用 File ->Export 将其导出为 .fbx 格式,然后选中 XNA Strict Options。这很好用,除了当我把我的模型放在 XNA 中时,它已经沿着上下轴拉伸并且它总是相同的比例。无论我在 Blender 中缩放多少,它在游戏中的大小始终相同。有任何想法吗?另外,我不确定这是否相关,但如果我有一个包含多个部分的模型,它只会显示其中的一部分。任何帮助表示赞赏!

【问题讨论】:

    标签: c# xna models scaling blender


    【解决方案1】:

    我对 3ds max 比 blender 更熟悉,但如果这发生在 max 中,我会知道发生了什么,所以我会说它以防 Blender 以类似的方式工作。

    当您在 3D 建模应用程序中修改某些内容时(例如在特定轴上缩放模型),它实际上并没有像您想象的那样改变顶点的位置。它只创建一个可以在渲染时应用于原始顶点位置的变换矩阵,以使其显示为您期望的方式。 因此,当您将模型导入 Xna 时,您正在导入具有未缩放顶点位置的模型以及按照您期望的方式渲染模型所需的所有变换矩阵。但是您必须在您的 Xna 代码中应用这些转换,否则模型不会像在建模应用程序中那样显示。 (你遇到的问题)

    应用转换的方式是调用 Xna Model.CopyAbsoluteBoneTransformsTo(Matrix[])。确保您不要致电Model.CopyBoneTransformsTo(Matrix[]),您需要的是带有“Absolute”字样的电话。

    这是一个展示如何实现该方法的教程:http://msdn.microsoft.com/en-us/library/bb203933(v=xnagamestudio.40).aspx

    【讨论】:

    • 很抱歉打扰您,但我试过了,但给我带来了一些麻烦。球体在它的一边,视野全乱了。如果您可以查看我拥有的代码,看看我是否有任何可能有所作为的东西,那就太好了!非常感谢!链接为:dropbox.com/s/8lzynqtfs9x7ksw/3d%20test.txt
    • 您正在渲染 2d 项目(通过 spritebatch)和 3d 项目(模型)。调用 spritebatch 将影响在 3d 渲染正常工作之前必须正确重置的渲染状态。看到这个链接:blogs.msdn.com/b/shawnhar/archive/2010/06/18/…
    • 非常感谢!一段时间以来,我一直在努力让它发挥作用,但我认为我不会找到它。
    猜你喜欢
    • 2020-09-07
    • 2012-06-15
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2011-07-31
    • 2015-12-19
    • 2015-10-03
    相关资源
    最近更新 更多