GPU硬件加速下Silverlight超性能动画实现(上)

Silverlight3发布时,我和朋友都为其新增的GPU硬件加速功能激动不已,于是开始了肆无忌惮的连夜测试 ,可结果却实在让我们大失所望。是的,不论怎样修改代码都无法感觉到明显的性能提升。接下来的日子里, GPU这个词渐渐的远离了我的脑海。直至几天前,在与一位朋友交流后又再次让我萌生去测试GPU硬件加速在 Silverlight4中效果的想法。真乃不测不知道,一测吓一跳。在最近Silverlight贬低声此起彼伏的日子里, 我相信这篇文章及测试结果必将成为Silverlight开发中最为强劲的春哥!没错,信则永生!

既然要用GPU硬件加速,那么我们首先得知道它的定义原理及作用,大家可以参考MSDN的相关介绍,下面是 我精简的核心内容:

GPU硬件加速是使用合成缓存将可视元素或元素的可视化树缓存为位图图面的行为。这可能为某些方案带来 重大的性能改进。使用缓存合成,您可以在可视元素第一次呈现之后,将其缓存为位图。在将某个对象或对象 树缓存为位图之后,当应用程序刷新时,它不再经过呈现阶段,而是只呈现缓存的位图。此类缓存位图交换可 以充分利用用户 GPU 中提供的硬件加速功能,这种方法会大大改进某些方案的性能。

接下来,要启动Silverlight中的GPU硬件加速首先必须进行参数设置:

1)在Silverlight页面对象中加入参数<param name="EnableGPUAcceleration" value="true" />

2)为需要使用GPU加速的Uelement对象设置CacheMode值,比如:

Xaml:

<MediaElement>
   <MediaElement.CacheMode>
     <BitmapCache RenderAtScale="4"/>
   </ MediaElement.CacheMode>
</MediaElement>

或C#:

MediaElement mediaElement = new MediaElement () {CacheMode = new BitmapCache()  { RenderAtScale = 4 } };

其中BitmapCache缓存中的RenderAtScale指明将对象呈现为已缓存位图时所使用的缩放比例。如果您将其 指定为负数,则会引发错误。默认值为1。注意:RenderAtScale越小CPU消耗越少,内存占用越少,即性能越 好!另外,RenderAtScale在介于0到1之间时,位图呈现为模糊状态。或许有朋友会问:游戏开发中我们是否 能将之设置为0.8左右,不仅能模糊边缘且不失太多像素,又能提高性能,当然这还有待进一步测试。

最后,我们还得了解GPU硬件加速所适用的范围。针对目前的Silverlight4版本,我们可以对Transform、 RectangleGeometry 、Opacity、Visibility、Projection、DeepZoom等对象进行GPU硬件加速。其中从 Transform派生的对象包含:RotateTransform、ScaleTransform、SkewTransform、TranslateTransform、 MatrixTransform、TransformGroup;而Projection (三维透视) 派生的对象包含PlaneProjection和 Matrix3Dprojection。

值得一提的是,Silverlight对Projection和DeepZoom的GPU硬件加速支持是在4版本中才新增的,从这点我 们可以预测到Siverlight未来的发展趋势:Web3D硬件加速将在Silverlight后续版本中得到完美支持!

以上是关于Silverlight中GPU硬件加速方面的理论精华浓缩,接下来是我专门为测试Silverligh4中GPU硬 件加速功能所编写的Demo与测评,我相信这才是本文最激动人心时刻的开始:

Demo在线演示地址:http://silverfuture.cn/Demos/demo1.html

下面是我的测试环境及结果---------------------------------------

机器配置:

时间: 2024-08-03 17:56:11

GPU硬件加速下Silverlight超性能动画实现(上)的相关文章

GPU硬件加速下Silverlight超性能动画实现(下)

通过上一节的测评,相信大家已经对Silverlight中利用GPU硬件加速来提升性能有了深刻印象. Silverlight游戏开发中,我们需要综合运用多种形式的动画及相关图形处理技巧,此时如果能充分合理的利 用GPU硬件加速功能,配合上性价比最高的功能实现方式,这将为大家打造帝王级高性能RIA网页游戏奠定坚实 的基础. 游戏中的主角是精灵,出现得最多最频繁的同样是精灵:于是,我在上一节的基础上重新修改并制作了全 新的Demo.该Demo中集合了目前主流的Silverlight游戏精灵配置环境,以

