← ALL ARTICLES

VFX性能

全库目录221
本文目录8

粒子只有两个三角形,也可能覆盖整个屏幕很多次。VFX性能把模拟、碰撞、排序和像素混合分别测量,降级根据真正瓶颈调整。少粒子不保证低重复绘制,局部快也不保证整帧快。

透明效果成本

重复绘制的成本

粒子面数很低,不代表便宜。半透明粒子通常关闭深度写入,同一像素会执行多层片元着色器、纹理采样、混合和渲染目标读写。

粗略成本更接近:

Pixel Cost∝Covered Pixels×Layers×Shader Cost\text{Pixel Cost}\propto \text{Covered Pixels}\times\text{Layers}\times\text{Shader Cost}

因此一个贴近镜头的全屏烟片,可能比数千个远处小火星更贵。

分辨率修改的成本边界

这是诊断数据结构示意,字段来自实际Profiler或设备计数器;没有测量时不填假数字。

text
SystemBudget { alive, simulationTime, sortTime, drawTime,
               coveredPixels, layers, textureBytes, peakEvents }

半分辨率表示宽高各减半,像素数变为四分之一;但模拟和排序的粒子数没有因此减少。若原通道中模拟 1 毫秒、像素部分 4 毫秒,理想像素缩放只能把这两项之和从 5 降到 2 毫秒,实际还要加上深度处理与上采样。这是预算算例,不是设备测量。先拆开这几项,才能判断低分辨率是否值得。

常见降级手段

  • 减小 Billboard 中无效透明边界,或使用更贴合轮廓的低面数网格。
  • 按屏幕占比限制发射、尺寸和寿命。
  • 远距离减少发射器、Flipbook 帧率和材质采样。
  • 烟雾在宽高各减半或各减为四分之一的缓冲渲染,再做深度感知上采样。
  • 分离必须排序和使用加法混合的粒子。
  • 限制动态光源、阴影粒子和场景颜色/深度采样。
  • 为移动端准备独立材质/发射器 LOD,而不只是减少总粒子数。

低分辨率透明需要处理物体边缘、深度不连续和 TAA 历史,否则会出现 Halo、泄漏和拖影。

预算与验证

不要只记录粒子数量。至少统计:

  • 同屏系统/发射器/存活粒子;
  • Draw Call、材质/Variant;
  • 屏幕覆盖率与重复绘制热力图;
  • 模拟/排序/渲染 GPU 时间;
  • Flipbook/噪声纹理内存和带宽;
  • 光源、阴影、碰撞和事件数量。

测试应包含近距离、多个效果叠加、低帧率、大战斗和移动端热稳定状态。单独预览器中的一个效果无法代表玩法峰值。

验证方法

近镜头、大战斗、多个效果重叠与持续热状态分别测试。降低分辨率、采样或排序时一次改一个因素,记录画质与整帧关键路径。通用混合公式见Alpha表示,这里只解释工作负载。

实现状态:正文片段用于解释本页数据流与边界条件;完整宿主的编译、运行及性能测量尚未执行。可运行的独立模型以本页列出的具体测试为准。

相关主题

参考资料