自发光高光材料 QML 类型
允许您使用自发光/光滑度工作流定义 3D 项目中的材料。 更多信息...
导入语句 | import QtQuick3D |
继承 |
属性
- albedoColor : 颜色
- albedoMap : 纹理
- alphaCutoff : 实数
- alphaMode : 枚举
- attenuationColor : 颜色
- attenuationDistance : 浮点数
- blendMode : 枚举
- clearcoatAmount : 浮点数
- clearcoatChannel : 枚举
- clearcoatMap : 纹理
- clearcoatNormalMap : 纹理
- clearcoatRoughnessAmount : 浮点数
- clearcoatRoughnessChannel : 枚举
- clearcoatRoughnessMap : 纹理
- emissiveFactor : 向量3D
- emissiveMap : 纹理
- glossiness : 实数
- glossinessChannel : 枚举
- glossinessMap : 纹理
- heightAmount : 实数
- heightChannel : 枚举
- heightMap : 纹理
- lighting : 枚举
- lineWidth : 实数
- maxHeightMapSamples : 整数
- minHeightMapSamples : 整数
- normalMap : 纹理
- normalStrength : 实数
- occlusionAmount : 实数
- occlusionChannel : 枚举
- occlusionMap : 纹理
- 不透明度 : real
- 不透明度通道 : 枚举类型
- 不透明度贴图 : Texture
- 点大小 : real
- 镜面反射颜色 : 颜色
- 镜面反射贴图 : Texture
- 厚度通道 : 枚举类型
- 厚度因子 : float
- 厚度贴图 : Texture
- 透射通道 : 枚举类型
- 透射因子 : float
- 透射贴图 : Texture
- 启用顶点颜色 : bool
(since 6.5)
详细描述
在模型可以在场景中渲染之前,它必须至少有一个描述网格如何着色的材质附加到它上。SpecularGlossyMaterial是一种PBR(基于物理渲染)的镜面/光滑度材质,旨在提供一个参数设置简单的可易用材质。除了参数较少之外,所有输入值都在介于0和1之间严格归一化,并具有合理的默认值,这意味着即使不更改任何值,该材质也可以用来着色模型。有关SpecularGlossyMaterial的不同属性如何影响模型着色的介绍,请参见原理材质示例,它提供了一个使用Specular/Glossy工作流程的模式。
如果您想使用金属/粗糙度工作流程,请使用PrincipledMaterial。
Specular/Glossiness工作流程
SpecularGlossyMaterial提供了一种使用镜面/光滑度类型工作流程创建材质的方法。材质的主要属性通过specular、glossiness和albedo属性来控制。
镜面反射
specularColor属性描述了物体表面的镜面反射量和颜色。对于反射材料,主要的颜色贡献来自于这个属性。
光滑度
材质的glossiness描述了物体表面的状态。一个高的glossiness
值意味着物体具有光滑的表面,并且与低glossiness
值的材质相比,更具有反射性。
固有颜色
albedoColor属性描述了材质的漫反射颜色,并且与PrincipledMaterial的基础颜色不同,固有颜色不含有关材质反射率的任何信息。这意味着对于反射表面,固有颜色的颜色值应设置为黑色色调,这样可以允许镜面颜色做出贡献。
属性文档
alphaCutoff : 浮点数 |
alphaCutoff属性可用于在使用遮罩alphaMode时指定截止值。alpha值低于阈值的片段将以完全透明的方式渲染(所有颜色通道的值为0.0
)。当alpha值等于或大于截止值时,颜色将不受任何影响。
默认值为0.5。
另请参阅alphaMode。
alphaMode : 枚举 |
此属性指定了如何使用来自albedoColor和albedo map的alpha颜色值。
注意:alpha截止测试仅考虑albedo颜色的alpha。在此不考虑不透明度和Node::opacity。
注意:采样albedo颜色图时,有效的alpha值是采样alpha乘以albedoColor alpha。
常数 | 描述 |
---|---|
SpecularGlossyMaterial.Default | 不应用测试,将有效的alpha值原样传递。注意,即使albedoColor或albedoMap 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 | 使用乘法混合颜色,产生较暗的结果。此混合模式也是无顺序的。 |
另请参阅alphaMode和Qt 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 法线偏差。
注意: 法线贴图不会影响模型的轮廓。
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表示间接照明的效果保持不变。
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 |
当启用此属性时,材质将使用从网格中获取的顶点颜色。这些颜色将与为材质指定的任何其他颜色相乘。默认值为true。
此属性是在Qt 6.5版本中引入的。
© 2024 Qt公司有限公司。本文件中的文档贡献者的版权为各自所有者所有。本提供的文档根据自由软件基金会发布的《GNU自由文档许可证》第1.3版条款提供。Qt及其相关商标为芬兰的Qt公司及其在全球的子公司或分支机构的所有。所有其他商标均为各自所有者的财产。