标签: frame-rate


在iOS屏幕上显示FPS(无需仪器)

在WWDC 2012 Session 506中,它们UILabel在应用程序中显示每秒的帧数,而无需使用附加到仪器的Core Animation分析器.我想这样做是为了方便以及让我的团队中的其他成员监控FPS,因为他们在真实场景中使用该应用程序.不幸的是,会话506不包括在WWDC '12示例代码中.

有谁知道如何做到这一点?我知道Cocos2D具有这种功能CCDirector,但他们的方法似乎特定于Cocos2D渲染的工作原理.它不必是公共API,因为我不会将此代码发送给客户.

frame-rate instruments ios

9
推荐指数
1
解决办法
1万
查看次数

SpriteKit,看似随机,降至40 FPS

我正在使用SpriteKit编写iOS游戏.在游戏过程中,显然是随机的,帧速率将从60 FPS降至40 FPS(总是40).我在iPhone 6上运行它.在构建发布和调试时出现错误.

我通常一次在屏幕上有大约30个节点(有时更少),大多数节点都有物理主体,但是,除了大约5个节点都dynamic设置为NO.上述物理主体不会相互碰撞,但它们会与玩家节点发生碰撞.播放器节点没有快速移动,并且通常一次仅触摸大约5个节点.当玩家节点与某些其他物理实体接触时,其dynamic属性设置为YES.值得一提的是,我有几个UIViews和UIImageViews覆盖顶部SKView,充当HUD.

我觉得这不是一个特别密集的模拟.我已经完成了我的- update:方法,操作,联系人听众等,但没有找到可能导致此问题的任何内容.我花了最近几天在仪器(时间分析器),希望它可以解决这个问题,但再次,我没有找到任何跳出来的东西.但是,我承认对仪器很新.

现在,我没办法再现这个bug.我只需要玩游戏,并希望遇到它.有时它会在场景加载(非常罕见),正常游戏过程中或根本不加载时发生.如果我暂停游戏(暂停视图和场景)并恢复它,帧速率会恢复.有时帧速率会在几秒钟后恢复正常.我完全不知道该怎么做.任何帮助将非常感激.

提前致谢.

performance frame-rate ios sprite-kit

9
推荐指数
1
解决办法
1091
查看次数

在OS X上全屏模式下的Sprite Kit严重FPS问题

我正在制作一个相当复杂的精灵套装游戏.我最近添加了对OS X的支持.我总是得到60 fps,无论在调整窗口大小时我的游戏是如何缩放的(即使调整大小到最大屏幕空间).但是,当我让我的应用程序进入"全屏"时,fps下降到30-40 fps并保持这种状态?但是,如果我在启用全屏时使用鼠标光标并显示菜单栏,则fps会恢复到60 fps!

你甚至可以使用默认模板在Xcode中为mac制作一个sprite kit游戏来测试这个bug.这是我拍摄的Mac默认游戏模板的屏幕截图.

我建议您自己尝试一下,如果您使用Apple的OS X默认精灵工具包模板,您甚至不必编写任何代码.

最大窗口(无FPS问题:59-60 FPS) 在此输入图像描述

全屏模式(FPS降至30-40 FPS) 在此输入图像描述

全屏模式鼠标在顶部显示菜单栏(令人惊讶的是,没有FPS问题:59-60 FPS) 在此输入图像描述

任何人都知道可能导致这个问题的原因.如果这意味着用户将失去性能,我不想以全屏模式发布我的应用程序.你会认为全屏模式可以更好地优化绘图,但显然它恰恰相反.我在优胜美地上跑步.

macos frame-rate sprite-kit

9
推荐指数
1
解决办法
1364
查看次数

Javascript:如何获得window.requestAnimationFrame之间的时差

在javascript中获取"window.requestAnimationFrame"回调之间时差的最佳方法是什么?

我试过了:

// create the best .requestAnimationFrame callback for each browser
window.FPS = (function() {
    return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
    function(callback) {window.setTimeout(callback, 1000 / 60);};
})();

// start animation loop
var dt, stamp = (new Date()).getTime();
function loop() {
    window.FPS(loop);
    var now = (new Date()).getTime();
    var dt = now - stamp;
    stamp = now;
}
// has "dt" the best accuracy?
Run Code Online (Sandbox Code Playgroud)

javascript time frame-rate canvas requestanimationframe

9
推荐指数
2
解决办法
5175
查看次数

游戏主循环中的pygame clock.tick()vs framerate

每个pygame都有一个如下所示的游戏循环:

while running:
    for event in pygame.event.get():        
        if event.type == pygame.QUIT:
            running = False   
    pygame.display.flip()
    print("tick " + str(pygame.time.get_ticks()))
    clock.tick(1)
Run Code Online (Sandbox Code Playgroud)

根据api get_ticks():

返回自调用pygame.init()以来的毫秒数.在pygame初始化之前,这将始终为0.

但是clock.tick():

应该每帧调用一次此方法.它将计算多少.自上一次调用以来已经过了几毫秒.

如果传递可选的帧率参数,该函数将延迟以使游戏运行速度低于每秒给定的滴答数.这可以用于帮助限制游戏的运行时速度.通过每帧调用一次Clock.tick(40),程序将永远不会超过每秒40帧.

我有点困惑,这是否意味着clock.tick()直接影响自游戏开始以来经过了多少毫秒?

所以clock.tick(40)意味着我"发出"每秒40帧,而while循环每秒运行40次?

我没有看到fps和ticks之间的关系.

更新:我实际上只是测试了它,并且get_ticks()仍然以mls返回实际时间,无论你给予什么fps tick() - 0.1或者30或者60.

所以它似乎clock.tick()只是设置了游戏应该运行的速度,以及循环应该自我更新的频率.

不过我还是有点困惑,欢迎其他答案.

python pygame frame-rate pygame-clock pygame-tick

9
推荐指数
2
解决办法
3万
查看次数

XNA的CPU使用率很高

我今天刚刚注意到,当我编译并运行一个新的XNA 4.0游戏时,其中一个CPU线程以100%运行,帧速率降至54 FPS.

奇怪的是,它有时会以60 FPS的速度运行,但之后只会下降到54 FPS.

我之前没有注意到这种行为,所以我不知道这是否正常.我卸载了我的防病毒软件并重新安装了XNA Game Studio,XNA Redistributable和.NET Framework 4.

如果我将IsFixedTimeStep设置为false,则游戏以60 FPS运行,CPU使用率最低(1-2%).但据我所知,这需要我使用ElapsedGameTime进行速度计算,但我不知道该怎么做,因为我对XNA很新.但是有人说将其设置为false可以减少抖动动画.

我已经检查了这个论坛帖子,但没有人找到一个好的解决方案.

有没有人遇到过这个问题?

编辑: 我做了一些更多的研究,我实现了一个FPS计数器(到现在为止,我用Fraps测量它),我的计数器显示比赛在60 FPS的速度运行(与IsFixedTimeStep = TRUE),所以这解决了FPS的问题,但CPU使用率仍然很高.这可能发生在每个人身上吗?

c# windows cpu xna frame-rate

8
推荐指数
1
解决办法
4147
查看次数

为什么cocos2d中只有60 fps真的流畅?

可能以前有人问过,但我找不到任何地方......

在视频领域,24 fps以及其他任何内容都很流畅.Cocos2d似乎只有在60 fps或者更低的时候才能流畅.30到50之间的任何东西肯定都不顺利,fps计数器似乎不准确......

为什么是这样?或者只有我有这种情况?

frame-rate smooth cocos2d-iphone

8
推荐指数
1
解决办法
4573
查看次数

Android:有没有办法加快canvas.drawBitmap的速度?

简单的问题,不确定是否有一个简单的答案!!

我能做些什么来加速我的surfaceview绘图?

我正在使用这样的东西:

c.drawBitmap(scaledSprite, X, Y, redPaint);
Run Code Online (Sandbox Code Playgroud)

我正在使用的方法必须在屏幕上绘制大约25个这些精灵,所以我使用for循环,这意味着它必须在一帧中显示25.

现在,这在我测试过的3款手机上运行得非常好,但在平板电脑上,它只是放慢速度.我已经评论了所有其他的绘图方法,只留下了这一个,这绝对是减缓游戏速度的原因.

是否有任何聪明的提示可以让我加快速度?

我知道开放GL是一种可能性,但现在大部分游戏都已编写好,所以如果我能帮助的话,我现在并不想做任何重大改变.

performance android frame-rate sprite tablet

8
推荐指数
1
解决办法
5055
查看次数

如何在Qt 3D中控制帧速率?

我正在使用新的Qt 3D API在计算密集的计算过程中显示3D场景.此场景仅作为对用户输入的响应而更改.但是,Qt 3D的默认行为似乎将场景的帧速率锁定为某个高常量值,在这种情况下会消耗不可接受的资源量.

有没有办法控制Qt 3D中的帧速率?理想情况下,我只想在对场景进行更改时渲染新帧,但将其降低到较小的固定值也足够了.Qt 3D文档很稀疏,我一直无法找到办法做这些事情.

编辑:我设法找到并将QRenderSettings :: OnDemand应用到我的根节点和帧图,但它似乎没有任何效果,虽然意味着它应该,因为我使用的是Qt 5.7.对此的任何其他意见将是非常受欢迎的(即使它只是保证评论).

编辑2:安装Fraps并直接测量帧速率后,实际上场景似乎只是在应用了QRenderSettings :: OnDemand的情况下渲染帧.如果没有这个,帧速率将保持稳定的60fps,这恰好是我的屏幕刷新率.但是,无论是否显示3D窗口,程序在启用Qt 3D时都会继续消耗大量CPU时间.我开始认为这是一个与帧速率无关的独立Qt 3D问题,并且可能会相应地打开一个新问题.

c++ 3d qt frame-rate qt3d

8
推荐指数
1
解决办法
1177
查看次数