自发光高光材料 QML 类型

允许您使用自发光/光滑度工作流定义 3D 项目中的材料。 更多信息...

导入语句import QtQuick3D
继承

Material

属性

详细描述

在模型可以在场景中渲染之前,它必须至少有一个描述网格如何着色的材质附加到它上。SpecularGlossyMaterial是一种PBR(基于物理渲染)的镜面/光滑度材质,旨在提供一个参数设置简单的可易用材质。除了参数较少之外,所有输入值都在介于0和1之间严格归一化,并具有合理的默认值,这意味着即使不更改任何值,该材质也可以用来着色模型。有关SpecularGlossyMaterial的不同属性如何影响模型着色的介绍,请参见原理材质示例,它提供了一个使用Specular/Glossy工作流程的模式。

如果您想使用金属/粗糙度工作流程,请使用PrincipledMaterial

Specular/Glossiness工作流程

SpecularGlossyMaterial提供了一种使用镜面/光滑度类型工作流程创建材质的方法。材质的主要属性通过specularglossinessalbedo属性来控制。

镜面反射

specularColor属性描述了物体表面的镜面反射量和颜色。对于反射材料,主要的颜色贡献来自于这个属性。

光滑度

材质的glossiness描述了物体表面的状态。一个高的glossiness值意味着物体具有光滑的表面,并且与低glossiness值的材质相比,更具有反射性。

固有颜色

albedoColor属性描述了材质的漫反射颜色,并且与PrincipledMaterial的基础颜色不同,固有颜色不含有关材质反射率的任何信息。这意味着对于反射表面,固有颜色的颜色值应设置为黑色色调,这样可以允许镜面颜色做出贡献。

属性文档

albedoColor : 颜色

此属性设置材质的固有颜色。将漫反射颜色设置为黑色色调将创建一个纯镜面材料(例如金属或镜子)。

另请参阅 albedoMapalphaMode


albedoMap : 纹理

此属性定义了用于设置材质漫反射颜色的纹理。

另请参阅漫反射alphaMode


alphaCutoff : 浮点数

alphaCutoff属性可用于在使用遮罩alphaMode时指定截止值。alpha值低于阈值的片段将以完全透明的方式渲染(所有颜色通道的值为0.0)。当alpha值等于或大于截止值时,颜色将不受任何影响。

默认值为0.5。

另请参阅alphaMode


alphaMode : 枚举

此属性指定了如何使用来自albedoColoralbedo map的alpha颜色值。

注意:alpha截止测试仅考虑albedo颜色的alpha。在此不考虑不透明度Node::opacity

注意:采样albedo颜色图时,有效的alpha值是采样alpha乘以albedoColor alpha。

常数描述
SpecularGlossyMaterial.Default不应用测试,将有效的alpha值原样传递。注意,即使albedoColoralbedoMap alpha小于1.0,也不自动意味着alpha混合,使用该材质的对象仍可能被认为是完全不透明的,如果不存在其他相关属性(例如,不透明度小于1、存在不透明度图或非默认的混合模式值)触发将对象视为半透明。为确保无论任何其他对象或材质属性都发生alpha混合,请设置Blend
SpecularGlossyMaterial.Blend不应用截止测试,但保证发生alpha混合。因此,具有此材质的对象永远不会被渲染器视为不透明。
SpecularGlossyMaterial.Opaque不应用截止测试,并且假设渲染的对象是完全不透明的,这意味着忽略顶点颜色、漫反射颜色和漫反射颜色图中的alpha值,并替换为1.0的值。此模式不保证不会发生alpha混合。如果相关属性(如,不透明度小于1,不透明度图或非默认的混合模式值)指出如此,则渲染管线将像使用Default alphaMode一样将对象视为半透明。
SpecularGlossyMaterial.Mask基于alphaCutoff的测试被应用。如果有效alpha值低于alphaCutoff,则片段变为完全透明并被丢弃(包括丢弃的所有影响:该片段不会记录深度缓冲)。否则,alpha变为1.0,因此片段将变为完全不透明。在alpha混合时,无论截止测试的结果如何,该模式的行为与Opaque相同。这意味着满足了glTF 2规范中的alpha覆盖率实现备注。具有alpha截止测试的对象也可以投射阴影,因为它们默认表现为不透明对象,除非相关的属性(例如,不透明度小于1,不透明度贴图或非默认的混合模式)表明了其他情况(在这种情况下,无法投射阴影)。

另请参阅alphaCutoff混合模式


attenuationColor : 颜色

此属性定义了由于吸收而在到达衰减距离时白色灯光转变为的颜色。默认值是Qt.White


attenuationDistance : 浮点数

