我有两个问题
第一个问题
以前5.3的时候有一个命令Draw only VSM invalidating objects,升级到5.4之后就被移除了,看UE的Log上好像是有替代的方案,但是我没找到。就是比如说场景里有一些物体设置是Movable的,就会使VSM的缓存失效,之前这个命令就是只绘制这些让VSM缓存失效的物体,这样比较容易找出来,其中有一些是美术不小心设置错了的。现在没有这个命令就很难找。
第二个问题
因为我们现在是5.4.4版本的引擎,目前没有升级的打算,然后OcclusionQuery会阻塞RenderThread。
[Image Removed]
r.NumBufferedOcclusionQueries这个参数可以调整OcclusionQuery的GPU帧,但是5.4版本这个参数是无效的。
我从5.5版本Pick过来两个提交,恢复了这个参数的功能,然后通过获取N-2帧的OcclusionQuery结果(默认是N-1帧)把这个阻塞的问题给解决了。
[Image Removed]
[Image Removed]
但是带来了另一个问题,帧率变得非常不稳定。同样都是在静止的视角下,利用N-1帧的结果RenderThread和GPU的时间就很稳定,但利用N-2帧的话过一段时间就会有突刺产生。利用InitViews看OcclusionCulling的结果一直都是恒定的。
[Image Removed]
想知道这是什么原因。