QDiffuseSpecularMaterial 类
类 Qt3DExtras::QDiffuseSpecularMaterialQDiffuseSpecularMaterial 类提供了 phong 照明效果的一个默认实现。 更多...
| 头文件 | #include <QDiffuseSpecularMaterial> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) | 
| qmake | QT += 3dextras | 
| 由以下实例化 | DiffuseSpecularMaterial | 
| 继承 | Qt3DRender::QMaterial | 
属性
| 
 | 
 | 
公共函数
| QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr) | |
| virtual | ~QDiffuseSpecularMaterial() | 
| QColor | ambient() const | 
| QVariant | diffuse() const | 
| bool | isAlphaBlendingEnabled() const | 
| QVariant | normal() const | 
| float | shininess() const | 
| QVariant | specular() const | 
| float | textureScale() const | 
公共槽
| void | setAlphaBlendingEnabled(bool enabled) | 
| void | setAmbient(const QColor &ambient) | 
| void | setDiffuse(const QVariant &diffuse) | 
| void | setNormal(const QVariant &normal) | 
| void | setShininess(float shininess) | 
| void | setSpecular(const QVariant &specular) | 
| void | setTextureScale(float textureScale) | 
信号
| void | alphaBlendingEnabledChanged(bool enabled) | 
| void | ambientChanged(const QColor &ambient) | 
| void | diffuseChanged(const QVariant &diffuse) | 
| void | normalChanged(const QVariant &normal) | 
| void | shininessChanged(float shininess) | 
| void | specularChanged(const QVariant &specular) | 
| void | textureScaleChanged(float textureScale) | 
详细描述
phong光照效果基于3个光照组件的结合:环境光、漫反射和镜面反射。这些组件的相对强度通过其反射率的系数控制,这些系数被建模为RGB三元组
- 环境光是指在没有其他光源的情况下,物体发出的颜色。
- 漫反射是在光的影响下,粗糙表面反射的颜色。
- 镜面反射是在光的照射下,光滑表面反射的颜色。
- 表面的光泽度由一个浮点属性控制。
此材质使用单次渲染通道方法并执行片段光照。提供了OpenGL 2,OpenGL 3或以上以及OpenGL ES 2的技术。
属性文档
alphaBlending : bool
指示从漫反射属性来的alpha信息在渲染过程中是否被考虑。默认为false。
访问函数
| bool | isAlphaBlendingEnabled() const | 
| void | setAlphaBlendingEnabled(bool enabled) | 
通知信号
| void | alphaBlendingEnabledChanged(bool enabled) | 
ambient : QColor
保存没有其他光源时物体发出的环境光颜色。
访问函数
| QColor | ambient() const | 
| void | setAmbient(const QColor &ambient) | 
通知信号
| void | ambientChanged(const QColor &ambient) | 
diffuse : QVariant
保存用于光影响下粗糙表面反射的材质漫反射颜色。这可能是一个纯色值或者一个纹理。
访问函数
| QVariant | diffuse() const | 
| void | setDiffuse(const QVariant &diffuse) | 
通知信号
| void | diffuseChanged(const QVariant &diffuse) | 
normal : QVariant
保存材质当前的法线纹理。这只能是一个纹理,否则将被忽略。默认此图没有设置。
访问函数
| QVariant | normal() const | 
| void | setNormal(const QVariant &normal) | 
通知信号
| void | normalChanged(const QVariant &normal) | 
shininess : float
保存光泽度指数。光泽度更高的值将产生更小、更亮的高光。
默认为150.0。
访问函数
| float | shininess() const | 
| void | setShininess(float shininess) | 
通知信号
| void | shininessChanged(float shininess) | 
specular : QVariant
保存用于光影响下光滑表面反射的材质镜面反射颜色。这可能是一个纯色值或者一个纹理。
访问函数
| QVariant | specular() const | 
| void | setSpecular(const QVariant &specular) | 
通知信号
| void | specularChanged(const QVariant &specular) | 
textureScale : float
存储当前的纹理缩放。在渲染时将其作为乘数应用于纹理坐标。默认值为1.0。
当与QTextureWrapMode::Repeat一起使用时,textureScale提供了一种在表面上平铺纹理的简单方法。例如,纹理缩放为4.0会导致16个(4x4)平铺。
访问函数
| float | textureScale() const | 
| void | setTextureScale(float textureScale) | 
通知信号
| void | textureScaleChanged(float textureScale) | 
成员函数文档
[显式] QDiffuseSpecularMaterial::QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)
使用对象parent构造一个新的QDiffuseSpecularMaterial实例。
[虚函数 noexcept] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()
© 2024 The Qt Company Ltd. 本文档中的文档贡献权归其各自所有者所有。本提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可的。