游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 梁某

一般怎么限制FPS

[复制链接]

11

主题

190

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2009-5-20 18:26:00 | 显示全部楼层

Re:一般怎么限制FPS

我一般用这种方法
用timeSetEvent的TIME_CALLBACK_EVENT_SET模式创建一个定时器,这个定时器会按照设想的频率将渲染信标设为有信号,在主线程循环中使用MsgWaitForMultipleObjects等待渲染窗口是否有消息或者是否渲染信标有信号,如果有的话即可退出等待状态,这种方法的好处是可以比较精确地控制帧速,而且不会占据CPU


-----------------
欢迎光临我的博客 http://www.thecodeway.com

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-5-20 20:42:00 | 显示全部楼层

Re:一般怎么限制FPS

一直都用Sleep(0);

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-21 12:13:00 | 显示全部楼层

Re: Re:一般怎么限制FPS

thejinchao: Re:一般怎么限制FPS

我一般用这种方法
用timeSetEvent的TIME_CALLBACK_EVENT_SET模式创建一个定时器,这个定时器会按照设想的频...



这种方式还真没用过..
能否给个简单的代码来看看?

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-21 12:16:00 | 显示全部楼层

Re: Re:一般怎么限制FPS

moc.seRemaG: Re:一般怎么限制FPS

一直都用Sleep(0);



我刚才试了下 发现sleep(0)照样会占用大量cpu

Sleep(1)时占用的cpu为0, 帧率固定在60帧/秒左右.

64

主题

272

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
 楼主| 发表于 2009-5-21 19:53:00 | 显示全部楼层

Re:一般怎么限制FPS

等会都去试试,谢谢各位的意见啊^^

2

主题

79

帖子

85

积分

注册会员

Rank: 2

积分
85
QQ
发表于 2009-5-22 11:11:00 | 显示全部楼层

Re:一般怎么限制FPS


    t1 = gettime();
    render();
    t2 = gettime();
  nSleepTime = MAX_FRAME_TIME- ( t2 - t1 );
    Sleep( nSleepTime );

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-23 16:01:00 | 显示全部楼层

Re:一般怎么限制FPS

判断时间,如果间隔太短了,就Sleep(1)

64

主题

272

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
 楼主| 发表于 2009-5-24 08:43:00 | 显示全部楼层

Re:一般怎么限制FPS

用sleep的问题是不精确,还是用插值得方法最合理啊。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-24 15:01:00 | 显示全部楼层

Re: Re:一般怎么限制FPS

梁某: Re:一般怎么限制FPS

用sleep的问题是不精确,还是用插值得方法最合理啊。


播放动画肯定是插值。

sleep只是限帧时用的

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-24 17:53:00 | 显示全部楼层

Re:一般怎么限制FPS

说了如果是插值法, 时间间隔已经不再重要了.

哪怕是 Sleep(1000), 你的动画都能在指定时间内播放完毕, 只是会卡过去罢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 04:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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