跳到主要内容

Context

Ploy3DDocs


Ploy3D / Context

Class: Context

渲染设备上下文接口。

Constructors

new Context()

new Context(_global): Context

构造函数。

Parameters

_global: Ploy3D

模块实例对象。

Returns

Context

Methods

CompileShaderModule()

CompileShaderModule(shader, g0, g1, g3): GPUShaderModule[]

编译着色器分支实例。

Parameters

shader: Shader

着色器实例。

g0: Shader

g1: Shader

g3: Shader

Returns

GPUShaderModule[]

返回着色器模块。


CreateBindGroup()

CreateBindGroup(uniform): object

创建资源组绑定对象实例。

Parameters

uniform: FrameUniforms | Material | MeshRenderer

统一资源组实例。

Returns

object

返回绑定对象实例。

binding

binding: GPUBindGroup

id

id: number

offset

offset: number


CreateBindGroupCustom()

CreateBindGroupCustom(uniform, entries): object

创建自定义资源组G3绑定对象实例。

Parameters

uniform: Material

统一资源组实例。

entries: GPUBindGroupEntry[]

资源实例引用。

Returns

object

返回绑定对象实例。

binding

binding: GPUBindGroup

id

id: number

offset

offset: number


CreateRenderPipeline()

CreateRenderPipeline(desc): number

创建着色器管线实例。

Parameters

desc: any

着色器管线描述符。

Returns

number

返回着色器管线实例ID。


CreateShader()

CreateShader(asset): Shader

从着色器资产创建着色器实例。

Parameters

asset: ShaderAsset

着色器资产。

Returns

Shader

返回着色器实例。


Dispose()

Dispose(): Promise<void>

清除对象。

Returns

Promise<void>


FreeShader()

FreeShader(id): void

释放着色器实例。

Parameters

id: number

着色器实例ID。

Returns

void


GenerateGroupLayout_G2()

GenerateGroupLayout_G2(properties, hide_textures?): PropLayout

构建资源绑定组布局。

Parameters

properties: Record<string, object>

hide_textures?: string[]

Returns

PropLayout

返回资源绑定组布局ID。


GenerateMaterialPropTuple()

GenerateMaterialPropTuple(properties, uniformGroup, hide_textures?): PropLayout

生成属性值定义代码。

Parameters

properties: Record<string, object>

属性定义。

uniformGroup

属性组定义。

uniformGroup.alignSize: number

统一缓存大小对齐。

uniformGroup.binding?: number

绑定槽索引。

uniformGroup.group?: number

资源组索引。

uniformGroup.tname?: string

结构定义名称。

uniformGroup.vname?: string

统一变量定义名称。

hide_textures?: string[]

Returns

PropLayout

返回属性资源绑定组布局。


GetRenderPipeline()

GetRenderPipeline(id, framePass, materialSlot): GPURenderPipeline

获取对应帧通道使用的GPU着色器管线实例。

Parameters

id: number

着色器管线实例ID。

framePass: GLFramePass

帧通道配置。

materialSlot: number

材质槽索引。

Returns

GPURenderPipeline

返回GPU着色器管线实例。


GetShader()

GetShader(id): Shader

获取着色器实例。

Parameters

id: number

着色器实例ID。

Returns

Shader

返回着色器实例。


Init()

Init(): Promise<Context>

初始化GPU上下文接口。

Returns

Promise<Context>

返回GPU上下文接口。


SetIndexBuffer()

SetIndexBuffer(format, buffer, passEncoder): void

设置索引缓存。

Parameters

format: number

索引格式(2/4)。

buffer

索引缓存绑定描述。

buffer.buffer: number

缓存对象ID。

buffer.offset: number

数据在缓存中的字节偏移。

buffer.size: number

数据字节大小。

passEncoder: GPURenderPassEncoder

渲染通道命令编码器。

Returns

void


SetVertexBuffer()

SetVertexBuffer(slot, bufferID, offset, size, passEncoder): void

设置顶点缓存。

Parameters

slot: number

顶点缓存插槽。

bufferID: number

顶点缓存ID。

offset: number

顶点缓存绑定字节偏移。

size: number

顶点缓存绑定字节大小。

passEncoder: GPURenderPassEncoder

渲染通道命令编码器。

Returns

void


SetVertexBuffers()

SetVertexBuffers(vertexArray, buffers, passEncoder): number

批量绑定网格顶点缓存。

Parameters

vertexArray: number

顶点数组对象ID(WebGL使用)。

buffers: object[]

顶点缓存数组。

passEncoder: GPURenderPassEncoder

渲染通道命令编码器。

Returns

number

返回顶点数组对象ID(WebGL使用)。