此属性定义了介质密度,即光在介质中传播的平均距离,在与前一个粒子相互作用之前。值在世界空间中给出。默认值是+无穷大


blendMode : 枚举

此属性确定模型的颜色与背后颜色如何混合。

常数描述
SpecularGlossyMaterial.SourceOver默认混合模式。不透明对象遮挡其后的对象。此默认模式本身不保证渲染管道中使用此材质的模型进行alpha混合,而是根据多个因素做出决定:如果对象的材质总不透明度是1.0,材质中不存在不透明度贴图,且alphaMode未设置为强制alpha混合的值,则模型被视为不透明,意味着它将启用深度测试和深度写入,与其他不透明对象一起渲染,禁用混合。否则,模型被视为半透明,并在不透明对象之后渲染,与其他半透明对象一起后往前顺序渲染,启用alpha混合。
SpecularGlossyMaterial.Screen使用反转的乘法混合颜色,产生较亮的结果。此混合模式是无顺序的;如果您使用半透明对象并经历“闪烁”,使用Screen混合是一种产生无闪烁结果的方法。
SpecularGlossyMaterial.Multiply使用乘法混合颜色,产生较暗的结果。此混合模式也是无顺序的。

另请参阅alphaModeQt Quick 3D架构


clearcoatAmount : 浮点数

此属性定义了清漆层的强度。

默认值是0.0


clearcoatChannel : 枚举

此属性定义了从clearcoatMap中读取清漆量值所使用的纹理通道。默认值是Material.R

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

clearcoatMap : 纹理

该属性定义了一个纹理,用于确定清漆层的强度。clearcoatAmount的值将与从该纹理读取的值相乘。


clearcoatNormalMap : 纹理

该属性定义了一个纹理,用于确定应用于清漆层的法线映射。


clearcoatRoughnessAmount : 浮点数

该属性定义了清漆层的粗糙度。默认值是0.0。


clearcoatRoughnessChannel : 枚举

该属性定义了从clearcoatRoughnessMap中读取清漆粗糙度值的纹理通道。默认值是Material.G。

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

clearcoatRoughnessMap : 纹理

该属性定义了一个纹理,用于确定清漆层的粗糙度。clearcoatRoughnessAmount的值将与从该纹理读取的值相乘。


emissiveFactor : vector3d

该属性确定该材料的自发光颜色。如果设置了发射图,则x、y和z分量分别用作纹理红、绿、蓝通道的因子(乘数)。默认值是(0, 0, 0),表示完全不进行发射。

注意: 将光照模式设置为DefaultMaterial.NoLighting意味着发射因子对场景没有影响。


emissiveMap : 纹理

该属性设置一个RGB纹理,用于指定发射颜色的强度。


glossiness : 实数

该属性控制由灯光产生的镜面高光的大小,以及通常情况下反射的清晰度。较小的值增加粗糙度,软化镜面高光并模糊反射。值的范围是[0.0, 1.0]。默认值是1.0。


glossinessChannel : 枚举

该属性定义了从glossinessMap中读取光泽度值的纹理通道。默认值是Material.A。

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

glossinessMap : 纹理

该属性定义了一个纹理,用于控制材料的光泽度。


heightAmount : 实数

该属性包含了一个修改heightMap纹理值的因子。值应在0.0到1.0之间。默认值是0.0,表示即使在设置了高度图的情况下,也将禁用高度位移。


heightChannel : 枚举

该属性定义了从heightMap中读取高度值的纹理通道。默认值是Material.R。

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

heightMap : 纹理

该属性定义了一个纹理,用于确定当通过透视映射渲染时纹理将被置换的高度。值应从0.0到1.0线性变化,其中0.0表示没有位移,1.0表示最大位移。


lighting : 枚举

此属性定义在生成此材质时使用哪种照明方法。

默认值是 SpecularGlossyMaterial.FragmentLighting

常数描述
SpecularGlossyMaterial.FragmentLighting每个渲染像素都会计算漫反射和镜面照明。某些效果(如菲涅尔或法线贴图)需要使用 SpecularGlossyMaterial.FragmentLighting 才能工作。
SpecularGlossyMaterial.NoLighting不计算照明。此模式(可预测地)非常快,当使用不需要由照明进行阴影的图像贴图时效果很好。除了固有值、alpha值和顶点颜色外的所有着色属性将被忽略。

lineWidth : 实数

当几何体使用线或线带原始类型时,此属性确定渲染线条的宽度。默认值为 1.0。此属性对于渲染三角形网格等其他类型的几何体不相关。

警告: 运行时可能不支持除 1 以外的线条宽度,这取决于底层的图形 API。在这种情况下,忽略更改宽度的请求。例如,以下都不能期望支持宽线:Direct3D、Metal、具有核心配置上下文的 OpenGL。


maxHeightMapSamples : 整数

此属性定义了使用 heightMap 进行并行遮挡映射所使用的最大样本数。maxHeightMapSamples 值表示当平行于表面查看时使用的 heightMap 的样本数。默认值是 32。

对每个片段实际使用的样本数将在 minHeightMapSamples 和 maxHeightMapSamples 之间,具体取决于相机相对于渲染的表面的角度。

注意: 只有当存在不希望出现的伪影时,才应调整此值以微调使用 heightMap 进行材料。


minHeightMapSamples : 整数

此属性定义使用 heightMap 进行并行遮挡映射所使用的最小样本数。minHeightMapSamples 值表示当直接查看表面(当相机视图垂直于碎片)时使用的 heightMap 的样本数。默认值是 8。

对每个片段实际使用的样本数将在 minHeightMapSamples 和 maxHeightMapSamples 之间,具体取决于相机相对于渲染的表面的角度。

注意: 只有当存在不希望出现的伪影时,才应调整此值以微调使用 heightMap 进行材料。


normalMap : 纹理

此属性定义用于在材质表面的整个表面上模拟精细几何位移的 RGB 图像。RGB 通道表示 XYZ 法线偏差。

注意: 法线贴图不会影响模型的轮廓。


normalStrength : 实数

此属性控制 normalMap 的模拟位移量。


occlusionAmount : 实数

此属性包含了修改 occlusionMap 纹理中值的因子。值应在 0.0 到 1.0 之间。默认为 1.0


occlusionChannel : 枚举

此属性定义从 occlusionMap 中读取遮挡值的纹理通道。默认值是 Material.R

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

occlusionMap : 纹理

此属性定义了一个纹理,用于确定不同区域应接收的间接光量。值的预期范围是0.0到1.0,其中0.0表示没有间接照明,1.0表示间接照明的效果保持不变。

参见occlusionAmount


opacity : 实数

此属性降低了这个材质的透明度,与模型分离。


opacityChannel : 枚举

此属性定义了用于从opacityMap读取透明度值的纹理通道。默认值为Material.A

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

opacityMap : 纹理

此属性定义了一个纹理,用于为材质的不同部分控制不同的透明度。


pointSize : 实数

当几何形状使用点的基本类型时,此属性确定渲染的点的大小。默认值为1.0。当渲染其他类型的几何形状,如三角形网格时,此属性不相关。

警告:运行时可能不支持除1以外的点大小,具体取决于底层图形API。例如,设置除1之外的大小在Direct 3D中没有效果。


specularColor : 颜色

此属性定义了镜面RGB颜色。如果提供了alpha值,它将被忽略。

默认值为Qt white


specularMap : 纹理

此属性设置一个纹理,用于为材质的不同部分设置镜面颜色。只使用RGB通道。


thicknessChannel : 枚举

此属性定义了用于从transmissionMap读取厚度值的纹理通道。默认值是Material.G

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

thicknessFactor : float

此属性定义了表面下体积的厚度。与其他许多SpecularGlossyMaterial属性不同,在厚度因子中定义的值是模型坐标空间中厚度的值从0.0到+无限。0.0的值表示材质是薄壁的。默认值是0.0


thicknessMap : 纹理

此属性定义了一个纹理,用于定义材质体积的厚度。将thicknessFactor的值乘以从该纹理读取的值。


transmissionChannel : 枚举

此属性定义了用于从transmissionMap读取透传百分比的纹理通道。默认值是Material.R

常数描述
Material.R从纹理R通道读取值。
Material.G从纹理G通道读取值。
Material.B从纹理B通道读取值。
Material.A从纹理A通道读取值。

transmissionFactor : float

此属性定义了通过材质表面的透传光线的百分比。默认值为0.0


transmissionMap : 纹理

此属性定义了一个纹理,用于确定通过表面的透传光线的百分比。将transmissionFactor的值乘以从该纹理读取的值。


vertexColorsEnabled : bool [自6.5版本起]

当启用此属性时,材质将使用从网格中获取的顶点颜色。这些颜色将与为材质指定的任何其他颜色相乘。默认值为true。

此属性是在Qt 6.5版本中引入的。


© 2024 Qt公司有限公司。本文件中的文档贡献者的版权为各自所有者所有。本提供的文档根据自由软件基金会发布的《GNU自由文档许可证》第1.3版条款提供。Qt及其相关商标为芬兰的Qt公司及其在全球的子公司或分支机构的所有。所有其他商标均为各自所有者的财产。