we
    Preparing search index...

    渲染管理器 1、分类渲染通道 2、对于DC进行合批

    Index

    Constructors

    Properties

    __outputCountOfRun: number = 0
    _performanceCount: number = 100
    cameraRendered: { [name: string]: number } = {}

    RPD的loadOp计数器

    commandEncoder: GPUCommandEncoder
    device: GPUDevice
    listCommandType: any[] = ...

    前四个连续的渲染通道,为了render时,省些代码

    RC: {
        afterDeferRender: commmandType[];
        compute: commmandType[];
        defer: I_renderDrawOfQuad;
        forward: I_renderDrawCommand;
        material: commmandType[];
        MSAA: I_renderDrawCommand;
        ndc: commmandType[];
        postprocess: commmandType[];
        renderTarget: commmandType[];
        shadowmapOpaque: I_renderDrawCommand;
        shadowmapTransparent: I_renderDrawOfDistancesLine;
        sprite: I_renderDrawCommand;
        stage2: commmandType[];
        stage3: commmandType[];
        texture: commmandType[];
        toneMapping: I_renderDrawOfQuad;
        transparent: I_renderDrawOfDistancesLine;
        ui: commmandType[];
    } = ...

    渲染命令(按照工作顺序): 1、有内容和时间两条线; 2、pipeline合批,只合并有内容线的,不合并有时间线的(简单情况下无法保障顺序,如果保障了顺序,JS效率是否合算需要再议); 3、目前明确只有内容线的:depth、forward、transparency、shadowmapOpaque,shadowmapTransparent,即都是和渲染相关的命令;

    Type Declaration

    scene: Scene

    Methods

    • 初始化相机的渲染通道(通道内不是单一commmandType[]情况的) 初始化包括:depth,forward,transparent,

      Parameters

      • UUID: string

      Returns void

    • 初始化光源的shadow map 渲染通道,初始化包括:shadowmapOpaque,shadowmapTransparent

      Parameters

      • UUID: string

        光源的UUID

      Returns void

    • 渲染 1、按照渲染属性进行,按照各自通道的规则执行 2、在各自通道根据情况更改loadOp; 3、DC类按照其内部的通道的camera进行分组, A、pipeline通道按照其内部的规则进行合批, B、dynmaicOrder不合批,直接提交, C、timeLineDC按照其内部的规则进行。(目前无合批,20251016) D、阴影通道之间具有时间线(先不透明,再透明) 3、其他渲染通道直接提交commandBuffer数组

      Returns void

    • 有camera聚合的复合命令: 1、包括:绘制,计算,复制命令 2、基本上每个命令(都是没有共性的),都需要设置RPD,或者设置ComputePass,或者设置CopyCommand。 3、不管理RPD的loadOp状态,由command类自行管理;

      Parameters

      • list: I_renderDrawOfQuad

        I_renderDrawOfQuad 有camera聚合的命令的列表

      • renderPassName: E_renderPassName

        E_renderPassName

      Returns void

    • 前向渲染:forward,TO,MSAA info,shadowmapOpaque 1、不使用异步模式; 2、每个camera的在第一个绘制增加一个透明像素绘制,防止场景清空后,没有submit命令,GBuffer的texture保持上一帧的问题;

      Parameters

      Returns void