说说帧率
sdl吧
全部回复
仅看楼主
level 13
小牛_牛sky 楼主
谈一谈
2017年02月20日 13点02分 1
level 13
小牛_牛sky 楼主
不知道大家知不知道,在创建Renderer的时候是可以使用SDL_RENDERER_PRESENTVSYNC是可以使每次循环保证在60左右,另外就是自己确定,我个人推荐这一种,因为对于帧率就可以更灵活比如可以60,40,或者更高,缺点也是有的,代码量增大,并且如果处理不当的话也会高占用cpu,
2017年02月20日 14点02分 2
加了这个选项之后渲染速度好像会下降,有点不敢用
2017年02月20日 17点02分
@GMGGA 我也不太敢用。不过这个也要看情况而定的
2017年02月20日 23点02分
level 10
我从第一个SDL程序开始就一直加这个选项、但不是能保证是60而是在60以下
2017年02月21日 01点02分 3
是吗,我的一般60以上。。。
2017年02月21日 13点02分
level 7
后面那个不是垂直同步吗?!
2017年02月21日 04点02分 4
不是,限帧
2017年02月21日 13点02分
@小牛_牛sky vsync(垂直同步)和这个有什么关系吗?
2017年02月21日 13点02分
@silentbluedrop 不知道
2017年02月21日 13点02分
@小牛_牛sky 什么是垂直同步
2017年02月21日 13点02分
level 13
小牛_牛sky 楼主
有没有比较好的限制帧率的方法@lxfly2000
2017年02月21日 14点02分 5
总感觉我写的不太好
2017年02月21日 14点02分
加上那个选项就行
2017年02月21日 14点02分
回复 lxfly2000 :确实,我用了自己的限制帧数,帧数会乱跳,用SDL给定的就不会,,,是我走弯路了[哈哈]
2017年02月21日 14点02分
level 9
这个选项就是垂直同步吧。
就是你把后台缓冲切换至前台时,切换函数将会堵塞,直到显示器刷新。如果是单线程,那么整个线程都会被卡住。如果某一帧处理逻辑的时候超过了刷新点,那么切换函数将会等待下一个刷星点,也就是显示器刷两次,你的窗口刷一次。
事实上如果每帧都要刷新,那么频率与显示器的刷新频率保持一致是性价比最高的方式。
2017年02月23日 14点02分 6
哦!学习了
2017年02月23日 23点02分
那请问在游戏中要不要开这个选项呢?
2017年02月23日 23点02分
@小牛_牛sky 看需求。不过现代引擎都是默认开的。
2017年02月24日 01点02分
@吞薯条 哦哦哦!谢谢回答
2017年02月24日 07点02分
level 13
小牛_牛sky 楼主
SDL_RENDERERVSYNC
拆开看
SDL_RENDERER V SYNC
翻译过来就是 渲染 垂直 同步
也就是垂直同步,僵硬
2017年03月06日 00点03分 7
vertical
2017年03月06日 00点03分
level 9
求问一下不限制帧数怎么调
2017年04月30日 15点04分 8
不限制?你所说的不限制是什么意思
2017年04月30日 23点04分
@小牛_牛sky 就是帧数没有上限,也就是不锁帧
2017年05月01日 04点05分
回复 FA_木欄 :去掉SDL_PRESENTVSYNC就行了啊
2017年05月01日 13点05分
2017年05月01日 14点05分
level 1
楼主,请问我写了一个帧动画,但是随着程序运行,cpu占用率会越来越高,最后会卡死,请问要如何避免这种情况
2017年05月14日 17点05分 9
应该是你每次都IMG_LoadTexture()的缘故吧?
2017年05月15日 01点05分
1