【问题标题】:How do I display a Milkshape model?如何显示 Milkshape 模型?
【发布时间】:2015-08-23 06:42:16
【问题描述】:

将游戏从 XNA 移植到 Monogame (WP8.1) 后,我无法显示 Milkshape 模型。请记住,此模型是在“外部”加载而不使用 Content - 因此它不是“xnb”文件,而是原始“ms3d”文件。我认为这与我的自定义效果文件无关,因为它在所有可用效果下看起来都乱七八糟。

对于 Milkshape 模型的实际渲染,我使用的是来自 http://www.codeproject.com/Articles/148034/Loading-and-rendering-Milkshape-d-models-with-ani 的库

我正在通过在库的方法中传递 Stream(使用 OpenStreamForReadAsync())而不是使用 File.Open(FileName, FileMode.Open) 函数来读取 Monogame 中的模型。

来自 XNA 的屏幕:http://i.imgur.com/ZLJHBbp.png?1

Monogame WP8.1 的屏幕:http://i.imgur.com/D8qHqm5.png?1

Monogame 的背景只是为了测试而被删除,这不是问题。为了消除可能的其他问题来源,我尝试只渲染这个单一模型 - 但它看起来仍然是错误的:http://i.imgur.com/2tHjUHl.png

【问题讨论】:

  • 也许 四年 旧的 Codeproject 库是问题所在?您是否尝试过加载简单然后逐渐更复杂的形状来测试它?

标签: c# windows-phone-8.1 monogame


【解决方案1】:

我设法通过将自定义顶点声明更改为 VertexPositionNormalTexture 来解决此问题。代码如下:

        foreach (var milkshapeGroup in Groups)
        {
            milkshapeGroup.verticesPhone = null;
            var vertList = new List<VertexPositionNormalTexture>();
            foreach (var ver in milkshapeGroup.vertices)
            {
                vertList.Add(new VertexPositionNormalTexture(ver.Position, ver.Normal, ver.texCoord1));
            }
            milkshapeGroup.verticesPhone = vertList.ToArray();
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 2020-06-10
    • 2017-11-13
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多