RPD的loadOp计数器
前四个连续的渲染通道,为了render时,省些代码
渲染命令(按照工作顺序): 1、有内容和时间两条线; 2、pipeline合批,只合并有内容线的,不合并有时间线的(简单情况下无法保障顺序,如果保障了顺序,JS效率是否合算需要再议); 3、目前明确只有内容线的:depth、forward、transparency、shadowmapOpaque,shadowmapTransparent,即都是和渲染相关的命令;
前向渲染通道:forward,TO,MSAA info
每帧清除
初始化相机的渲染通道(通道内不是单一commmandType[]情况的) 初始化包括:depth,forward,transparent,
初始化光源的shadow map 渲染通道,初始化包括:shadowmapOpaque,shadowmapTransparent
光源的UUID
渲染 1、按照渲染属性进行,按照各自通道的规则执行 2、在各自通道根据情况更改loadOp; 3、DC类按照其内部的通道的camera进行分组, A、pipeline通道按照其内部的规则进行合批, B、dynmaicOrder不合批,直接提交, C、timeLineDC按照其内部的规则进行。(目前无合批,20251016) D、阴影通道之间具有时间线(先不透明,再透明) 3、其他渲染通道直接提交commandBuffer数组
有camera聚合的复合命令: 1、包括:绘制,计算,复制命令 2、基本上每个命令(都是没有共性的),都需要设置RPD,或者设置ComputePass,或者设置CopyCommand。 3、不管理RPD的loadOp状态,由command类自行管理;
I_renderDrawOfQuad 有camera聚合的命令的列表
E_renderPassName
前向渲染:forward,TO,MSAA info,shadowmapOpaque 1、不使用异步模式; 2、每个camera的在第一个绘制增加一个透明像素绘制,防止场景清空后,没有submit命令,GBuffer的texture保持上一帧的问题;
TT 透明渲染DC
渲染管理器 1、分类渲染通道 2、对于DC进行合批