D5流畅|大场景能力与实时交互

具有照片级真实感质量的实时交互是 D5 Render 的核心价值。 D5 GI保证实时渲染性能 ,但是随着场景复杂度的增加,渲染开销会逐渐增加,实时FPS不可避免的下降。
在大量的人脸、灯光、模型和贴图的情况下,D5能否实时保证响应速度和FPS,对于用户体验来说至关重要。

模型加载优化

许多 3D 资产的面数量非常多,有些由无数影响渲染效率的子对象组成。 D5 Render 自动合并特定类型资产的模型,将多个小模型合并为一个大模型,以减少 DrawCall* 并提高效率。
从D5 2.0版本开始,模型加载了更高效的多边形渲染方式,极大地提高了实时性。 与 1.9 版本相比,2.0 版本在 FPS 和响应速度方面有了显着改进。
*DrawCall:CPU发送给GPU的渲染命令。 过多的DrawCall会导致GPU等待时间过长,影响效率。

材质质感优化

新版D5 Render使用Texture Streaming动态加载纹理贴图,确保材质纹理只有在相机中时才加载,其他纹理临时存储在磁盘上。 这种技术与 mipmap 一起确保材质纹理在所有距离上看起来都恰到好处,开销最小。
在对比测试中,在启用纹理流的情况下,RAM 和 VRAM 的使用都减少了,帧率略有提高。 对于某些场景,内存使用量节省了 40% 以上(从 11G 到 6.2G)。

多灯场景优化

一般来说,光源的数量会直接影响实时预览的响应速度(帧率)。
下面这个夜景,有几百个光源:
老版本在计算渐晕时不能根据灯的数量动态分配内存,所以必须提前按照最大灯的数量分配(如1024灯)。 更高的屏幕分辨率意味着更高的内存开销,这对实时预览的性能提出了挑战。
为了解决这个问题,D5优化了采样灯的策略。 首先,D5 将 1024 盏灯进行分组,计算每组灯的总亮度,然后进一步采样组中对场景贡献较大的特定灯。 通过此优化,1024 盏灯的场景计算 GI 的时间从 23.84 毫秒下降到 11.54 毫秒,内存占用减少了约 150MB。

GI算法优化

上面对新的D5 GI采样算法的优化,对于大场景也会提升帧率。 2.1 版启用了 2-4 倍的反射计算速度和近 4 倍的 GI 计算速度。 这就是为什么 D5 2.1 在同一场景中始终具有比 2.0 更高的帧率。

D5“流畅”总结

“流畅度”可以用2个指标来衡量:
下面的示例显示了 D5 1.9 版和 D5 2.1 版的“平滑度”比较:
注意:您可以看到右侧的新版 D5 响应命令(单击以移动相机视图)明显快于旧版(它始终比左侧移动得更快)。 并且,新版本的帧速率在摇动视口时几乎翻了一番。