跳到主要内容

Material

Ploy3D / Material

Class: Material

材质实例。

Hierarchy

Table of contents

Constructors

Accessors

Methods

Constructors

constructor

new Material(id)

构造函数。

Parameters

NameTypeDescription
idnumber资源实例ID。

Overrides

Resource.constructor

Accessors

bindingID

get bindingID(): number

绑定对象ID。

Returns

number

set bindingID(value): void

特别指定(内部使用,以负值记录)绑定对象ID。

Parameters

NameType
valuenumber

Returns

void


bufferHeap

get bufferHeap(): number

缓存所属堆索引。

Returns

number


bufferID

get bufferID(): number

缓存ID。

Returns

number


bufferSize

get bufferSize(): number

缓存大小,不可扩容,256的倍数。

Returns

number


classid

get classid(): ClassID

实例类型ID。

Returns

ClassID

Inherited from

Resource.classid


g2_customID

get g2_customID(): number

用户定义ID。

Returns

number

set g2_customID(value): void

Parameters

NameType
valuenumber

Returns

void


g2_enableFlags

get g2_enableFlags(): number

材质属性启用标记集(G2,RENDERSETTINGS_FLAG.PROPS部分)。

Returns

number


g2_formatFlags

get g2_formatFlags(): number

材质贴图格式标记集(G2,每个贴图占2位,最多支持16个贴图)。

Returns

number


g3_ptrSkeletonSkin

get g3_ptrSkeletonSkin(): io_ptr

骨骼蒙皮数据(G3)。

Returns

io_ptr


group

get group(): number

属性组编号,可选值有0、1、2、3。

Returns

number


guid

get guid(): string

资源全球唯一ID。

Returns

string

Inherited from

Resource.guid


instanceID

get instanceID(): number

实例ID。

Returns

number

Inherited from

Resource.instanceID


internalPtr

get internalPtr(): io_ptr

实例内部指针。

Returns

io_ptr

Inherited from

Resource.internalPtr


label

get label(): string

实例用户可理解的外部标签。

Returns

string

Inherited from

Resource.label

set label(label): void

Parameters

NameType
labelstring

Returns

void

Inherited from

Resource.label


offset

get offset(): number

属性块在缓存中的位置偏移,256对齐。

Returns

number


package

get package(): Package

资源所属资源包。

Returns

Package

Inherited from

Resource.package


ptrCache

get ptrCache(): io_ptr

缓存内存块指针,256字节对齐。

Returns

io_ptr


ptrLut

get ptrLut(): Record<string, io_ptr>

获取属性指针字典。

Returns

Record<string, io_ptr>


readTS

get readTS(): number

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

Returns

number


shader

get shader(): ShaderRes

材质使用的着色器(材质未实例化时返回空)。

Returns

ShaderRes


shaderID

get shaderID(): number

着色器ID,0无效。

Returns

number


size

get size(): number

属性块在缓存中的占用大小,256对齐。

Returns

number


state

get state(): ResState

实例状态。

Returns

ResState

Inherited from

Resource.state


tuple

get tuple(): number

属性元组(属性访问器)ID。

Returns

number


updated

get updated(): number

属性块数据更新状态。

Returns

number


view

get view(): Record<string, ArrayLike<number>>

获取属性视图(注意,每次获取视图都会给视图绑定一个最新的地址,开发人员需要明确了解当前绑定地址未失效)。

Returns

Record<string, ArrayLike<number>>


writeTS

get writeTS(): number

属性上传GPU时间戳(为0时自动初始化属性块)。

Returns

number

Methods

Bind

Bind(passEncoder): void

绑定统一资源绑定对象。

Parameters

NameTypeDescription
passEncoderGLRenderPassEncoder渲染通道命令编码器。

Returns

void


Clear

Clear(): void

清除资源内部状态。

Returns

void

Inherited from

Resource.Clear


Enable

Enable(enable, flag): void

启用特殊属性标记。

Parameters

NameType
enableboolean
flagProps_combining_roughness_metallic | Props_normalTexFlipY | Props_doubleSided

Returns

void


GetTexture

GetTexture(name): Texture2D

获取贴图属性(材质未装载完成时返回空)。

Parameters

NameTypeDescription
namestring属性名称。

Returns

Texture2D


GetVector

GetVector(name): number[]

获取向量属性。 注意:标量被视为一维向量。

Parameters

NameTypeDescription
namestring属性名称。

Returns

number[]


HasProperty

HasProperty(name): boolean

判断材质是否包含指定属性(材质未实例化前总是返回false)。

Parameters

NameTypeDescription
namestring属性名称,注意贴图属性需要加上"_info"后缀。

Returns

boolean


Init

Init(_package, _asset): Promise<Material>

异步初始化资源实例

Parameters

NameTypeDescription
_packagePackage资源包实例。
_assetAsset资源数据。

Returns

Promise<Material>

返回异步对象。

Inherited from

Resource.Init


Release

Release(): void

释放资源引用(主要是贴图,注意该方法仅提供给内核在释放统一资源描述符前调用)。

Returns

void


SetBlendMode

SetBlendMode(blendMode): void

G2特殊方法,设置

Parameters

NameType
blendModeBlendMode

Returns

void


SetTexture

SetTexture(name, value): void

设置贴图属性(材质未装载完成时设置无效)。

Parameters

NameTypeDescription
namestring属性名称。
valueTexture2D贴图对象。

Returns

void


SetVector

SetVector(name, value): void

设置向量属性。 注意:标量被视为一维向量。

Parameters

NameTypeDescription
namestring属性名称。
valuenumber[]数值数组。

Returns

void