QNormalDiffuseMapMaterial 类
class Qt3DExtras::QNormalDiffuseMapMaterialQNormalDiffuseMapMaterial 提供了 phong 光照和凹凸效果的默认实现,其中漫反射光成分从纹理图读取,而渲染网格的法线则从法线纹理图读取。更多...
| 头文件 | #include <QNormalDiffuseMapMaterial> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) | 
| qmake | QT += 3dextras | 
| 继承自 | Qt3DRender::QMaterial | 
| 继承类 | |
| 状态 | 弃用 | 
此类已被弃用。我们强烈建议不要在新代码中使用它。
属性
| 
 | 
公共函数
| QNormalDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr) | |
| virtual | ~QNormalDiffuseMapMaterial() | 
| QColor | ambient() const | 
| Qt3DRender::QAbstractTexture * | diffuse() const | 
| Qt3DRender::QAbstractTexture * | normal() const | 
| float | shininess() const | 
| QColor | specular() const | 
| float | textureScale() const | 
公共槽
| void | setAmbient(const QColor &ambient) | 
| void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) | 
| void | setNormal(Qt3DRender::QAbstractTexture *normal) | 
| void | setShininess(float shininess) | 
| void | setSpecular(const QColor &specular) | 
| void | setTextureScale(float textureScale) | 
信号
| void | ambientChanged(const QColor &ambient) | 
| void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) | 
| void | normalChanged(Qt3DRender::QAbstractTexture *normal) | 
| void | shininessChanged(float shininess) | 
| void | specularChanged(const QColor &specular) | 
| void | textureScaleChanged(float textureScale) | 
详细描述
此类已过时;请使用QDiffuseSpecularMaterial代替。
镜面照明效果基于三个照明组件的组合:环境光、漫反射和镜面反射。这些组件的相对强度通过它们的反射率系数来控制,这些系数被建模为RGB三元组。
- 环境光是无关其他光源发出的对象所发出的颜色。
- 漫反射是有灯光参与下的粗糙表面反射所发出的颜色。
- 镜面反射是有灯光参与下的光滑表面反射所发出的颜色。
- 表面的光泽度通过一个浮点属性来控制。
此类使用具有单个渲染通道方法的效果,并执行每像素照明。提供OpenGL 2、OpenGL 3或更高版本以及OpenGL ES 2的技术。
属性文档
ambient : QColor
保存当前环境颜色。
访问函数
| QColor | ambient() const | 
| void | setAmbient(const QColor &ambient) | 
通知信号
| void | ambientChanged(const QColor &ambient) | 
diffuse : Qt3DRender::QAbstractTexture*
保存当前漫反射贴图纹理。
默认情况下,漫反射纹理具有这些属性
- 线性缩小和放大过滤器
- 启用米普贴图的线性米普贴图
- 重复包装模式M
- 最大各向异性为16.0
访问函数
| Qt3DRender::QAbstractTexture * | diffuse() const | 
| void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) | 
通知信号
| void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) | 
normal : Qt3DRender::QAbstractTexture*
保存当前法线贴图纹理。
默认情况下,法线纹理具有以下属性
- 线性缩小和放大过滤器
- 重复包装模式
- 最大各向异性为16.0
访问函数
| Qt3DRender::QAbstractTexture * | normal() const | 
| void | setNormal(Qt3DRender::QAbstractTexture *normal) | 
通知信号
| void | normalChanged(Qt3DRender::QAbstractTexture *normal) | 
shininess : float
保存当前光泽度作为一个浮点值。
访问函数
| float | shininess() const | 
| void | setShininess(float shininess) | 
通知信号
| void | shininessChanged(float shininess) | 
specular : QColor
保存当前镜面反射颜色。
访问函数
| QColor | specular() const | 
| void | setSpecular(const QColor &specular) | 
通知信号
| void | specularChanged(const QColor &specular) | 
textureScale : float
保持当前纹理缩放。它在渲染时作为纹理坐标的乘数应用。默认为1.0。
当与QTextureWrapMode::Repeat一起使用时,textureScale提供了一种简单的方法来在表面平铺纹理。例如,纹理缩放为4.0会导致16(4x4)个砖块。
访问函数
| float | textureScale() const | 
| void | setTextureScale(float textureScale) | 
通知信号
| void | textureScaleChanged(float textureScale) | 
成员函数文档
[explicit] QNormalDiffuseMapMaterial::QNormalDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr)
使用父对象parent构建一个新的QNormalDiffuseMapMaterial实例。
[virtual noexcept] QNormalDiffuseMapMaterial::~QNormalDiffuseMapMaterial()
销毁QNormalDiffuseMapMaterial实例。
© 2024 Qt公司。此处包含的文档贡献的版权属于各自的版权所有者。此处提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可。Qt以及相应的标志是芬兰以及/或者是世界上其他国家的Qt公司的商标。所有其他商标是各自所有者的财产。