跳到主要内容

Material

Ploy3DDocs


Ploy3D / Material

Class: Material

材质资源实例(G0、G2)。

Extends

Constructors

new Material()

new Material(impl, ptr, id): Material

构造函数。

Parameters

impl: Material_kernel

内核实现。

ptr: never

内核实例指针。

id: number

实例ID。

Returns

Material

Overrides

Uniform.constructor

Accessors

bindingID

get bindingID(): number

资源组绑定对象ID(0或1)。

set bindingID(value): void

Parameters

value: number

Returns

number

Inherited from

Uniform.bindingID


blockPtr

get blockPtr(): never

属性块地址指针。

Returns

never

Inherited from

Uniform.blockPtr


bufferID

get bufferID(): number

GPU常量缓存实例ID。

Returns

number

Inherited from

Uniform.bufferID


bufferPtr

get bufferPtr(): never

缓存地址指针。

Returns

never

Inherited from

Uniform.bufferPtr


bufferSize

get bufferSize(): number

缓存字节大小(256的倍数)。

Returns

number

Inherited from

Uniform.bufferSize


enableFlags

get enableFlags(): number

材质属性启用标志集(G2,RENDER_FLAGS高24位)。

set enableFlags(value): void

Parameters

value: number

Returns

number


group

get group(): number

资源组编号(可选值有0、1、2、3)。

Returns

number

Inherited from

Uniform.group


id

get id(): number

实例ID。

Returns

number

Inherited from

Uniform.id


internalPtr

get internalPtr(): never

内核实例指针。

Returns

never

Inherited from

Uniform.internalPtr


layoutID

get layoutID(): number

资源绑定组布局ID(同时也是着色器内部实例ID)。

Returns

number

Overrides

Uniform.layoutID


offset

get offset(): number

属性块在缓存中的字节偏移(256对齐)。

Returns

number

Inherited from

Uniform.offset


readTS

get readTS(): number

属性用于渲染读取时间戳。

set readTS(value): void

Parameters

value: number

Returns

number

Inherited from

Uniform.readTS


shader

get shader(): ShaderRes

材质使用的着色器资源。

Returns

ShaderRes


size

get size(): number

属性块在缓存中的字节大小(256对齐)。

Returns

number

Inherited from

Uniform.size


tuple

get tuple(): PropTuple

资源绑定组属性元组。

Returns

PropTuple

Inherited from

Uniform.tuple


updated

get updated(): boolean

属性块数据更新状态。

set updated(value): void

Parameters

value: boolean

Returns

boolean

Inherited from

Uniform.updated


view

get view(): Record<string, number[]>

材质属性访问视图。

Returns

Record<string, number[]>


writeTS

get writeTS(): number

属性上传GPU时间戳。

set writeTS(value): void

Parameters

value: number

Returns

number

Inherited from

Uniform.writeTS

Methods

AddRef()

AddRef(): void

增加实例引用。

Returns

void


Bind()

Bind(passEncoder): void

绑定资源组到着色器管线(包括统一缓存和所有贴图)。

Parameters

passEncoder: GPURenderPassEncoder

渲染通道命令编码器。

Returns

void

Inherited from

Uniform.Bind


Enable()

Enable(enable, flag): void

启用材质设置标志。

Parameters

enable: boolean

启用或禁用材质特性。

flag: DRAW_ARRAYS | HAS_DOUBLE_SIDED | HAS_EMISSIVE | HAS_REFLECTIONS | HAS_CLEAR_COAT | HAS_ANISOTROPY

材质特性标志。

Returns

void


GetTexture()

GetTexture(name): TextureNode

获取贴图属性。

Parameters

name: string

属性名称。

Returns

TextureNode

返回贴图描述符。


GetVector()

GetVector(name): number[]

获取向量属性(标量被视为一维向量)。

Parameters

name: string

属性名称。

Returns

number[]

返回数值数组。


HasProperty()

HasProperty(name): boolean

判断材质是否包含指定属性。

Parameters

name: string

属性名称(注意贴图属性需要加上"_uuid"后缀)。

Returns

boolean

返回true则包含指定属性。


ReadBufferNode()

ReadBufferNode(ptr): object

读取GPU常量缓存占用节点。

Parameters

ptr: never

缓存占用节点指针。

Returns

object

返回缓存占用节点成员数据。

buffer

buffer: never

bufferID

bufferID: number

offset

offset: number

size

size: number

Inherited from

Uniform.ReadBufferNode


Release()

Release(): void

释放实例引用。

Returns

void


SetBlendMode()

SetBlendMode(blendMode): void

设置材质混合模式。

Parameters

blendMode: BLEND_MODE

材质混合模式。

Returns

void


SetTexture()

SetTexture(name, value): void

设置贴图属性。

Parameters

name: string

属性名称。

value: TextureNode

贴图描述符(注意,贴图URI必须是UUID)。

Returns

void


SetVector()

SetVector(name, value): void

设置向量属性(标量被视为一维向量)。

Parameters

name: string

属性名称。

value: number[]

数值数组。

Returns

void


SubmitVector()

SubmitVector(name, value): void

设置向量属性并立即提交到GPU(用于小数据直接更新,标量被视为一维向量)。

Parameters

name: string

属性名称。

value: number[]

数值数组。

Returns

void