社区
图形处理/算法
帖子详情
Windows下 提高绘图速度的方法
Tinary3v0
2011-11-30 01:28:59
加精
由于我需要在1024* 768这样大的窗口里面,进行每秒中上百次的绘图,现在采用GDI与GDI+混合的方式,当然是为了达到一定的效果。
现在绘图速度很慢,但是由于时间上的要求,这个问题必须解决。
不知道大家有什么好方法没?
我在考虑是不是在平面里面用GDI或者GDI+不合适。
如果仅仅为了仿真平面效果,采用OpenGL其他的三维方式能不能实现?
那个效率相对来说比较高?
另外,有没有让自己的程序直接占用绝大部分CPU资源的方法(开机只运行这一个程序)?
...全文
6196
193
打赏
收藏
Windows下 提高绘图速度的方法
由于我需要在1024* 768这样大的窗口里面,进行每秒中上百次的绘图,现在采用GDI与GDI+混合的方式,当然是为了达到一定的效果。 现在绘图速度很慢,但是由于时间上的要求,这个问题必须解决。 不知道大家有什么好方法没? 我在考虑是不是在平面里面用GDI或者GDI+不合适。 如果仅仅为了仿真平面效果,采用OpenGL其他的三维方式能不能实现? 那个效率相对来说比较高? 另外,有没有让自己的程序直接占用绝大部分CPU资源的方法(开机只运行这一个程序)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
193 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
j-k
2013-09-04
打赏
举报
回复
我以前用mirror driver几乎可以达到每秒100帧了,完全没必要,dx也试过,介乎gdi和mirror driver之间。
熬夜程序猴
2013-04-01
打赏
举报
回复
工控里 仿真示波器 这么快的刷新速度还远远不够
儿女情长
2012-12-28
打赏
举报
回复
mark
xqhrs232
2012-10-25
打赏
举报
回复
[Quote=引用 151 楼 的回复:]
引用 116 楼 wallescai 的回复:
使用GDI或者GDI+基本上都没有可能达到楼主的要求的.
否则也不会出现DX和OPENGL之类的东西了.
不过楼主的要求似乎有点不合理, 一般的液晶显示器才60赫兹, 也就是说一秒钟所能显示的图片是60幅, 你那多出来的几十帧要如何显示出来呢?
需要声明的是:1)使用GDI在合适的算法下达到100FPS完全可能;实例为证,见我的Bl……
[/Quote]
希望你的BLOG对我目前遇到的问题有所帮助!!!
绿绿的阳光
2012-09-29
打赏
举报
回复
通过回帖发现了 好多小牛,两个大牛,一个老牛
计算机软件行业果然是个无底洞,感觉花一辈子时间都学不完
clever101
2012-03-21
打赏
举报
回复
参考:
提高二维矢量绘图效率之一般做法
boywang
2012-01-19
打赏
举报
回复
说到底还是直接内存直接计算相关的数据,然后再显示来的快。
panshoup
2011-12-12
打赏
举报
回复
等楼主的代码。。。。。。。。
xumei_
2011-12-11
打赏
举报
回复
晕 楼主看电影的时候有跳帧的感觉吗? 根本不需要这么高的刷新频率,请检查一下你的代码是不是有问题吧
wwweeeiii_mahu
2011-12-10
打赏
举报
回复
用OpenGL效率较高,但注意最好不要和GDI混着用,如果程序界面绘图既有OpenGL又有GDI,一方面刷新时GDI闪烁的利害,另外,由于OpenGL绘图时独占DC,很可能导致GDI获取DC失败从而导致异常。另外,50毫秒刷一次效果就非常不错了。最近几年一直用OpenGL,感觉效率可以。
hhloong
2011-12-10
打赏
举报
回复
我觉得用遍历的方法是最好实现的,哈哈
jonnywoods
2011-12-09
打赏
举报
回复
是吧????????????????
full1005
2011-12-09
打赏
举报
回复
谢谢楼主的奉献
米娅
2011-12-09
打赏
举报
回复
脏矩形技术+双缓冲
xyqqtt21
2011-12-09
打赏
举报
回复
我一直在为这个问题头痛了很久,不过这不失为一种很好的方法
z3410218746
2011-12-08
打赏
举报
回复
刷新率那么高,有什么好处啊。
taoxu0823
2011-12-08
打赏
举报
回复
不错啊
asight
2011-12-07
打赏
举报
回复
楼主真有前瞻性,考虑到了120hz的显示器吧,gdi的2d贴图速度绝对超过这个
wsk91188
2011-12-07
打赏
举报
回复
谢谢了。看看
lanzhengpeng2
2011-12-07
打赏
举报
回复
[Quote=引用 132 楼 tinary3v0 的回复:]
谢谢大家的回答,问题问得不是很好,说刷新100次其实也不是随便说的,
可以这样说,一个圆形要从屏幕(1024*768)的左边移动到右边,限时为1秒,在移动过程中
需要对768*768大小的区域进行刷新(刷新过程要对这个区域贴图3次左右)
移动过程要求不能看出有明显的不连续,就是平时说的“不能有跳帧的感觉”
我现在时GDI和GDI+同时使用,已经使用了双缓存,程序现在运行基本上就是按照代码……
[/Quote]
并不完全需要提高刷新率来提升移动的平滑性.觉得不平滑的原因很很多.
首先要排除帧数率不是很平稳的影响,一般做法是绘制时间小于显示设备刷新的时间间隔的倍数,然后利用显示设备的刷新间隔非常稳定的特性来提供固定的时间间隔.
其次,要严格按照下一次显示出来的时间计算图像的像素位置.这个位置就不能是整数了,必须是浮点数.这样就存在亚像素的问题.需要对亚像素进行平滑处理.而这些处理又涉及到显示设备的Gamma值是否调整好了,是否跟你的图形使用的Gamma值匹配等问题.
如果图像存在缩放,这个平滑就更难做.
加载更多回复(124)
matlab符号方程
绘图
matlab符号方程
绘图
,通过编程实战掌握具体应用。包括matlab符号方程
绘图
前、matlab符号方程
绘图
中、matlab符号方程
绘图
后。
使用surface
提高
绘图
速度
以前在
windows
下开发时做过
绘图
的程序,现在在Linux下
绘图
首先就想到了双缓冲,我就沿着这个思路,找到了下面这个
方法
。 首先,创建一个surfacesurface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, screen_width
利用GDI+的双缓冲技术来
提高
绘图
效率(转)
利用GDI+的双缓冲技术来
提高
绘图
效率 专栏作品利用GDI+的双缓冲技术来
提高
绘图
效率卢彦 前言进入.NET时代,
Windows
的
绘图
技术也从GDI升级到了GDI+,从名字就能知道GDI+是对以前传统GDI
绘图
技术的一次升级,不过在微软几乎把所有的新技术都冠之.NET的情况下,GDI+竟然不叫做GDI.NET,还真让我感到有点意外了。 :)GDI+在一种与设备无关的环境下提供了一套统一的
绘图
编程模
提高
二维矢量
绘图
效率之一般做法
作者:朱金灿来源:http://blog.csdn.net/clever101 这个问题很普遍。最近在研究这个问题,在网上搜了一些资料,再结合自己的经验,谈谈自己的一些想法。 一.双缓存能
提高
绘图
效率吗? 网上有篇文章:
绘图
效率完整解决方案——三种手
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章