| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 890 人关注过本帖
标题:刷新有问题?眼睛弄坏怎么办?
只看楼主 加入收藏
蔡蔡
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-5-8
收藏
 问题点数:0 回复次数:4 
刷新有问题?眼睛弄坏怎么办?
用画图函数画一些会动的图形是不是不停的刷新屏幕和画图形,
但是这样屏幕会很闪,眼睛都受不了了,怎么办呢?
请高手教一下~
搜索更多相关主题的帖子: 眼睛 
2007-07-01 23:10
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 

这个就是图形编程的关键,也是图形编程方面一个需达到的终极技能。

只有让你的绘制速度快起来,你自己写的图形开发包,游戏引擎才能合格。这个也就是为什么有这么多人研究第三方图形开发包的其中一个原因。

至于怎么做,那有很多手段。包括对硬件的了解,从硬件角度考虑优化。再就是代码控制能力,在高层建筑实现高速度,这两个方面缺一不可。

前者要求大家对硬件要有相当的认识,这个需要知识的积累自己去找资料看。后者就是所谓在做图形引擎或游戏开发包的时候需要从宏观架构上来做优化。

达到这个目的需要一定时间不是一两天就能成的,要有耐心和恒心。


个人网站 -  http://.h001.
2007-07-01 23:26
蔡蔡
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-5-8
收藏
得分:0 

我晕死了~~~斑竹你说的太遥远了吧~
我只是想屏幕不要闪得那么厉害~
你说的那些对我来说真的是太遥远了,
我只是个菜鸟呀


从不撒谎,却常常骗人。 自认不笨,却热衷装傻。
2007-07-02 11:17
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
关于动画绘制出现闪烁的问题,我以前就有文章讨论过,好像是在VCOK上,记不清楚了。
消除闪烁的关键并不在于提高速度,我曾经指出过产生闪烁的根本原因在于图像画面的突变。从人的视觉上来讲,绘制一幅画面(A),在将屏幕清除,在绘制一个新的画面(B),这期间人眼的感觉其实是看到了3幅画面,一幅是A,第二幅是清除屏幕时造成的黑屏,第三幅是B。这个过程中,画面是存在突变的,也就是说是不连续的变化。不闪烁的动画效果,多是由连续变化的画面组成的。

可以采用的办法很多,局部擦除,双缓冲等都可以做到。所谓双缓冲,其实只是一种手段,它可以使人眼看不到图形绘制的过程,来消除闪烁。也就是将绘制的过程放在backbuf中进行,而将绘制的结果显示给人眼。如前例,如果将清楚屏幕和绘制B图都放在backbuf中进行,就可以使人眼只看到A和B两幅图,从而消除了画面上的突变,在人眼的感觉上就没有了闪烁。

需要指出的是闪烁的根本在于画面的突变,而不在于采用了何种技术,就算你采用了双缓冲技术,但是最终呈现给人眼的绘制结果本身就是存在画面突变的,那么仍然不可避免的会产生闪烁。闪烁也与程序的速度无关,从本质上讲,显示器本身就是能保证每秒50帧以上的刷新率。因此记住最本质的东西,所谓动画就是连续变化的一组画面,闪烁的根源在于画面的突变。



2007-07-02 12:49
蔡蔡
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-5-8
收藏
得分:0 
谢谢你们.但是,这些我还是不大懂
例如那个缓冲,也是不懂,没想到消除闪烁还有这么大的学问呀~
看来我的路还很长

从不撒谎,却常常骗人。 自认不笨,却热衷装傻。
2007-07-02 17:25
快速回复:刷新有问题?眼睛弄坏怎么办?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026708 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved