欢迎光临散文网 会员登陆 & 注册

是什么影响了我们游戏性能?为什么要控制游戏性能【优化工具与技巧】理论01

2022-07-26 12:21 作者:Game艺视界  | 我要投稿

本期内容:

了解什么会导致游戏中出现性能问题

概述可以帮助您发现瓶颈的内置工具

分享一些你应该从哪里开始寻找问题的提示


为什么要控制性能?

内心的平静

它在目标硬件上运行得越好,可以添加到游戏中的内容就越多

易于开发

访问其他平台


应认识到

***避免认为优化是项目中的,后期或最后一步

从一开始到结束,你都必须思考很多优化问题。这不是你可以委托给其他人,给程序员或技术艺术家或类似的人的事情。这应该是整个团队的责任,应该是任何人的责任。它向游戏添加内容,无论内容是什么进入引擎的人必须对此负责

***认为引擎可以为您优化

这也是一个常见的错误,不光是独立开发者有时候3A开发者也会觉得,引擎能主动为你做优化,没错有时候是这样,但引擎为你做优化的情况非常罕见。但大多数情况下你至少需要知道你有什么问题,这样你才会能够在引擎中设置正确的功能以获得最佳性能,所以别再把所有的Actor、建筑、植被都扔进一个地图里。然后指望着引擎优化你的开放世界游戏。这不管用正如我之前所说的好的优化要从项目的开头开始你做的越早越好。要立即且频繁地做性能分析这是团队中每个人的责任,要避免“两耳不闻窗外事”只要你需要处理游戏中的特定资源就要做好相关的优化工作至少在Epic内部大家是这么做的


我们继续开始正篇

图片

当你开始分析你的游戏时,你会寻找问题所在是什么东西拖累了性能表现呢?你应该问的第一个问题是,我是被GPU还是CPU拖累了?,所以这是这是显卡的问题吗?还是CPU的问题?

图片

识别瓶颈

使用 stat unit,而不仅仅是stat fps

•stat unit硬件渲染某一帧所需的实际时间也就是那些绿色的数字

•最大的数字表示可能的瓶颈

每帧毫秒数:

•帧Frame:完成每帧的总时间

•游戏Game:C++或BP游戏操作

•绘制Draw:CPU渲染时间。

•GPU:GPU渲染时间

您还可以使用stat unit Graph,它显示线图播放,主要用于发现重复的故障

这张图中有趣的一点是“帧”的时间并不是其它数字的总和,原因就是这些线程它们都是不同的线程是并行运行的每个线程都是按顺序的,它们需要上一个线程的内容和结果


我们简单介绍这些线程之前我要和你们分享一些知识

图片

游戏的运行环境越接近目标硬件和目标平台,你获得的数据就越准确。如果可能,请避免在编辑器中分析游戏

如果你在主机或移动平台上做开发我得说你更加要避免这么做。因为你不是在实际的运行平台上做调试,虚幻引擎—PC和主机它们在渲染方面非常类似但移动平台它采用正向渲染路径,所以情况完全不同一定要使用合适的打包版本并且在目标硬件上运行,如果你在开发PC游戏并且必须在编辑器里做性能分析那记得

•在独立模式下运行

•最小化编辑器

•确保关闭帧速率、平滑(项目设置)

•并用控制台命令r.VSync=0关闭垂直同步


回到这些线程的话题,当游戏按图中的流程执行时

图片

01-“Game”线程会计算所有的游戏逻辑,“Game”线程计算的所有数据都会被储存起来

02-并被“Draw”线程使用它会算出所有不需要渲染的内容这些内容不会显示在屏幕上

03-在这一步完成后“GPU”线程会在屏幕上实际渲染出最终的像素

如果这些线程 这些数据如果它们计算每个线程的这些帧都需要耗费时间,那下一个步骤当然就要等待上一个步骤来完成工作,这样它才能开始工作


那么这些线程具体都是负责什么工作呢?

完整内容感兴趣移步公众号:Game艺视界

是什么影响了我们游戏性能?为什么要控制游戏性能【优化工具与技巧】理论01的评论 (共 条)

分享到微博请遵守国家法律