使用IE9时出现蓝屏或死机通过禁用GPU硬件加速

  IE9出现蓝屏或死机的情况目前有两个解决方法:删除KB2670838更新及禁用IE9 GPU硬件加速,两者的具体操作过程如下,有类似问题的朋友可以参考下哈,希望对大家有所帮助 目前解决方法有两个,一个是删除KB2670838更新,另外一个是暂时关闭IE9的GPU硬件加速功能,然后等待微软发布彻底的解决方案. 建议使用第二方法,因为如果你想要升级到IE10的话,KB2670838为必须安装的补丁. 删除KB2670838更新的操作步骤: 打开"控制面板"下的"卸载程序&qu

GPU硬件加速,享受酣畅淋漓的上网体验

  现在科技不断发展,很多电脑软件.图形处理和一些网站都增强了用户体验,但是,我们想要酣畅淋漓的体验这种感觉,就必须开启GPU硬件加速,否则是看不到的.下面我就告诉大家如何开启. 什么是GPU硬件加速图形处理芯片.是显示卡的"心脏",也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据.2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为"软加速".3D显示芯片是将三维图像和特效处理功能集中在显示芯片

IE9浏览器无法开启GPU硬件加速?

GPU硬件加速作为IE9浏览器最吸引眼球的功能,各大浏览器也相续的引进这个功能.很多用户也想体验一下这个功能能够给浏览器性能带来多大的提升.但安装了IE9 beta版以后发现无法开启GPU硬件加速,"使用软件呈现,而不使用GPU呈现"的选装怎么都无法取消.该用户的计算机显卡是Intel GMA 3150,使用Windows 7自带的驱动不行,到Intel官网下载使用最新驱动也不行,这个是什么原因呢? 要想体验IE9浏览器的这个功能,对计算机硬件也有一定要求的,IE9的硬件加速需要支持D

Google 确认 Chrome 即将支持 GPU 硬件加速

Chromium Blog 的最新文章确认了 Chrome 即将支持 GPU 硬件加速,未来开发者可以将复杂页面的渲染工作交给强大的电脑显卡来进行.这其实已经是一个现代浏览器的趋势,Microsoft 的 IE9 已经确认将支持 GPU 硬件加速,而 Firefox 最新的 4.0 Beta for Windows 已经启用了这个功能的支持.   最近的 Chromium 已经装备了 GPU 硬件加速功能,需要用 --enable-accelerated-compositing 这个命令行参数来

Spark Summit EU重头戏:TensorFlow、结构化的流和GPU硬件加速

Spark Summit EU 2016 上星期在布鲁塞尔召开,其中大会中的重头戏是Apache Spark 集成深度学习库 TensorFlow.使用结构化的流进行在线学习和GPU硬件加速. 大会第一日最具特色的是预览了由Spark 2.0引入的一个创新.该API是针对DataFrames和Datasets简化了的接口,使其更容易去开发大数据应用.这个第二代的 Tungsten 引擎通过把MPP数据库的理念应用到数据处理查询使处理更接近于硬件了:针对中间数据和以节省空间的面向列方式保存在内存中

为什么IE9浏览器无法开启GPU硬件加速?

因为在Bing中早已支持 IE9 Beta 中的"网站锁定"功能,如果大家将Bing网站锁定为任务栏按钮,就可以发现IE9对必应的支持度有多高了. 首先是任务栏的图标,三大搜索引擎.Bing在按钮图标方面也跟Windows 7结合的很好,看上去要比其他2大搜索的按钮图标都美观. 三大搜索引擎按钮图标对比 Bing默认已经自定义了"跳转列表 Jump Lists",其跳转列表包括天气.财经.新闻.地图和旅行: 必应跳转列表 Jump Lists 不过这几大 Jumpl

Android硬件加速

概述 从Android 3.0开始(API L11),Android开始全面使用硬件加速来进行2D渲染,硬件加速是指Android中在View上进行绘制的图形图像都使用GPU来进行绘制,使用硬件加速,在大部分时候都让绘制更加流畅,但付出的代价是需要消耗更多的内存资源. 硬件加速在API L14之上是默认开启的,对于基本的View绘制,通过硬件加速可以增加绘图的流程性,但是要注意的是,并不是所有的2D图形绘制API都支持硬件加速. 通过开发者选项中的"强制进行GPU渲染",用户可以为全局

开启IE10硬件加速 释放电脑潜能

  你知道吗?正常人的脑容量约=1500亿台80G的电脑,记忆量约=6亿本书的知识量约=大型电脑储存量的120万倍,而日常生活中我们只用了不到1%的脑力.电脑也一样,大多数浏览器做为电脑的"四肢",却只用了不到10%的电脑运算能力.IE10支持GPU硬件加速,深度兼容Win8系统,快来释放你的电脑潜能吧! 开启方法很简单,打开桌面版IE10,单击界面右上角的"工具"图标,选择"Internet 选项"; 切换至"高级"选项卡,