跳到主要内容

Context

Ploy3D • Docs


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使用)。