首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Short2可以在WP7上用于顶点位置吗?

Short2可以在WP7上用于顶点位置吗?
EN

Stack Overflow用户
提问于 2012-06-08 07:48:37
回答 1查看 96关注 0票数 0

对于顶点数据中的(x,y)位置,我在使用Short2时遇到了问题。这是我的顶点结构:

代码语言:javascript
运行
复制
struct VertexPositionShort : IVertexType
{
    private static VertexElement[]
        vertexElements = new VertexElement[]
        {
            new VertexElement(0, VertexElementFormat.Short2, VertexElementUsage.Position, 0),
        };
    private static VertexDeclaration
        vertexDeclaration = new VertexDeclaration(vertexElements);

    public Short2
        Position;


    public static VertexDeclaration Declaration
    {
        get { return new VertexDeclaration(vertexElements); }
    }

    VertexDeclaration IVertexType.VertexDeclaration
    {
        get { return new VertexDeclaration(vertexElements); }
    }
}

使用WP7仿真器,如果我使用这个结构,就不会绘制任何东西--没有工件,什么都没有!但是,如果我使用相同的结构,其中Vector2替换了Short2结构,那么一切都可以完美地工作。

我发现这是仿真器特有的问题:“在Windows Phone仿真器中,SkinnedEffect骨骼索引通道必须指定为整数顶点元素格式之一- Byte4、Short2或Short4。这组相同的整数数据格式不能用于其他着色器输入通道,如仿真器上的颜色、位置和纹理坐标。”(http://www.softpedia.com/progChangelog/Windows-Phone-Developer-Tools-Changelog-154611.html)然而,这是从2010年7月开始的,我以为这个限制现在已经解决了……?不幸的是,我没有可以测试的设备。

有没有人可以确认这仍然是模拟器中的一个问题,或者给我指出为什么这不起作用的另一个原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 21:00:33

由Shawn Hargreaves先生解决:“你可以在顶点数据中使用Short2,但这是一个整数类型,所以你的顶点着色器必须被写成接受整数而不是浮点数输入。BasicEffect接受浮点数,所以Short2不能使用它。NormalizedShort2可能是更好的选择?”

http://blogs.msdn.com/b/shawnhar/archive/2010/11/19/compressed-vertex-data.aspx

我可以确认,无论是在WP7模拟器中还是在真实设备上,NormalizedShort2确实可以处理位置数据。

谢谢,肖恩!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10941388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档