游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4029|回复: 8

如何限制帧频啊

[复制链接]

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-6-20 22:04:00 | 显示全部楼层 |阅读模式
首先说明啊,我不懂windows编程,所以跟windows编程的方法有关的,我暂时不会考虑,也用不来~~~~

下面这个函数可以限制帧频不?
void TimeFunction( int value )
{
    glutPostRedisplay();

    glutTimerFunc(16, TimeFunction, 1);
}
貌似我失败了.
我希望自己可以限制在大约每秒60帧左右,但是不行啊,难道我用了极其错误的方法?

13

主题

90

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2007-6-20 23:13:00 | 显示全部楼层

Re: 如何限制帧频啊

最简单的办法或许是在你的显卡设置中打开垂直同步.

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-21 14:27:00 | 显示全部楼层

Re:如何限制帧频啊

LS的你讲的太抽象了,我去stfw下.

0

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2007-7-24 12:20:00 | 显示全部楼层

Re:如何限制帧频啊

第一种方法:启用垂直同步,并将屏幕刷新率设置为60。你可以完全在代码中实现这两个操作——前提是你没有在显卡驱动中强制启用或禁用垂直同步。

第二种:查询距离上一帧画面绘制之后是否又经过了1/60秒。若是,则开始绘制,若否,让线程sleep剩余的毫秒数。

Windows的定时器最多提供每秒18.2次TIMER消息,或者说每55毫秒发出一次TIMER消息。依靠定时器是不可能实现该功能的。请使用高性能时间函数 QueryPerformanceFrequency函数和QueryPerformanceCounter函数,STFW,Good Luck!

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2007-7-28 16:52:00 | 显示全部楼层

Re:如何限制帧频啊

STFW是什么意思啊?

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-8-1 18:16:00 | 显示全部楼层

Re:如何限制帧频啊

补充一下:
Windows的多媒体计时器精度也很高的,比那个Q*函数好用多了。

0

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2007-8-2 15:23:00 | 显示全部楼层

Re:如何限制帧频啊

多媒体计时器?

又是MFC或者什么什么继承吧?

我就是讨厌这该死的类啊,继承啊,才学的OpenGL。要是我不讨厌早学DX了。
==========================================
封装来封装去,到头来还不是得调用Q……函数?

就好像new运算符……说起来如何如何,到头来还得调用malloc,可笑不?

1

主题

50

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2007-8-2 20:12:00 | 显示全部楼层

Re:如何限制帧频啊

LS的不喜欢封装去用机器语言好了... 事物都有两面性你非要一棒子打死

0

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2007-8-10 18:41:00 | 显示全部楼层

Re:如何限制帧频啊

我不用机器语言,不过很喜欢用ASM。

我从来不准备一棍子打死谁。

事实上,越少人懂ASM,我就越能跟BOSS漫天要价,哈哈~~~~开个玩笑。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 13:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表