作者erspicu (.)
看板C_Sharp
标题[心得] 看看你的显卡和电脑够不够力
时间Wed Oct 21 00:39:52 2015
https://dl.dropboxusercontent.com/u/61164954/project/RenderingTest/index.html
这是C#结合 GDI+ , Native GDI , DirectX
三者rendering 2D画面速度的比较...
原本还要加上 opengl版本 ,不过目前 C#上比较完善高效率的opengl wrapper Opentk
显示到panel上点问题,我try不出来.... 不然就是得用它自己的显示元件,
不然就是用它自己的game window...所以就不加入测试了
(c#有几个大小款opengl wrapper,但完成度.使用方便性.效能状况都很不明...
比较可靠的为opentk,当然opentk不只是针对opengl...
目前opentk似乎还没办法像前三者自己显示到特定UI元件上)
每台电脑这三者高低差异都满大的...很奇怪的是 GDI+ 在某些电脑 800 *600
状态下会跟Native GDI差不多甚至更快....某些Native GDI是遥遥领先GDI+,
当然最快的就是DirectX.... 不过可能是我sample的写法不是很正确,
某些电脑跑DirectX sample会有memory leak问题.....
GDI跟GDI+都得使用bitmap特定元件
directx可以存取记忆体中的array
c#的bitmap元件set或是get pixel都很慢...除非以指标方式操作
最方便的应该还是直接用array来当成为bitmap画面资料最快...
这几个测试方式都是以已经有特定的bitmap资料或是画面array,
建立特定物建去生成画面,所以严格说起来这不单单是测试显示时间,
还包括处理显示之前的过程,但不确定这样的测试观念正不正确...
或是还要补充啥的....
ps.这些sample是网路上找,整理,改写出来的...给需要的人参考
PS.想抱怨一下...初入directx,发现仅止於显示一张静态画面都有一堆前置作业..
网路上c# invoke directx的教学资源也少....这sample sharpdx的部分,
花好久时间才摸出来.....sharpdx官方的sample层层一层包一层,雾里看花,
总算是拆解出来,最简化步骤...方便人家入门的教学sample搞成这样不是很方便阿...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.70.74.143
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1445359195.A.60B.html
※ 编辑: erspicu (61.70.74.143), 10/21/2015 00:44:30
※ 编辑: erspicu (61.70.74.143), 10/21/2015 00:48:42
1F:推 KanoLoa: 先推 10/21 21:16
2F:推 name2name2: 推 10/25 21:10