Class Info |
|---|
class MaterialInstance 材质实例类,负责实现材质属性信息的定义,完成材质文件脚本化,实现加载与解析。创建材质实例,根据Pipeline state实现Pipeline共用,减少重复Pipeline创建时间。 |
Qualifier and Type | Method Name and Description |
|---|---|
void | Init() 初始化材质实例。 注意: 该接口已废弃。 |
void | Create() 创建材质实例。 注意: 该接口已废弃。 |
void | SetMaterial(Material* m) 设置材质类对象。 注意: 该接口已废弃。 |
const Material* | GetMaterial() const 获取材质类Material的指针。 注意: 该接口已废弃。 |
void | SetSubMeshInfo(const SubMesh* subMesh) 根据指定子网格设置管线状态绑定的顶点声明、顶点缓冲区和索引缓冲区。 注意: 该接口已废弃。 |
void | SetTexture(const String& name, const String& filePath)(const String& name, const String& filePath) 设置纹理。 注意: 该接口已废弃。 |
void | SetSamplerParam(const String& name, SamplerParam samplerParam) 设置采样参数。 注意: 该接口已废弃。 |
const String& | GetTexturePathByName(const String& name) const 获取指定名字的纹理路径。 注意: 该接口已废弃。 |
| 获取所有纹理路径。 注意: 该接口已废弃。 | |
TextureInfo* | GetTextureInfobyName(const String& name) const 获取指定名字的纹理信息。 注意: 该接口已废弃。 |
const RenderPipeline* | GetRenderPipeline() const 获取绑定的渲染管线指针。 注意: 该接口已废弃。 |
static MaterialInstance* | Request(const String& materialFile, const ResourceManager* resourceManager) 以共享方式获取材质实例。 |
static MaterialInstance* | New(const String& materialFile, const ResourceManager* resourceManager) 新建材质实例。 |
static void | Release(const MaterialInstance* materialInstance) 释放材质实例。 |
virtual bool | SetTechnique(const String& techniqueName) 切换到指定名字的材质实现方法。 注意: 该接口已废弃。 |
virtual String | GetTechniqueName() const 获取当前材质实现方法的名字。 |
virtual u32 | GetPassIndex(const String& name) const = 0 从当前材质实现方法中查询指定名字的渲染过程的索引。 |
virtual bool | 切换到指定索引的渲染过程。 |
virtual u32 | GetPass() const = 0 获取当前渲染过程的索引。 |
virtual bool | HasTexture(const String& name) const = 0 判断是否存在指定名字的纹理。 |
virtual void | SetTexture(const String& name, Texture* texture) = 0 设置指定名字的纹理。 |
virtual const Texture* | GetTexture(const String& name) const = 0 获取指定名字的纹理。 |
virtual void | SetCullMode(CullMode cullMode) = 0 设置管线中光栅化阶段的剔除模式参数。 |
virtual CullMode | GetCullMode() const = 0 获取管线中光栅化阶段的剔除模式参数。 |
virtual void | SetFillMode(FillMode fillMode) 设置管线中光栅化阶段的图元填充模式。 |
virtual FillMode | GetFillMode() const 获取管线中光栅化阶段的图元填充模式。 |
virtual void | SetFrontFace(FrontFace frontFace) 设置管线中光栅化阶段的三角形顶点绕序。 |
virtual FrontFace | GetFrontFace() const 获取管线中光栅化阶段的三角形顶点绕序,顺时针或逆时针。 |
void | SetMultiSampleEnable(bool bEnable) 设置多采样标志变量。 注意: 该接口已废弃。 |
bool | GetMultiSampleEnable() const 获取多采样标志变量。 注意: 该接口已废弃。 |
void | SetScissorEnable(bool bEnable) 设置剪裁使能标志变量。 注意: 该接口已废弃。 |
bool | GetScissorEnable() const 获取剪裁使能标志变量。 注意: 该接口已废弃。 |
virtual void | SetLineWidth(f32 lineWidth) 设置管线中光栅化阶段的渲染线宽度。 |
virtual f32 | GetLineWidth() const 获取管线中光栅化阶段的渲染线宽度。 |
virtual void | SetDepthTestEnable(bool depthTestEnable) 设置深度测试使能标志变量。 |
virtual bool | GetDepthTestEnable() const 获取深度测试使能标志变量。 |
virtual void | SetDepthWriteEnable(bool depthWriteEnable) 设置深度测试写入使能标志变量。 |
virtual bool | GetDepthWriteEnable() const 获取深度测试写入使能标志变量。 |
virtual void | SetDepthCompareOp(CompareOperation op) 设置深度测试比较方式。 |
virtual CompareOperation | GetDepthCompareOp() const 获取深度测试比较方式。 |
virtual void | SetStencilTestEnable(bool bEnable) 设置模板测试标志变量。 |
virtual bool | GetStencilTestEnable() const 获取模板测试标志变量。 |
virtual void | SetStencilFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板测试失败采取的行为。 |
virtual StencilOperation | GetStencilFail(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试失败采取的行为。 |
virtual void | SetStencilDepthFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板/深度测试失败采取的行为。 |
virtual StencilOperation | GetStencilDepthFail(StencilFaceFlag stencilFaceFlag) const = 0 获取模板、深度测试失败采取的行为。 |
virtual void | SetStencilPass(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板测试通过采取的行为。 |
virtual StencilOperation | GetStencilPass(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试通过采取的行为。 |
virtual void | SetStencilCompareOp(StencilFaceFlag stencilFaceFlag, CompareOperation op) = 0 设置模板测试函数。 |
virtual CompareOperation | GetStencilCompareOp(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试函数。 |
virtual void | SetStencilCompareMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试比较掩码值。 |
virtual u32 | GetStencilCompareMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试比较掩码值。 |
virtual void | SetStencilReference(StencilFaceFlag stencilFaceFlag, u32 ref) = 0 设置模板测试参考。 |
virtual u32 | GetStencilReference(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试参考。 |
virtual void | SetStencilReadMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试读掩码。 |
virtual u32 | GetStencilReadMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试读掩码。 |
virtual void | SetStencilWriteMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试写掩码。 |
virtual u32 | GetStencilWriteMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试写掩码。 |
virtual void | SetBlendingEnable(u32 index, bool bEnable) 设置每个颜色附件的混合状态使能标志变量。 |
virtual bool | GetBlendingEnable(u32 index) const 获取指定颜色附件的混合状态使能标志变量。 |
virtual void | SetSrcColorBlend(u32 index, BlendFactor srcColorBlend) 设置指定颜色附件的源颜色通道混合系数。 |
virtual BlendFactor | GetSrcColorBlend(u32 index) const 获取指定颜色附件的源颜色通道混合系数。 |
virtual void | SetDstColorBlend(u32 index, BlendFactor dstColorBlend) 设置指定颜色附件的目标颜色通道混合系数。 |
virtual BlendFactor | GetDstColorBlend(u32 index) const 获取指定颜色附件的目标颜色通道混合系数。 |
virtual void | SetColorBlendOperation(u32 index, BlendOperation colorBlendOp) 设置指定颜色附件的颜色混合操作。 |
virtual BlendOperation | GetColorBlendOperation(u32 index) const 获取指定颜色附件的颜色混合操作。 |
virtual void | SetSrcAlphaBlend(u32 index, BlendFactor srcAlphaBlend) 设置指定颜色附件的源Alpha通道系数。 |
virtual BlendFactor | GetSrcAlphaBlend(u32 index) const 获取指定颜色附件的源Alpha通道系数。 |
virtual void | SetDstAlphaBlend(u32 index, BlendFactor dstAlphaBlend) 设置指定颜色附件的目标Alpha通道系数。 |
virtual BlendFactor | GetDstAlphaBlend(u32 index) const 获取指定颜色附件的目标Alpha通道系数。 |
virtual void | SetAlphaBlendOperation(u32 index, BlendOperation alphaBlendOp) 设置指定颜色附件的Alpha通道混合操作。 |
virtual BlendOperation | GetAlphaBlendOperation(u32 index) const 获取指定颜色附件的Alpha通道混合操作。 |
void | SetBlendFactor(u32 index, float factor) 设置混合因子。 注意: 该接口已废弃。 |
float | GetBlendFactor(u32 index) const 获取混合因子。 注意: 该接口已废弃。 |
void | SetRenderTargetWriteMask(u32 index, u8 mask) 设置渲染目标写掩码。 注意: 该接口已废弃。 |
u8 | GetRenderTargetWriteMask(u32 index) const 获取渲染目标写掩码。 注意: 该接口已废弃。 |
virtual bool | IsTransparent() const 判断当前材质实现方法是否应用于透明物体。 |
virtual u32 | GetConstantValueIndex(const String& uniformName, const String& varName) const 获取指定名字的统一缓冲区中指定名字的参数索引。 |
virtual bool | SetConstantValue(u32 index, u32 data) 设置指定索引的统一缓冲区中u32的常量值。 |
virtual bool | SetConstantValue(u32 index, f32 data) 设置指定索引的统一缓冲区中f32的常量值。 |
virtual bool | SetConstantValue(u32 index, const Vector2& data) 设置指定索引的统一缓冲区中Vector2的常量值。 |
virtual bool | SetConstantValue(u32 index, const Vector3& data) 设置指定索引的统一缓冲区中Vector3的常量值。 |
virtual bool | SetConstantValue(u32 index, const Vector4& data) 设置指定索引的统一缓冲区中Vector4的常量值。 |
virtual bool | SetConstantValue(u32 index, const Matrix4& data) 设置指定索引的统一缓冲区中Matrix4的常量值。 |
virtual bool | SetConstantValue(u32 index, const Color& data) 设置指定索引的统一缓冲区中Color的常量值。 |
virtual u32 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中u32的常量值。 |
virtual f32 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中f32的常量值。 |
virtual Vector2 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中Vector2的常量值。 |
virtual Vector3 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中Vector3的常量值。 |
virtual Vector4 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中Vector4的常量值。 |
virtual Matrix4 | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中Matrix4的常量值。 |
virtual Color | GetConstantValue(u32 index) 获取指定索引的统一缓冲区中Color的常量值。 |
virtual void | Update() 更新材质相关信息。 |
virtual bool | Resume() 预留,实现为空。 |
virtual void | Pause() 预留,实现为空。 |
void | SetResourceManager(ResourceManager* resourceManager) |
virtual void | SetBlendConstants(const std::vector<f32>& blendConstants) = 0 设置颜色各分量的值,指定混合时颜色R、G、B、A的值。 |
virtual const std::vector<f32>& | GetBlendConstants() const = 0 获取颜色各分量的值,包含R、G、B、A。 |
virtual void | SetPushConstant(const String& name, const void* data) = 0 设置推送常量的值。 |
Destructor |
|---|
virtual ~MaterialInstance() 析构函数。 |
该接口已废弃。
Method |
|---|
void SetMaterial(const Material* m) 设置材质类对象。 |
Parameters
Name | Description |
|---|---|
m | 指向材质类的指针,负责管线初始化,着色器的绑定,纹理、光栅化状态、深度测试、混合操作的设置和获取。 |
该接口已废弃。
Method |
|---|
const Material* GetMaterial() const 获取材质类的Material的指针。 |
Returns
Type | Description |
|---|---|
const Material* | 材质类Material的指针。 |
该接口已废弃。
Method |
|---|
void SetSubMeshInfo(const SubMesh* subMesh) 根据指定子网格设置管线状态绑定的顶点声明、顶点缓冲区和索引缓冲区。 |
Parameters
Name | Description |
|---|---|
指向子网格的指针,提供绑定的顶点声明、顶点缓冲区、索引缓冲区等信息。 |
该接口已废弃。
Parameters
Name | Description |
|---|---|
name | 字符串类型,shader里对应的纹理名称。 |
filePath | 字符串类型着色器文件路径。 |
该接口已废弃。
Method |
|---|
void SetSamplerParam(const String& name, SamplerParam samplerParam) 设置采样参数,参数SamplerParam是结构体,包含纹理类型,纹理最小采样过滤器,纹理最大采样过滤器,MIPMAP采样模式,纹理寻址模式。 |
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
samplerParam | SamplerParam类型,采样器的采样参数设置。 |
该接口已废弃。
Method |
|---|
const String& GetTexturePathByName(const String& name) const 获取指定名称纹理的路径。 |
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
Returns
Type | Description |
|---|---|
const String& | 获取指定名称纹理的路径。 |
该接口已废弃。
Method |
|---|
StringVector GetTexturePaths() 获取所有纹理路径。 |
Returns
Type | Description |
|---|---|
获取所有纹理路径。 |
该接口已废弃。
Method |
|---|
TextureInfo* GetTextureInfobyName(const String& name) const 获取指定名字的纹理信息。 |
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
Returns
Type | Description |
|---|---|
TextureInfo* | 获取指定名字的纹理信息,比如set、binding、name等。 |
该接口已废弃。
Method |
|---|
const RenderPipeline* GetRenderPipeline() const 获取绑定的渲染管线指针。 |
Returns
Type | Description |
|---|---|
const RenderPipeline* | 获取绑定的渲染管线指针。 |
Method |
|---|
static MaterialInstance* Request(const String& materialFile, const ResourceManager* resourceManager) 以共享方式获取材质实例。 |
Parameters
Name | Description |
|---|---|
materialFile | 材质资源文件路径。 |
resourceManager |
Returns
Type | Description |
|---|---|
指向获取的材质实例类MaterialInstance的指针。 |
Method |
|---|
static MaterialInstance* New(const String& materialFile, const ResourceManager* resourceManager) 新建材质实例。 |
Parameters
Name | Description |
|---|---|
materialFile | 材质资源文件路径。 |
resourceManager |
Returns
Type | Description |
|---|---|
指向新建的材质实例类MaterialInstance的指针。 |
Method |
|---|
static void Release(const MaterialInstance* materialInstance) 释放材质实例。 |
Parameters
Name | Description |
|---|---|
materialInstance | 指向需要释放的材质实例类MaterialInstance的指针。 |
该接口已废弃。
Method |
|---|
virtual bool SetTechnique(const String& techniqueName) 切换到指定名字的材质实现方法。 |
Parameters
Name | Description |
|---|---|
techniqueName | 需要切换到的材质实现方法的名字。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual String GetTechniqueName() const 获取当前材质实现方法的名字。 |
Returns
Type | Description |
|---|---|
当前材质实现方法的名字。 |
Method |
|---|
virtual u32 GetPassIndex(const String& name) const 从当前材质实现方法中查询指定名字的渲染过程的索引,如果没有查询到返回0xffffffff。此索引和材质中配置的顺序一致,从0开始。 |
Parameters
Name | Description |
|---|---|
name | 需要查询的渲染过程的名字。 |
Returns
Type | Description |
|---|---|
查询到的渲染过程的索引。 |
Method |
|---|
virtual bool SetPass(u32 index) 切换到指定索引的渲染过程,如果需要更新渲染过程的内容,需要依据此接口切换到需要更新的渲染过程。 |
Parameters
Name | Description |
|---|---|
index | 需要切换到的渲染过程的索引。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual bool HasTexture(const String& name) const = 0 判断是否存在指定名字的纹理。 |
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
texture | 需要设置的纹理。 |
Parameters
Name | Description |
|---|---|
name | String类型,shader里对应的纹理名称。 |
Returns
Type | Description |
|---|---|
获取到的纹理。 |
Method |
|---|
virtual void SetCullMode(CullMode cullMode) = 0 设置管线中光栅化阶段的剔除模式参数。 |
Parameters
Name | Description |
|---|---|
cullMode | CullMode类型剔除模式枚举值。 |
Method |
|---|
virtual void SetFillMode(FillMode fillMode) 设置管线中光栅化阶段的图元填充模式。 |
Parameters
Name | Description |
|---|---|
fillMode | 填充模式枚举值,如点、线段、全填充。 |
Method |
|---|
virtual void SetFrontFace(FrontFace frontFace) 设置管线中光栅化阶段的三角形顶点绕序。 |
Parameters
Name | Description |
|---|---|
frontFace | FrontFace枚举值,顺时针或逆时针。 |
该接口已废弃。
Method |
|---|
void SetMultiSampleEnable(bool bEnable) 设置多采样使能标志变量。 |
Parameters
Name | Description |
|---|---|
bEnable |
|
该接口已废弃。
Method |
|---|
bool GetMultiSampleEnable() const 获取多采样使能标志变量,返回布尔类型多采样标志变量。 |
Returns
Type | Description |
|---|---|
bool |
|
该接口已废弃。
Method |
|---|
void SetScissorEnable(bool bEnable) 设置剪裁使能标志变量。 |
Parameters
Name | Description |
|---|---|
bEnable |
|
该接口已废弃。
Method |
|---|
bool GetScissorEnable() const 获取剪裁使能标志变量,返回布尔类型剪裁使能标志变量。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual void SetLineWidth(f32 lineWidth) 设置管线中光栅化阶段的渲染线宽度。 |
Parameters
Name | Description |
|---|---|
lineWidth | 需要设置的管线中光栅化阶段的渲染线宽度。 |
Method |
|---|
virtual f32 GetLineWidth() const 获取管线中光栅化阶段的渲染线宽度。 |
Returns
Type | Description |
|---|---|
获取到的管线中光栅化阶段的渲染线宽度。 |
Method |
|---|
virtual void SetDepthTestEnable(bool depthTestEnable) 设置深度测试使能标志变量。 |
Parameters
Name | Description |
|---|---|
depthTestEnable | 深度测试使能标志变量。 |
Method |
|---|
virtual bool GetDepthTestEnable() const 获取深度测试使能标志变量。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual void SetDepthWriteEnable(bool depthWriteEnable) 设置深度测试写入使能标志变量。 |
Parameters
Name | Description |
|---|---|
depthWriteEnable | 深度测试写入使能标志变量。 |
Method |
|---|
virtual bool GetDepthWriteEnable() const 获取深度测试写入使能标志变量。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual void SetDepthCompareOp(CompareOperation op) 设置深度测试比较方式。 |
Parameters
Name | Description |
|---|---|
op | CompareOperation类型深度测试比较方式枚举值。 |
Method |
|---|
virtual CompareOperation GetDepthCompareOp() const 获取深度测试比较方式。 |
Returns
Type | Description |
|---|---|
深度测试比较方式枚举值。 |
Method |
|---|
virtual void SetStencilTestEnable(bool bEnable) 设置模板测试使能标志变量。 |
Parameters
Name | Description |
|---|---|
bEnable |
|
Method |
|---|
virtual bool GetStencilTestEnable() const 获取模板测试使能标志变量,返回布尔类型模板测试标志变量。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual void SetStencilFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板测试失败采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
op | 模板操作测试类型,具体请参见StencilOperation。 |
Method |
|---|
virtual StencilOperation GetStencilFail(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试失败采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
根据模板测试前或后参数,获取当前模板测试失败采取的行为。 |
Method |
|---|
virtual void SetStencilDepthFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板深度测试失败采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
op | 模板操作测试类型,具体请参见StencilOperation。 |
Method |
|---|
virtual StencilOperation GetStencilDepthFail(StencilFaceFlag stencilFaceFlag) const = 0 获取模板深度测试失败采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板深度测试失败采取的行为。 |
Method |
|---|
virtual void SetStencilPass(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0 设置模板测试通过后采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
op | 模板操作测试类型,具体请参见StencilOperation。 |
Method |
|---|
virtual StencilOperation GetStencilPass(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试通过采取的行为。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板测试通过采取的行为。 |
Method |
|---|
virtual void SetStencilCompareOp(StencilFaceFlag stencilFaceFlag, CompareOperation op) = 0 设置模板测试函数。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
op | 深度测试比较方式,具体请参见CompareOperation。 |
Method |
|---|
virtual CompareOperation GetStencilCompareOp(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试函数。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板测试函数。 |
Method |
|---|
virtual void SetStencilCompareMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试比较掩码值。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
mask | 模板测试比较掩码值。 |
Method |
|---|
virtual u32 GetStencilCompareMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试比较掩码值。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板测试比较掩码值。 |
Method |
|---|
virtual void SetStencilReference(StencilFaceFlag stencilFaceFlag, u32 ref) = 0 设置模板测试参考。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
ref | 模板测试参考值。 |
Method |
|---|
virtual u32 GetStencilReference(StencilFaceFlag stencilFaceFlag) const = 0 获取设置模板测试参考。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取设置模板测试参考。 |
Method |
|---|
virtual void SetStencilReadMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试读掩码。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
mask | 模板测试读掩码值。 |
Method |
|---|
virtual u32 GetStencilReadMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试读掩码。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板测试读掩码。 |
Method |
|---|
virtual void SetStencilWriteMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0 设置模板测试写掩码。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
mask | 模板测试写掩码值。 |
Method |
|---|
virtual u32 GetStencilWriteMask(StencilFaceFlag stencilFaceFlag) const = 0 获取模板测试写掩码。 |
Parameters
Name | Description |
|---|---|
stencilFaceFlag | 要更新的模板状态的值,具体请参见StencilFaceFlag。 |
Returns
Type | Description |
|---|---|
获取模板测试写掩码。 |
Method |
|---|
virtual void SetBlendingEnable(u32 index, bool bEnable) 设置每个颜色附件的混合状态使能标志变量。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
bEnable | 混合状态使能标志变量。
|
Method |
|---|
virtual bool GetBlendingEnable(u32 index) const 获取指定颜色附件的混合状态使能标志变量。 |
Parameters
Name | Description |
|---|---|
index | 指定颜色附件索引。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual void SetSrcColorBlend(u32 index, BlendFactor srcColorBlend) 设置指定颜色附件的源颜色通道混合系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
srcColorBlend | 指定颜色附件的源颜色通道混合系数。 |
Method |
|---|
virtual BlendFactor GetSrcColorBlend(u32 index) const 获取指定颜色附件的源颜色通道混合系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的源颜色通道混合系数。 |
Method |
|---|
virtual void SetDstColorBlend(u32 index, BlendFactor dstColorBlend) 设置指定颜色附件的目标颜色通道混合系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
dstColorBlend | 指定颜色附件的目标颜色通道混合系数。 |
Method |
|---|
virtual BlendFactor GetDstColorBlend(u32 index) const 获取指定颜色附件的目标颜色通道混合系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的目标颜色通道混合系数。 |
Method |
|---|
virtual void SetColorBlendOperation(u32 index, BlendOperation colorBlendOp) 设置指定颜色附件的颜色混合操作。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
colorBlendOp | 颜色混合操作枚举值。 |
Method |
|---|
virtual BlendOperation GetColorBlendOperation(u32 index) const 获取指定颜色附件的颜色混合操作。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的颜色混合操作枚举值。 |
Method |
|---|
virtual void SetSrcAlphaBlend(u32 index, BlendFactor srcAlphaBlend) 设置指定颜色附件的源Alpha通道系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
srcAlphaBlend | 指定颜色附件的源Alpha通道系数。 |
Method |
|---|
virtual BlendFactor GetSrcAlphaBlend(u32 index) const 获取指定颜色附件的源Alpha通道系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的源Alpha通道系数。 |
Method |
|---|
virtual void SetDstAlphaBlend(u32 index, BlendFactor dstAlphaBlend) 设置指定颜色附件的目标Alpha通道系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
dstAlphaBlend | 指定颜色附件的目标Alpha通道系数。 |
Method |
|---|
virtual BlendFactor GetDstAlphaBlend(u32 index) const 获取指定颜色附件的目标Alpha通道系数。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的目标Alpha通道系数。 |
Method |
|---|
virtual void SetAlphaBlendOperation(u32 index, BlendOperation alphaBlendOp) 设置指定颜色附件的Alpha通道混合操作。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
alphaBlendOp | Alpha通道混合操作枚举值。请参见BlendOperation。 |
Method |
|---|
virtual BlendOperation GetAlphaBlendOperation(u32 index) const 获取指定颜色附件的Alpha通道混合操作。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
指定颜色附件的Alpha通道混合操作枚举值。 |
该接口已废弃。
Method |
|---|
void SetBlendFactor(u32 index, float factor) 设置混合因子。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
factor | 混合因子。 |
该接口已废弃。
Method |
|---|
float GetBlendFactor(u32 index) const 获取混合因子。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
float | 获取混合因子。 |
该接口已废弃。
Method |
|---|
void SetRenderTargetWriteMask(u32 index, u8 mask) 设置写入渲染目标的掩码。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
mask | 渲染目标写掩码。 |
该接口已废弃。
Method |
|---|
u8 GetRenderTargetWriteMask(u32 index) const 获取写入渲染目标的掩码。 |
Parameters
Name | Description |
|---|---|
index | 颜色附件索引。 |
Returns
Type | Description |
|---|---|
u8 | 获取写入渲染目标的掩码。 |
Method |
|---|
virtual bool IsTransparent() const 判断当前材质实现方法是否应用于透明物体。 |
Returns
Type | Description |
|---|---|
bool |
|
Method |
|---|
virtual u32 GetConstantValueIndex(const String& uniformName, const String& varName) const 获取指定名字的统一缓冲区中指定名字的参数索引。 |
Parameters
Name | Description |
|---|---|
uniformName | 统一缓冲区的名称。 |
varName | 需要获取索引的统一缓冲区内参数的名称。 |
Returns
Type | Description |
|---|---|
获取到的索引,分为两个部分,前16位表示材质中配置的“Constant”字段的索引,后16位表示“Value”字段在“Constant”字段中的索引。 |
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的u32常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的f32常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的Vector2常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的Vector3常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的Vector4常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的Matrix4常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要设置常量值的索引。 |
data | 需要设置的Color常量值。 |
Returns
Type | Description |
|---|---|
bool |
|
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Parameters
Name | Description |
|---|---|
index | 需要获取常量值的索引。 |
Returns
Type | Description |
|---|---|
获取到的常量值。 |
Method |
|---|
void SetResourceManager(ResourceManager* resourceManager) |
Parameters
Name | Description |
|---|---|
resourceManager | 设置ResourceManager指针,可以从SceneManager获取。 |
Method |
|---|
virtual void SetBlendConstants(const std::vector<f32>& blendConstants) = 0 设置颜色各分量的值,指定混合时颜色R、G、B、A的值。 |
Parameters
Name | Description |
|---|---|
blendConstants | 颜色的值,R、G、B、A。 |
Method |
|---|
virtual const std::vector<f32>& GetBlendConstants() const = 0 获取颜色各分量的值,包含R、G、B、A。 |
Returns
Type | Description |
|---|---|
virtual const std::vector<f32>& | 返回的颜色分量的数组,包含R、G、B、A。 |
Method |
|---|
virtual void SetPushConstant(const String& name, const void* data) = 0 设置推送常量的值。 |
Parameters
Name | Description |
|---|---|
name | 常量的名称。 |
data | 常量的指针。 |