用事实说话-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,而且带来了线程的麻烦却没有给出解决方案和工具,一付你们自己看着整的架势。

仍然是瑕不掩瑜。

posted @   疯光无线  阅读(1490)  评论(4编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示