跳到主要内容

DrawQueue

Ploy3D • Docs


Ploy3D / DrawQueue

Class: DrawQueue

渲染队列。

Constructors​

new DrawQueue()​

new DrawQueue(_global): DrawQueue

构造函数。

Parameters​

• _global: Ploy3D

模块实例对象。

Returns​

DrawQueue

Properties​

activeG0​

activeG0: FrameUniforms

当前活动GO常量缓存。


activeG1​

activeG1: MeshRenderer

当前活动G1常量缓存。


activeG2​

activeG2: Material

当前活动G2常量缓存。


activeG3​

activeG3: any

当前活动G3常量缓存。


activeMesh​

activeMesh: Mesh

当前活动网格顶点缓存。


activePipeline​

activePipeline: GPURenderPipeline

当前活动着色管线。


camera​

camera: Camera

当前相机组件实例。


cmdEncoder​

cmdEncoder: GPUCommandEncoder

当前GPU指令编码器。


computeEncoder​

computeEncoder: GPUComputePassEncoder

当前计算指令编码器。


Draw()?​

optional Draw: (queue) => void

当前场景绘制方法。

Parameters​

• queue: DrawQueue

Returns​

void


drawList​

drawList: object

当前绘制列表。

drawCalls​

drawCalls: object[]

当前动态绘制命令列表。

drawParts​

drawParts: number[][]

材质绘制参数集列表。

drawParts2?​

optional drawParts2: object

场景材质绘制参数集列表。

drawParts2.count​

count: number

drawParts2.indices?​

optional indices: number[]

drawParts2.params​

params: ArrayLike<number>

instanceCount​

instanceCount: number

实例绘制数据数量(每个104字节)。

instanceVB​

instanceVB: number

实例绘制数据缓存。


execStat​

execStat: ExecuteStat

当前相机渲染执行统计。


framePass​

framePass: GLFramePass

当前活动帧通道。


framePassList​

framePassList: object

当前帧通道配置列表。

framePass?​

optional framePass: GLFramePass[]

渲染管线使用的帧通道列表。

framePassName​

framePassName: string[]

渲染管线使用的帧通道列表。


passEncoder​

passEncoder: GPURenderPassEncoder

当前渲染指令编码器。


target​

target: object

当前相机渲染目标贴图视图。

texture​

texture: GPUTexture

目标贴图。

view​

view: GPUTextureView

目标贴图视图。

viewport​

viewport: number[]

目标视口。


volume​

volume: Volume

当前体积组件实例。

Methods​

Begin()​

Begin(callback): void

获取渲染队列。

Parameters​

• callback

等待后回调返回渲染队列。

Returns​

void


BindFrameUniforms()​

BindFrameUniforms(frameUniforms, shadow_cast_index?): void

绑定帧统一资源组实例(G0)。

Parameters​

• frameUniforms: FrameUniforms

帧统一资源组实例(G0)。

• shadow_cast_index?: number

阴影投射通道索引(Cascaded Shadow Maps视锥分片索引(大于-1时设置阴影投影渲染相关矩阵))。

Returns​

void


BindMaterial()​

BindMaterial(material): void

绑定材质资源实例。

Parameters​

• material: Material

材质资源实例。

Returns​

void


BindMeshRenderer()​

BindMeshRenderer(meshRenderer): void

绑定网格渲染器组件。

Parameters​

• meshRenderer: MeshRenderer

网格渲染器组件实例。

Returns​

void


BindRenderPipeline()​

BindRenderPipeline(config): void

基于当前资源绑定设置着色器管线(需要先调用BindFrameUniforms、BindMeshRenderer、BindMaterial,在后期帧通道绘制中有使用)。

Parameters​

• config

• config.cullMode: number

多边形裁剪模式(0-不裁剪、1-裁剪背面、2-裁剪正面、默认1。网格渲染器设置)。

• config.flags: number

渲染设置标记集(材质与网格渲染器共同设置)。

• config.frontFace: number

正面的定义顺序(0-CCW逆时针、1-CW顺时针、默认0。网格渲染器设置)。

• config.topology: number

图元类型(子网格设置)。

Returns​

void


DrawList()​

DrawList(): void

绘制当前绘制列表。

Returns​

void


DrawMesh()​

DrawMesh(params): void

动态绘制网格。

Parameters​

• params

动态绘制参数。

• params.castShadows?: boolean

是否投射阴影。

• params.cullMode: number

多边形裁剪模式(0-不裁剪、1-裁剪背面、2-裁剪正面、默认1)。

• params.flags: number

3D对象渲染标志集。

• params.frontFace: number

正面的定义顺序(0-CCW逆时针、1-CW顺时针、默认0)。

• params.instances: number[][]

实例数据列表(模型空间到世界空间转换矩阵)。

• params.layers: number

3D对象层标记。

• params.materials: object[]

绘制材质列表。

• params.mesh: Mesh

网格资源实例(可为空)。

• params.receiveShadows?: boolean

是否接收阴影。

• params.topology?: GLPrimitiveTopology

图元类型(网格资源为空时需指定该参数)。

• params.userData: number

用户数据。

Returns​

void


DrawPart()​

DrawPart(g1, g2, pipeline, mesh, submesh, instanceCount?, firstInstance?, materialSlot?): void

子网格绘制方法。

Parameters​

• g1: number

网格渲染器实例ID。

• g2: number

材质实例ID。

• pipeline: number

着色器管线实例ID。

• mesh: number

网格资源ID。

• submesh: number

子网格索引。

• instanceCount?: number

绘制实例数量。

• firstInstance?: number

起始绘制实例索引。

• materialSlot?: number

Returns​

void


End()​

End(end?): void

结束当前对渲染队列的使用。

Parameters​

• end?: boolean

Returns​

void


Execute()​

Execute(camera, volume, target, framePassList, draw, callback): void

执行帧绘制。

Parameters​

• camera: Camera

相机组件实例。

• volume: Volume

体积组件实例。

• target

帧绘制目标贴图视图。

• target.texture: GPUTexture

目标贴图。

• target.view: GPUTextureView

目标贴图视图。

• target.viewport: number[]

目标视口。

• framePassList

帧通道配置列表。

• framePassList.framePass?: GLFramePass[]

渲染管线使用的帧通道列表。

• framePassList.framePassName: string[]

渲染管线使用的帧通道列表。

• draw

场景绘制方法。

• callback

绘制完成回调。

Returns​

void


SetPipeline()​

SetPipeline(pipelineID, materialSlot): void

绑定对应当前帧通道设置的GPU着色器管线实例。

Parameters​

• pipelineID: number

着色器管线实例ID。

• materialSlot: number

材质槽索引。

Returns​

void


Snapshot()​

Snapshot(scene, menu, surface, camera, volume, framePassList, end): void

对资源包进行快照渲染。

Parameters​

• scene: Scene

• menu

• menu.list: object[]

资源清单。

• menu.thumbnail?: string

缩略图文件路径。

• menu.thumbnail_blob?: Blob

缩略图数据对象。

• menu.thumbnail_per_row?: number

缩略图文件中每行包含缩略图数量。

• menu.thumbnail_row_count?: number

缩略图行数。

• surface: HTMLCanvasElement

• camera: Camera

• volume: Volume

• framePassList

• framePassList.framePass?: GLFramePass[]

渲染管线使用的帧通道列表。

• framePassList.framePassName: string[]

渲染管线使用的帧通道列表。

• end

Returns​

void