在分析相关参数对性能影响的时候,遇到个奇怪的问题。
在效果全开的情况下:
1. 单独关闭Caustics效果
2. 单独关闭GodRay效果
3. 同时关闭两个效果
以上情况中,1和2均出现帧数下降的现象。3则会导致帧率上升。
经过代码分析,关闭其中任何一个效果和都关闭都会导致shader的计算代码减少,应该会提高帧率才对。
怀疑1和2操作影响到了GPU计算,首先怀疑的是导致现存的增加。
对怀疑的进行测试,1和2两种情况,都会导致显存增长。
研究代码了很久,才发现。在创建DepthMap纹理的时候,会根据depth、Caustics、GodRay
组件的开关,在有两个组件的时候,创建的像素格式是128位的Texture。占用了很多显存。
进而怀疑这个导致帧率下降。但是还是无法得到合理的解释?用Gpu监视器监视GPU此时的负载不是很高,大概有20M显存的提高会导致帧率下降了10帧。
Ps:在我的机器上RenderTarget可以接受PF_8的像素格式。有些机器RenderTarget只能接受16位大小的像素格式,所以测试效果未必有这么明显(创建新的Texture的时候显存涨幅不大)。