Skip to content
Discussion options

You must be logged in to vote

PAG Web SDK 不推荐同屏渲染多个 PAGView,主要原因:

  1. 浏览器 WebGL context 数量限制:Chrome 最多 16 个,Safari 最多 8 个,超出会导致 WebGL context lost
  2. 每个 PAGView 都需要独立的 GPU 渲染环境,内存和 CPU 开销较大
  3. BMP 预合成涉及视频解码,比全矢量文件更耗资源

推荐方案:使用 PAGComposition 合并渲染

将多个 PAG 文件添加到一个 PAGComposition 中,只用一个 Canvas 渲染:

// 创建空的 PAGComposition
const composition = await PAG.PAGComposition.make(width, height);

// 添加多个 PAG 文件,通过 setMatrix 设置位置
for (const pagFile of pagFiles) {
  pagFile.setMatrix(matrix);
  composition.addLayer(pagFile);
}

// 只用一个 PAGView 渲染
const pagView = await PAG.PAGView.init(composition, canvas);
pagView.play();

其他优化建议

  1. 尽量使用全矢量素材,避免 BMP 预合成
  2. 控制渲染尺寸,移动端实际渲染尺寸建议不超过 2560px
  3. 及时调用 destroy() 回收无用的 PAGView 实例

相关文档:https://pag.art/docs/web-…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@Tu-lele
Comment options

Answer selected by kevingpqi123
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants