硬件加速一切,Win8图像编程
博客原文,
阅读小结,
Windows7之前,我们采用GDI编程实现图形图像,用GDI+用于需要绘制高清晰图形的场合。GDI、GDI+并没有硬件加速,在动画程序中,CPU占用高不说,FPS偏低导致不连贯。这时候,开发游戏程序需要采用directx编程。
Windows7中,微软新增了两个组件到directx。Direct2D、DirectWrite。它们不仅性能大幅提高,同时提供高质量的2D绘制。
在win8,所有winRT应用程序采用了硬件加速。比如IE10下的网页展示,HTML5应用。
高质量动画的标准
- 帧速率 FPS,也就是每秒多少帧数。很多液晶屏的刷新率是60,如果程序达到60FPS,那效果就相当平滑的了。
- 丢帧数量。连续播放,尽量少于1/60比例的丢帧。
- 第一帧渲染时间。越快越好。让用户界面得到快速响应。
- 内存消耗。如果显示占用大量内存,那程序性能会变差。特别多个应用同时运行的时候,性能影响明显。
- CPU占用。 平衡利用GPU计算能力,留出CPU用于应用能力。
Win8
Metro style应用基于directx上层构建。使得无论哪种语言开发的应用,都可以获取directx的强力性能。
用Direct2D、Direct3D创建满意的界面体验。
Direct2D
- 硬件加速支持
- 简化编程
- 大量内置效果
- 支持大尺寸图片,每个通道高达32位
- 自定义效果可以与内置效果结合
WIN8基于Direct3D 11.1,微软提供了新的图形硬件功能,TIR(目标独立光栅化)。TIR使得Direct2D在生成分割指令时尽量少占用CPU,充分利用显卡GPU性能,为平板节约cpu耗电,或为桌面程序提供高性能游戏体验。
从微软提供的一视频上看,win8图形加速性能几乎是win7的两倍