• 用事实说话Silverlight5有搞头


    测试页面,需要silverlight5 beta

    https://crazylights.googlecode.com/svn/clge_publish/s5testTestPage.html

    我最关注的部分,是silverlight5中的xna,我已经使用silverlight5实现了一个spritebatch

    silverlight5 的xna,我先做了一个2D的测试。

    image,嘛,性能自然是没有原生的XNA4性能高,数据密集的操作是dotnet的死穴,罢了。

    但用这玩意来做几个2D游戏自然是不在话下。

    前景:

        似乎很多场合都可以使用sl5来解决问题,那么只要投入够大,捧场够给力,sl5也可以形成庞大的应用软件生态。

        我已经在考虑用sl5来搭建游戏开发工具和服务器管理工具。

        复杂的耗时的运算,全部留着给服务器吧。

        复杂如visual studio客户端都可以用silverlight来开发了,把编译器神马的,弄成服务器呗。

        客户端需要的所有功能,silverlight都有了。

    问题:

    出于某种目的,当然我不是很了解,sl5中的xna4 和 之前随wp7 sdk发布的xna4有一些不同。

    最大的差距莫过于没有 Effect和 数学库。

    1.没有Effect再次回到了分别设置 VertexShader和PixelShader

    2.没有数学库,好吧我自己写就是了

    3.结合生硬,线程问题

    4.RenderTarget不见了

    5.贴图设置不便

    问题比较严重的是XNA和silverlight的结合比较生硬,简简单单的绑了一个控件在那里。

    而且,最而且,最严重的情况是,没有办法自己控制绘制,只能让控件重绘,然后在控件的XNADraw事件中处理绘制。

    这只是前提,问题是这个XNADraw不在silverlight的UI线程中。

    操作silverlight的控件和鼠标事件都在UI线程中,而呈现则在另一个线程,无疑增加了复杂度。

    当然对于深谙多线程编程的我来说这不是什么问题,我只是提醒一下有志于加入silverlight5玩3d的兄弟们,线程这个环节上,比传统的客户端开发还要复杂一些。

    问题2,RenderTarget不见了,也没有Texture2D的载入方法,只有SetData or CopyFrom(silverlight的 bitmapsource),都不是什么好招。

    RT的替代方法倒是可以想象,但实在是不想提。

    CopyFrom就是一个非常糟糕的贴图初始化方式,如果你实用,一定会需要设计一个异步控制机制,而且并不容易。问题还是线程。

    虽然目前只是机械的整合了xna4,而且带来了线程的麻烦却没有给出解决方案和工具,一付你们自己看着整的架势。

    仍然是瑕不掩瑜。

  • 相关阅读:
    [bzoj4364] [IOI2014]wall砖墙
    [bzoj3064] [Tyvj 1518] CPU监控
    [bzoj3434] [WC2014]时空穿梭
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    MSSQL
  • 原文地址:https://www.cnblogs.com/crazylights/p/2045718.html
Copyright © 2020-2023  润新知