VFX性能
全库目录221
本文目录8
粒子只有两个三角形,也可能覆盖整个屏幕很多次。VFX性能把模拟、碰撞、排序和像素混合分别测量,降级根据真正瓶颈调整。少粒子不保证低重复绘制,局部快也不保证整帧快。
透明效果成本
重复绘制的成本
粒子面数很低,不代表便宜。半透明粒子通常关闭深度写入,同一像素会执行多层片元着色器、纹理采样、混合和渲染目标读写。
粗略成本更接近:
因此一个贴近镜头的全屏烟片,可能比数千个远处小火星更贵。
分辨率修改的成本边界
这是诊断数据结构示意,字段来自实际Profiler或设备计数器;没有测量时不填假数字。
SystemBudget { alive, simulationTime, sortTime, drawTime,
coveredPixels, layers, textureBytes, peakEvents }半分辨率表示宽高各减半,像素数变为四分之一;但模拟和排序的粒子数没有因此减少。若原通道中模拟 1 毫秒、像素部分 4 毫秒,理想像素缩放只能把这两项之和从 5 降到 2 毫秒,实际还要加上深度处理与上采样。这是预算算例,不是设备测量。先拆开这几项,才能判断低分辨率是否值得。
常见降级手段
- 减小 Billboard 中无效透明边界,或使用更贴合轮廓的低面数网格。
- 按屏幕占比限制发射、尺寸和寿命。
- 远距离减少发射器、Flipbook 帧率和材质采样。
- 烟雾在宽高各减半或各减为四分之一的缓冲渲染,再做深度感知上采样。
- 分离必须排序和使用加法混合的粒子。
- 限制动态光源、阴影粒子和场景颜色/深度采样。
- 为移动端准备独立材质/发射器 LOD,而不只是减少总粒子数。
低分辨率透明需要处理物体边缘、深度不连续和 TAA 历史,否则会出现 Halo、泄漏和拖影。
预算与验证
不要只记录粒子数量。至少统计:
- 同屏系统/发射器/存活粒子;
- Draw Call、材质/Variant;
- 屏幕覆盖率与重复绘制热力图;
- 模拟/排序/渲染 GPU 时间;
- Flipbook/噪声纹理内存和带宽;
- 光源、阴影、碰撞和事件数量。
测试应包含近距离、多个效果叠加、低帧率、大战斗和移动端热稳定状态。单独预览器中的一个效果无法代表玩法峰值。
验证方法
近镜头、大战斗、多个效果重叠与持续热状态分别测试。降低分辨率、采样或排序时一次改一个因素,记录画质与整帧关键路径。通用混合公式见Alpha表示,这里只解释工作负载。
实现状态:正文片段用于解释本页数据流与边界条件;完整宿主的编译、运行及性能测量尚未执行。可运行的独立模型以本页列出的具体测试为准。
相关主题
参考资料
- GPU Gems 3 第23章:High-Speed, Off-Screen Particles:23.1—23.2:低分辨率绘制、深度缩小和合成开销;正文预算数字是算例。