PrincipledMaterial QML Type
允许您使用“金属/粗糙度”工作流为 3D 对象定义材质。更多内容...
| Import Statement: | import QtQuick3D |
| Inherits: |
属性
- alphaCutoff : real
- alphaMode : enumeration
- attenuationColor : color
- attenuationDistance : real
- baseColor : color
- baseColorChannel : enumeration
(since 6.8) - baseColorMap : Texture
- baseColorSingleChannelEnabled : bool
(since 6.8) - blendMode : enumeration
- clearcoatAmount : real
- clearcoatChannel : enumeration
- clearcoatFresnelBias : real
- clearcoatFresnelPower : real
- clearcoatFresnelScale : real
- clearcoatFresnelScaleBiasEnabled : real
- clearcoatMap : Texture
- clearcoatNormalMap : Texture
- clearcoatNormalStrength : real
- clearcoatRoughnessAmount : real
- clearcoatRoughnessChannel : enumeration
- clearcoatRoughnessMap : Texture
- emissiveChannel : enumeration
(since 6.8) - emissiveFactor : vector3d
- emissiveMap : Texture
- emissiveSingleChannelEnabled : bool
(since 6.8) - fresnelBias : real
- fresnelPower : real
- fresnelScale : real
- fresnelScaleBiasEnabled : real
- heightAmount : real
- heightChannel : enumeration
- heightMap : Texture
- indexOfRefraction : real
- invertOpacityMapValue : real
(since 6.8) - lighting : enumeration
- lineWidth : real
- maxHeightMapSamples : int
- metalness : real
- metalnessChannel : enumeration
- metalnessMap : Texture
- minHeightMapSamples : int
- normalMap : Texture
- normalStrength : real
- occlusionAmount : real
- occlusionChannel : enumeration
- occlusionMap : Texture
- opacity : real
- opacityChannel : enumeration
- opacityMap : Texture
- pointSize : real
- roughness : real
- roughnessChannel : enumeration
- roughnessMap : Texture
- specularAmount : real
- specularChannel : enumeration
(since 6.8) - specularMap : Texture
- specularReflectionMap : Texture
- specularSingleChannelEnabled : bool
(since 6.8) - specularTint : real
- thicknessChannel : enumeration
- thicknessFactor : real
- thicknessMap : Texture
- transmissionChannel : enumeration
- transmissionFactor : real
- transmissionMap : Texture
- vertexColorAlphaMask : enumeration
(since 6.8) - vertexColorBlueMask : enumeration
(since 6.8) - vertexColorGreenMask : enumeration
(since 6.8) - vertexColorRedMask : enumeration
(since 6.8) - vertexColorsEnabled : bool
(since 6.5) - vertexColorsMaskEnabled : bool
(since 6.8)
详细说明
在场景中渲染模型之前,必须为其附加至少一种材质,以描述网格应如何着色。PrincipledMaterial 是一种 PBR 金属/粗糙度材质,旨在通过最少的参数集提供易于使用的材质。 除了参数数量少之外,所有输入值均严格归一化为 0 到 1 之间,并具有合理的默认值,这意味着即使不更改任何数值,该材质也能用于为模型着色。关于 PrincipledMaterial 的不同属性如何影响模型着色的介绍,请参阅Principled Material 示例。
金属/粗糙度工作流程
Principled材质属于金属/粗糙度材质,本质上意味着该材质的主要特性通过metallness 、roughness 以及base color 属性进行控制。
金属度
现实世界中的材质主要分为两类:金属和介电体(非金属)。在“基于原理的材质”中,材质所属的类别由“金属度”(metalness )值决定。 将metalness 值设为0表示该材质为介电体,而大于0的数值则被视为金属。实际上,金属的metalness 值通常为1,但0到1之间的数值也是可能的,通常用于反射率较低的金属。 例如,若要在材质上渲染腐蚀等效果,应降低该材质的metalness 值,使渲染结果更接近介电材质。由于metalness 值会影响材质的反射率,虽然可能想利用金属度来调整光泽度,但请先考虑您想要描述的是何种材质。 提高metalness 值以使介电材料看起来更光亮,会引入不符合介电材料实际特性的属性,因此请考虑是否更适合调整其他参数,例如roughness 值。
粗糙度
材质的“roughness ”描述了物体表面的状态。较低的“roughness ”值意味着物体表面光滑,因此其反射率会高于“roughness ”值较高的材质。
基色
金属/粗糙材质中的base color 同时包含漫反射和镜面反射数据,基础颜色在两者间如何分配主要由metalness 值决定。 例如,金属度值为 1 的材质,其大部分基色会被解释为镜面色,而漫反射色则呈现为黑色调;反之,金属度值为 0 的材质则会出现相反的情况。这当然有些简化,但大致说明了金属度(base color )和金属光泽度(metalness )值之间的相互作用。 对于更熟悉“镜面反射/光泽度”(Specular/Glossiness)工作流的用户来说,这里有一个值得注意的明显区别:即这两种材质的颜色数据并不直接兼容,因为在“镜面反射/光泽度”material 中,漫反射色和镜面反射色来自不同的输入源。
属性文档
alphaCutoff : real
alphaCutoff 属性可用于在使用Mask alphaMode 时指定阈值。当 alpha 值低于该阈值时,相应片段将被渲染为完全透明(所有颜色通道的值均为0.0 )。当 alpha 值等于或大于阈值时,颜色将不受任何影响。
默认值为 0.5。
另请参阅 alphaMode 。
alphaMode : enumeration
此属性指定如何使用baseColor 中的Alpha颜色值以及base color map 的Alpha通道。
注意:透明度截断测试 仅考虑基础颜色的透明度。opacity 和Node::opacity 在此处不予考虑。
注意:在 采样基础颜色图时 ,有效透明度值等于采样得到的透明度值乘以baseColor 的透明度值。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.Default | 不进行任何测试,有效透明度值按原样传递。 请注意,如果baseColor 或baseColorMap 的透明度小于1.0 ,并不自动意味着会进行透明度混合,如果没有其他相关属性(例如,不透明度小于 1、存在不透明度贴图或非默认的blendMode 值)触发将对象视为半透明,则具有该材质的对象仍可能被视为不透明。 若要确保无论其他对象或材质属性如何,都能发生透明度混合,请改设Blend 。 |
PrincipledMaterial.Blend | 此模式不进行遮罩测试,但保证会进行 Alpha 混合。因此,使用此材质的对象绝不会被渲染器视为不透明。 |
PrincipledMaterial.Opaque | 不进行阈值测试,且渲染对象被视为完全不透明,这意味着顶点颜色、基础颜色和基础颜色贴图中的 alpha 值将被忽略,并替换为 1.0。此模式不能保证不会发生 alpha 混合。 如果相关属性(例如,不透明度小于 1、不透明度贴图或非默认的blendMode )指定了此行为,则渲染管道仍会将该对象视为半透明,就像Default alphaMode 一样。 |
PrincipledMaterial.Mask | 将应用基于alphaCutoff 的测试。如果有效alpha值低于alphaCutoff ,则该片段将被设为完全透明并被丢弃(丢弃将产生相应后果:不会为该片段写入深度缓冲区)。 否则,透明度将调整为 1.0,使该片段完全不透明。在透明度混合方面,无论截断测试结果如何,此模式的行为均与Opaque 完全一致。这意味着glTF 2 规范中关于透明度覆盖的“实现说明”已得到满足。 具有透明度截断测试的对象也可以投射阴影,因为它们默认表现为不透明对象,除非相关属性(例如,不透明度小于 1、不透明度贴图或非默认的blendMode )表明情况并非如此(在这种情况下将无法投射阴影)。 |
另请参阅 alphaCutoff 和blendMode 。
attenuationColor : color
该属性定义了白光在到达衰减距离时,因吸收而转变成的颜色。默认值为Qt.White
attenuationDistance : real
该属性定义了介质的密度,即光在介质中传播至与粒子发生相互作用前的平均距离。该值以世界坐标系为单位。默认值为+infinity 。
baseColor : color
此属性用于设置材质的基色。根据指定的材质类型(金属或介质),漫反射和镜面反射通道将相应地进行设置。 例如,介电材料的漫反射颜色将等于基础颜色,而其镜面反射颜色则会根据镜面反射强度呈现出明亮的镜面反射色。对于金属材料,漫反射和镜面反射通道将由基础颜色混合生成,其中漫反射通道颜色较暗,镜面反射通道颜色则接近基础颜色。
另请参阅 baseColorMap 和alphaMode 。
baseColorChannel : enumeration [since 6.8]
该属性定义了用于从baseColorMap 读取baseColor 值的纹理通道。若要将单个纹理通道用作颜色,必须启用baseColorSingleChannelEnabled 。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
该属性于 Qt 6.8 中引入。
baseColorMap : Texture
此属性定义了用于设置材质基础色的纹理。
baseColorSingleChannelEnabled : bool [since 6.8]
启用此属性后,材质将把baseColorMap 中的baseColorChannel 的单一值作为RGB值,并将1.0作为透明度值。默认值为false。
该属性自 Qt 6.8 起引入。
blendMode : enumeration
此属性决定了渲染后的模型颜色与背景颜色如何融合。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.SourceOver | 默认混合模式。不透明物体将遮挡其后方的物体。对于使用此材质的模型,此默认模式本身并不能保证在渲染管线中进行阿尔法混合,而是将该决定取决于以下几个因素: 如果对象和材质的总不透明度为1.0 ,且材质中没有不透明度贴图,同时alphaMode 未设置为强制进行Alpha混合的值,则该模型将被视为不透明,这意味着它将与其他不透明对象一起,在启用深度测试和深度写入的情况下进行渲染,且禁用混合。 否则,该模型将被视为半透明对象,并在不透明对象之后渲染,与其他半透明对象一起按其中心点到摄像机的距离从后向前排序,同时启用 alpha 混合。 |
PrincipledMaterial.Screen | 颜色使用反相乘法进行混合,从而产生更浅的结果。这种混合模式与渲染顺序无关;如果您正在使用半不透明对象,并且由于面或模型的排序不同而出现“闪烁”现象,使用“屏幕混合”是一种避免闪烁的方法。 |
PrincipledMaterial.Multiply | 颜色采用“乘法”模式进行混合,产生较暗的效果。此混合模式同样不依赖渲染顺序。 |
另请参阅 alphaMode 和Qt Quick 3D Architecture。
clearcoatAmount : real
此属性定义清漆层的厚度。
默认值为0.0
clearcoatChannel : enumeration
此属性定义了用于从clearcoatMap 读取清漆量值的纹理通道。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取数值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
clearcoatFresnelBias : real
此属性会增强正向反射(直视表面时),同时保留掠射角下的反射效果。若要对材质进行调整,必须启用“clearcoatFresnelScaleBiasEnabled ”选项。默认值为0.0 。
clearcoatFresnelPower : real
该属性可在保持掠射角度下反射效果的同时,减少正向反射(即直接观察表面时的反射)。默认值为5.0 。
clearcoatFresnelScale : real
此属性会调整正对反射(直接观察表面时的反射效果),同时保留掠射角下的反射效果。若要修改该材质,需启用“clearcoatFresnelScaleBiasEnabled ”选项。默认值为“1.0 ”。
clearcoatFresnelScaleBiasEnabled : real
将该值设置为 true 后,材质将考虑“清漆菲涅尔比例”和“清漆菲涅尔偏移”参数。默认值为false 。
clearcoatMap : Texture
此属性定义了一种用于确定清漆层强度的纹理。clearcoatAmount 的值将乘以从该纹理中读取的值。
clearcoatNormalMap : Texture
此属性定义了一种纹理,用于确定应用于清漆层的法线贴图。
clearcoatNormalStrength : real
此属性用于控制clearcoatNormalMap 的模拟位移量。
clearcoatRoughnessAmount : real
此属性定义了清漆层的粗糙度。默认值为0.0
clearcoatRoughnessChannel : enumeration
该属性定义了用于从clearcoatRoughnessMap 读取清漆粗糙度值的纹理通道。默认值为Material.G 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
clearcoatRoughnessMap : Texture
该属性定义了一种用于确定清漆层粗糙度的纹理。clearcoatRoughnessAmount 的值将乘以从该纹理中读取的值。
emissiveChannel : enumeration [since 6.8]
该属性定义了用于从emissiveMap 读取发光值的纹理通道。若要将单个纹理通道用作颜色,必须启用emissiveSingleChannelEnabled 。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
该属性在 Qt 6.8 中引入。
emissiveFactor : vector3d
此属性决定该材质的自发光颜色。如果设置了发光贴图,则 x、y 和 z 分量将分别作为纹理中 R、G 和 B 通道的权重(乘数)。 默认值为 (0, 0, 0),这意味着完全没有发光效果。
注意:将 lightingMode设置 为 DefaultMaterial.NoLighting 时,发光因子对场景不会产生任何影响。
emissiveMap : Texture
此属性用于设置一个 RGB 纹理,该纹理将用于指定发光颜色的亮度。
emissiveSingleChannelEnabled : bool [since 6.8]
启用此属性后,材质将使用emissiveMap 中emissiveChannel 的单一值作为RGB值。默认值为false。
该属性自 Qt 6.8 起引入。
fresnelBias : real
此属性会增强正向反射(直视表面时),同时保留掠射角下的反射效果。若要对材质进行调整,必须启用“fresnelScaleBiasEnabled ”选项。默认值为0.0 。
fresnelPower : real
该属性可减少正向反射(直接观察表面时),同时保留掠射角下的反射。默认值为5.0 。
fresnelScale : real
此属性会调整正视反射(直接观察表面时)的强度,同时保留掠射角下的反射效果。若要更改该材质的设置,必须启用“fresnelScaleBiasEnabled ”选项。默认值为“1.0 ”。
fresnelScaleBiasEnabled : real
将该值设置为 true 后,材质将考虑菲涅尔比例和菲涅尔偏移量。默认值为false 。
heightAmount : real
此属性包含用于调整“heightMap ”纹理值的倍数。该值应在 0.0 到 1.0 之间。默认值为 0.0,这意味着即使设置了高度图,高度位移功能也将被禁用。
heightChannel : enumeration
该属性定义了用于从heightMap 读取高度值的纹理通道。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
heightMap : Texture
该属性定义了一种纹理,用于通过视差映射在渲染时确定纹理的位移量。该值应为0.0到1.0之间的线性数值,其中0.0表示无位移,1.0表示最大位移。
indexOfRefraction : real
该属性定义了材料的折射率。1.5 的默认值对于塑料或玻璃等材料来说是理想值,但对于水、沥青、蓝宝石或钻石等其他材料,则需要调整该值以使其看起来更逼真。对于逼真的材料,indexOfRefraction通常应在1.0 与3.0
以下是一些常见材料的折射率示例:
| 材料 | 折射率 |
|---|---|
| 空气 | 1.0 |
| 水 | 1.33 |
| 玻璃 | 1.55 |
| 蓝宝石 | 1.76 |
| 钻石 | 2.42 |
注: 目前世界上尚无任何 已知材料的折射率(ior)高于3.0 。
invertOpacityMapValue : real [since 6.8]
该属性会反转opacityMap 的不透明度值。默认值为false 。
该属性自 Qt 6.8 起引入。
lighting : enumeration
此属性用于定义生成该材质时采用哪种照明方法。
默认值为PrincipledMaterial.FragmentLighting
使用“PrincipledMaterial.FragmentLighting ”时,系统会为每个渲染像素计算漫反射和镜面反射光照。某些效果(例如菲涅尔效果或法线贴图)需要启用“PrincipledMaterial.FragmentLighting ”才能正常工作。
使用“PrincipledMaterial.NoLighting ”时,不会计算任何光照。此模式(不出所料)速度非常快,在使用无需光照着色的图像贴图时非常有效。除“baseColor ”值、Alpha 值和顶点颜色外,所有其他着色属性都将被忽略。
| 常量 | 值 |
|---|---|
PrincipledMaterial.NoLighting | |
PrincipledMaterial.FragmentLighting |
lineWidth : real
当几何体使用“线”或“线带”作为基元类型时,此属性用于确定渲染出的线条宽度。默认值为 1.0。在渲染其他类型的几何体(例如三角网格)时,此属性不适用。
警告: 根据底层图形 API 的不同,运行时可能不支持 1 以外的线宽 。在此情况下,更改线宽的请求将被忽略。例如,以下任何一种情况都不可能支持宽线:Direct3D、Metal 以及采用核心配置文件的 OpenGL 上下文。
maxHeightMapSamples : int
此属性定义了使用heightMap 执行视差遮挡映射时所使用的最大采样数。maxHeightMapSamples的值表示当视线与表面平行时,heightMap 中使用的采样数。默认值为32。
每个片段实际使用的采样数量将在minHeightMapSamples 和maxHeightMapSamples之间,具体取决于摄像机相对于正在渲染的表面的角度。
注意: 仅当出现不希望出现的伪像时,才应调整此 值以微调使用heightMap 的材质。
metalness : real
“金属性”属性定义了材料的金属性。该值为归一化值,其中 0.0表示该材料为介电(非金属)材料,1.0 表示该材料为金属。
注意:原则上, 材料要么是金属性为 0 的介电体,要么是金属性为 1 的金属。金属性值在 0 到 1 之间的情况仍然被允许,并将生成一种介于不同模型之间的混合材料。
取值范围为 [0.0, 1.0]。默认值为 0。
metalnessChannel : enumeration
此属性定义了用于从metalnessMap 中读取金属度值的纹理通道。默认值为Material.B 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 G 通道读取值。 |
Material.B | 从纹理 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
metalnessMap : Texture
此属性用于设置一种纹理,该纹理将用于为材质的不同部分设定金属度。
minHeightMapSamples : int
此属性定义了使用heightMap 进行视差遮挡映射时所使用的最小采样数。minHeightMapSamples的值表示当直接观察一个表面时(即摄像机视线与片段垂直时),heightMap 中使用的采样数。默认值为8。
每个片段实际使用的采样数量将在 minHeightMapSamples 和maxHeightMapSamples 之间,具体取决于摄像机相对于正在渲染的表面的角度。
注意: 仅当出现不希望出现的伪影时,才应调整此 值以微调使用heightMap 的材质。
normalMap : Texture
此属性定义了一张用于模拟材质表面精细几何位移的RGB图像。RGB通道分别表示X、Y、Z方向的法线偏移量。
注意:法线 贴图不会影响模型的轮廓。
normalStrength : real
此属性用于控制normalMap 的模拟位移量。
occlusionAmount : real
此属性包含用于调整“occlusionMap ”纹理中值的倍数。该值应在 0.0 到 1.0 之间。默认值为 1.0
occlusionChannel : enumeration
该属性定义了用于从occlusionMap 读取遮挡值的纹理通道。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
occlusionMap : Texture
该属性定义了一种纹理,用于确定材质不同区域应接收多少光照。其取值范围应为0.0至1.0的线性值,其中0.0表示无光照,1.0表示光照效果保持不变。
另请参阅 occlusionAmount 。
opacity : real
此属性仅降低该材质的透明度,与模型本身无关。
opacityChannel : enumeration
此属性定义了用于从opacityMap 读取不透明度值的纹理通道。默认值为Material.A 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
opacityMap : Texture
此属性定义了一种纹理,用于针对材质的不同部分以不同的方式控制其不透明度。
pointSize : real
当几何体使用“点”作为原始类型时,此属性决定渲染出的点的大小。默认值为 1.0。在渲染其他类型的几何体(例如三角网格)时,此属性不适用。
警告: 根据底层图形 API 的不同,运行时可能不支持 1 以外的点 大小。例如,在 Direct 3D 中,将大小设置为 1 以外的值将不起作用。
roughness : real
此属性控制由光源生成的镜面高光的大小,以及反射的整体清晰度。数值越大,粗糙度越高,镜面高光会变得柔和,反射也会变得模糊。取值范围为 [0.0, 1.0]。默认值为 0。
roughnessChannel : enumeration
此属性定义了用于从roughnessMap 读取粗糙度值的纹理通道。默认值为Material.G 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的R通道读取值。 |
Material.G | 从纹理的 G 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
roughnessMap : Texture
此属性定义了一种纹理,用于控制材质的镜面粗糙度。
specularAmount : real
此属性用于控制镜面反射强度(高光和反射)。
取值范围为 [0.0, 1.0]。默认值为1.0 。
注意:对于 非介电材料(金属),此属性无效。
注意:此 属性不会影响specularReflectionMap ,但会影响场景中SceneEnvironment::lightProbe 的反射量。
specularChannel : enumeration [since 6.8]
该属性定义了用于从specularMap 读取镜面反射颜色值的纹理通道。若要使用单个纹理通道作为颜色,必须启用specularSingleChannelEnabled 。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 G 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
该属性于 Qt 6.8 版本中引入。
specularMap : Texture
该属性定义了一个RGB纹理,用于调节材质表面上镜面反射的强度和颜色。这些数值将与specularAmount 相乘。
注意: 除非该材质为介电材质,否则将忽略镜面反射贴图 。
specularReflectionMap : Texture
此属性用于设置材质上用于镜面高光的纹理。
这通常用于实现环境映射:当模型旋转时,纹理会呈现出仿佛从环境中反射而来的效果。为了使该功能按预期工作,纹理的mappingMode 属性需要设置为Texture.Environment。镜面反射纹理是一种以相对较低的计算成本轻松提升画面质感的方法。
注意:将 light probe 与SceneEnvironment关联 (从而依赖基于图像的照明),可以实现类似的环境反射效果。然而,光探针在概念上有所不同,且在性能方面可能是更耗资源的解决方案。 每种方法都有其特定的用途,具体选用哪种需要根据具体情况决定。在“纹理”(Texture)属性设置方面,“镜面反射贴图”(specularReflectionMap)具有优势,因为它没有限制,并支持所有类型的纹理,包括那些通过“sourceItem ”从Qt Quick 子场景中获取数据的纹理。
注意:清晰的 图像会使材质看起来非常光亮;图像模糊程度越高,材质外观就越柔和。
另请参阅 Texture::mappingMode 。
specularSingleChannelEnabled : bool [since 6.8]
启用此属性后,材质将使用specularMap 中specularChannel 的单一值作为RGB值。默认值为false。
该属性自 Qt 6.8 起引入。
specularTint : real
此属性定义了底色在镜面反射中所占的比例。
注意:此 属性仅适用于介电材料。
thicknessChannel : enumeration
此属性定义了用于从transmissionMap 读取厚度值的纹理通道。默认值为Material.G 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的 R 通道读取值。 |
Material.G | 从纹理的 R 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
thicknessFactor : real
该属性定义了表面下方体积的厚度。与PrincipledMaterial 的许多其他属性不同,thicknessFactor中定义的值是0.0到+无穷大之间的数值,表示模型坐标系中的厚度。值为0.0表示该材料为薄壁结构。默认值为0.0
thicknessMap : Texture
该属性定义了一种用于确定材质体积厚度的纹理。thicknessFactor 的值将与从该纹理中读取的值相乘。
transmissionChannel : enumeration
该属性定义了用于从transmissionMap 读取透射百分比的纹理通道。默认值为Material.R 。
| 常量 | 描述 |
|---|---|
Material.R | 从纹理的R通道读取值。 |
Material.G | 从纹理的 G 通道读取值。 |
Material.B | 从纹理的 B 通道读取值。 |
Material.A | 从纹理的 A 通道读取值。 |
transmissionFactor : real
该属性定义了透过材料表面的光线的百分比。默认值为0.0
transmissionMap : Texture
该属性定义了一种用于确定光线透过表面的百分比的纹理。transmissionFactor 的值将与从该纹理中读取的值相乘。
vertexColorAlphaMask : enumeration [since 6.8]
此属性定义用作指定蒙版顶点颜色的Alpha通道。该值是由标志位按位组合而成的。默认值为PrincipledMaterial.NoMask 。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.NoMask | . |
PrincipledMaterial.ClearcoatAmountMask | . |
PrincipledMaterial.ClearcoatRoughnessAmountMask | . |
PrincipledMaterial.ClearcoatNormalStrengthMask | . |
PrincipledMaterial.HeightAmountMask | . |
PrincipledMaterial.MetalnessMask | . |
PrincipledMaterial.RoughnessMask | . |
PrincipledMaterial.NormalStrengthMask | . |
PrincipledMaterial.OcclusionAmountMask | . |
PrincipledMaterial.SpecularAmountMask | . |
PrincipledMaterial.ThicknessFactorMask | . |
PrincipledMaterial.TransmissionFactorMask | . |
该属性在 Qt 6.8 中引入。
vertexColorBlueMask : enumeration [since 6.8]
此属性定义用作指定蒙版顶点颜色的蓝色通道。该值是由标志位按位组合而成的。默认值为PrincipledMaterial.NoMask 。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.NoMask | . |
PrincipledMaterial.ClearcoatAmountMask | . |
PrincipledMaterial.ClearcoatRoughnessAmountMask | . |
PrincipledMaterial.ClearcoatNormalStrengthMask | . |
PrincipledMaterial.HeightAmountMask | . |
PrincipledMaterial.MetalnessMask | . |
PrincipledMaterial.RoughnessMask | . |
PrincipledMaterial.NormalStrengthMask | . |
PrincipledMaterial.OcclusionAmountMask | . |
PrincipledMaterial.SpecularAmountMask | . |
PrincipledMaterial.ThicknessFactorMask | . |
PrincipledMaterial.TransmissionFactorMask | . |
该属性在 Qt 6.8 中引入。
vertexColorGreenMask : enumeration [since 6.8]
此属性定义用作指定蒙版顶点颜色的绿色通道。该值是由标志位按位组合而成的。默认值为PrincipledMaterial.NoMask 。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.NoMask | . |
PrincipledMaterial.ClearcoatAmountMask | . |
PrincipledMaterial.ClearcoatRoughnessAmountMask | . |
PrincipledMaterial.ClearcoatNormalStrengthMask | . |
PrincipledMaterial.HeightAmountMask | . |
PrincipledMaterial.MetalnessMask | . |
PrincipledMaterial.RoughnessMask | . |
PrincipledMaterial.NormalStrengthMask | . |
PrincipledMaterial.OcclusionAmountMask | . |
PrincipledMaterial.SpecularAmountMask | . |
PrincipledMaterial.ThicknessFactorMask | . |
PrincipledMaterial.TransmissionFactorMask | . |
该属性在 Qt 6.8 中引入。
vertexColorRedMask : enumeration [since 6.8]
此属性定义用作指定遮罩的顶点颜色红色通道。该值是由标志位按位组合而成的。默认值为PrincipledMaterial.NoMask 。
| 常量 | 描述 |
|---|---|
PrincipledMaterial.NoMask | . |
PrincipledMaterial.ClearcoatAmountMask | . |
PrincipledMaterial.ClearcoatRoughnessAmountMask | . |
PrincipledMaterial.ClearcoatNormalStrengthMask | . |
PrincipledMaterial.HeightAmountMask | . |
PrincipledMaterial.MetalnessMask | . |
PrincipledMaterial.RoughnessMask | . |
PrincipledMaterial.NormalStrengthMask | . |
PrincipledMaterial.OcclusionAmountMask | . |
PrincipledMaterial.SpecularAmountMask | . |
PrincipledMaterial.ThicknessFactorMask | . |
PrincipledMaterial.TransmissionFactorMask | . |
该属性在 Qt 6.8 中引入。
vertexColorsEnabled : bool [since 6.5]
启用此属性后,材质将使用网格的顶点颜色。这些颜色将与为该材质指定的其他颜色相乘。默认值为 true。
该属性自 Qt 6.5 起引入。
vertexColorsMaskEnabled : bool [since 6.8]
启用此属性后,材质将使用网格的顶点颜色作为各种属性(例如 RoughnessAmount、SpecularAmount 等)的蒙版。默认值为 false。
该属性于 Qt 6.8 中引入。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.