转载请注明出处:庞海礁的个人空间 – https://github.com/panghaijiao
前言
PAG特效框架是腾讯开源的一套完整的动效工作流解决方案,相较于传统特效渲染框架,其支持更丰富的组合样式,网上已有详细介绍,在此不再赘述
PAG框架是如何实现特效渲染?本文结合预合成视频序列帧特效,通过分析其源码来展示其完整的渲染流程。开始之前,先问大家一个问题:
渲染一个视频类型的PAG特效文件,一般需要经历哪些流程?
渲染流程
通常情况下,加载一个PAG文件,到最终展示到屏幕上,一般会经过以下几个阶段:
1. 文件解码:加载PAG源文件,解析数据流,转化为可识别的数据模型
2. 获取帧数据:获取播放时间戳对应的视频帧数据,比如H264编码数据
3. 视频解码:解码视频帧数据,获取解码后对应的纹理数据,并交给GPU以供给渲染
4. 几何阶段(GPU):渲染顶点矩阵计算,齐次空间坐标转换等
5. 光栅化渲染(GPU):片元着色,深度测试之后,与帧缓冲混合后,最终渲