RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 707867
Accepted
Иван Антонов
Иван Антонов
Asked:2020-08-19 14:31:05 +0000 UTC2020-08-19 14:31:05 +0000 UTC 2020-08-19 14:31:05 +0000 UTC

为什么游戏的帧率 (FPS) 不一致?

  • 772

有趣的游戏帧渲染技术。

游戏的帧速率是恒定的还是动态的?如果恒定,是哪一个?如果是动态的,那么它取决于什么?

我在维基百科中读到,例如,无声电影使用 16 FPS 的恒定帧速率。它在游戏中是动态的吗?

FPS 仪表实际测量的是什么?这更像是视频卡可以提供的 FPS 数量超过游戏的帧速率。

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Kromster
    2020-08-19T14:53:30Z2020-08-19T14:53:30Z

    为什么游戏的帧率 (FPS) 不一致?

    因为在每个时刻,渲染帧的负载都不是恒定的——屏幕上的对象数量发生变化,可见范围和体积发生变化,CPU 准备和“订购”新帧的速度也与许多不同因素。这通常是一个不可预知的过程(尤其是因为玩家可以在几乎整个区域内查看墙壁或从高处查看)。

    游戏的帧速率是恒定的还是动态的?如果恒定,是哪一个?如果是动态的,那么它取决于什么?

    不同。通常是动态的,但从上方受限于屏幕刷新率(60-75Hz,通常更高)。该限制称为 V-Sync(垂直同步)。刷新率取决于显卡渲染图形的速度和显示频率。基本上不可能显示超过显示频率,但是,在 1 帧上,可以在显示器上组合多个帧(从上到下,因为它们来自视频卡)。现在已经有了自适应频率的显示器,适应显卡。

    我在维基百科中读到,例如,无声电影使用 16 FPS 的恒定帧速率。它在游戏中是动态的吗?

    通常是动态的——每秒帧数越多,一切看起来就越流畅。

    FPS 仪表实际测量的是什么?这更像是视频卡可以提供的 FPS 数量超过游戏的帧速率。

    FPS 通常是显卡提供的每秒帧数(不同的游戏计算这个数字可能略有不同)。它的计算方法是时间除以就绪帧之间的平均间隔(例如 1000ms / 16ms = 62fps)。游戏中的帧率是什么意思不清楚。


    我想了解游戏中的场景是如何构建的,以便为画布进行类似的帧渲染

    游戏中的场景通常是由三角形构建的(请原谅我如此简化),GPU 可以根据规则(纹理、像素效果等)以双倍不切实际的疯狂速度绘制不切实际的疯狂数量。所有这些都被逐个三角形、逐个像素地渲染到缓冲区(图片)中。一旦图片准备好,它就会被提供给显示器并开始绘制下一张图片。

    对于画布(不使用视频卡?),通常也会在绘制帧的位置(通过 CPU)制作一个缓冲区,一旦帧结束,它就会被提供给画布画布进行显示,并且与此同时,下一帧已经在绘制。如果您想获得静态 FPS,这可以按顺序或在计时器上完成。

    PS 在 Javascript 中,一切都有些复杂,因为 另一层添加了浏览器和操作系统以及它们在屏幕上显示的图像布局,这里我不是很在意。

    • 12

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5