看了附件代码和截图,补充一些技术分析。
关于三角面数差异(100262 vs 20088):这个不是实际渲染量变了。button.png 带九宫格,每个按钮生成 9 个 quad = 18 个三角形,5000 个按钮 × 18 + 5000 个普通图 × 2 ≈ 100000,和统计值吻合。3.0 的 TriangleFace 统计口径不同,实际渲染几何量两个版本差不多。节点数也是接近的(10015 vs 10019),这一点用户说的没问题。
性能差异的核心原因在于 3.3 重构了 2D 渲染管线,引入了 WebRenderStruct2D 体系。每个 Sprite 对应一个渲染结构体,涉及属性继承传播(clip、blend、alpha、pass 等)。每帧渲染时即使没有变化,也需要遍历所有 struct 执行数据更新。在你这个 1000 层深嵌套 × 10 条链的场景下,这些 per-node 开销被显著放大了。
实际项目里如果能把节点层级控制得浅一些(比如扁平化挂载而不是链式嵌套),性能差距会小很多。当然这不影响这是一个值得优化的方向,同事那边会跟进分析。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。