UE4实时渲染入门
实时渲染:
~打开控制台命令
r.shadowquality应用运行的时候,设置动态阴影的质量
r.shadowQuality 0阴影消失(实时阴影)
r.shadowQuality 1阴影出现
延迟渲染(虚幻)(高要求的应用拥有稳定设备,深度检测)G缓冲区
前向渲染低端设备,抗锯齿方面更好,延迟渲染可以使用TAA临时抗锯齿,导致轻微重影
虚幻半透明开启需前向渲染无法进行深度检测(延迟渲染),存在排序问题(通过坐标轴位置判断)
RenderDoc分析捕捉帧画面,有虚幻集成版本
1秒=1000毫秒
每秒30帧,就是1000/30,每帧33.3毫秒,ms33.3
每秒60帧,就是1000/60,每帧16毫秒,ms16
控制台stat fps显示帧率
帧率中会有FPS每秒帧数,通常ms比FPS更有用
控制台t.maxfps 600解除帧率上限
如果需要评估性能
控制台stat unit得到更多渲染参数,帧,游戏,绘制,GPU
CPU占用的渲染时间,部分由GPU完成
CPU一般用于处理场景和应用里面所有与位置,旋转,还有变换相关的渲染,它还用来计算动画,物理效果,确定程序运行对象什么时候生成 什么时候销毁。
GPU负责具体的渲染,光照,反射,着色器等等,两种渲染同时发生,效率低的一方决定性能
控制台stat rhi数据面板,可以查看绘制调用次数,再输入一遍移除
下方可以看到,三角形绘制次数 ,以及绘制图元次数
控制台stat scenerendering更多数据
控制台stat none所有不显示
查看着色器复杂度
三大开销
半透明开销不做过多赘述
材质和模型的开销
窗口windows中统计面板,完成编译后仍然在编译
当引擎渲染场景时,不会逐像素渲染,不会逐区域渲染或者逐线条渲染,而是逐对象逐模型渲染
每个模型都是一次绘制调用,模型上的一个材质意味着一次绘制调用
绘制调用还有其他意思,假设一个模型,就是一次绘制调用,因此开销并不取决于场景中多边形的数量,而是绘制调用的次数。
引擎是以绘制调用为单位来渲染
动态阴影的开销
动态光源的开销没动态阴影的开销大,动态阴影会随着场景中多边形数量的增多而产生更多开销
如果使用大量动态阴影,就要小心处理场景中多边形的数量
相反,如果只用静态光照,就可以用更多的多边形