有趣的游戏帧渲染技术。
游戏的帧速率是恒定的还是动态的?如果恒定,是哪一个?如果是动态的,那么它取决于什么?
我在维基百科中读到,例如,无声电影使用 16 FPS 的恒定帧速率。它在游戏中是动态的吗?
FPS 仪表实际测量的是什么?这更像是视频卡可以提供的 FPS 数量超过游戏的帧速率。
有趣的游戏帧渲染技术。
游戏的帧速率是恒定的还是动态的?如果恒定,是哪一个?如果是动态的,那么它取决于什么?
我在维基百科中读到,例如,无声电影使用 16 FPS 的恒定帧速率。它在游戏中是动态的吗?
FPS 仪表实际测量的是什么?这更像是视频卡可以提供的 FPS 数量超过游戏的帧速率。
因为在每个时刻,渲染帧的负载都不是恒定的——屏幕上的对象数量发生变化,可见范围和体积发生变化,CPU 准备和“订购”新帧的速度也与许多不同因素。这通常是一个不可预知的过程(尤其是因为玩家可以在几乎整个区域内查看墙壁或从高处查看)。
不同。通常是动态的,但从上方受限于屏幕刷新率(60-75Hz,通常更高)。该限制称为 V-Sync(垂直同步)。刷新率取决于显卡渲染图形的速度和显示频率。基本上不可能显示超过显示频率,但是,在 1 帧上,可以在显示器上组合多个帧(从上到下,因为它们来自视频卡)。现在已经有了自适应频率的显示器,适应显卡。
通常是动态的——每秒帧数越多,一切看起来就越流畅。
FPS 通常是显卡提供的每秒帧数(不同的游戏计算这个数字可能略有不同)。它的计算方法是时间除以就绪帧之间的平均间隔(例如 1000ms / 16ms = 62fps)。游戏中的帧率是什么意思不清楚。
游戏中的场景通常是由三角形构建的(请原谅我如此简化),GPU 可以根据规则(纹理、像素效果等)以双倍不切实际的疯狂速度绘制不切实际的疯狂数量。所有这些都被逐个三角形、逐个像素地渲染到缓冲区(图片)中。一旦图片准备好,它就会被提供给显示器并开始绘制下一张图片。
对于画布(不使用视频卡?),通常也会在绘制帧的位置(通过 CPU)制作一个缓冲区,一旦帧结束,它就会被提供给画布画布进行显示,并且与此同时,下一帧已经在绘制。如果您想获得静态 FPS,这可以按顺序或在计时器上完成。
PS 在 Javascript 中,一切都有些复杂,因为 另一层添加了浏览器和操作系统以及它们在屏幕上显示的图像布局,这里我不是很在意。