Qt3DExtras::QPhongMaterial Class
class Qt3DExtras::QPhongMaterialQPhongMaterial 类提供了 phong 灯光效果的默认实现。更多
Header: | #include <QPhongMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake: | QT += 3dextras |
继承: | Qt3DRender::QMaterial |
状态: | 已废弃 |
该类已被弃用。我们强烈建议不要在新代码中使用它。
属性
公共功能
QPhongMaterial(Qt3DCore::QNode *parent = nullptr) | |
virtual | ~QPhongMaterial() |
QColor | ambient() const |
QColor | diffuse() const |
float | shininess() const |
QColor | specular() const |
公共插槽
void | setAmbient(const QColor &ambient) |
void | setDiffuse(const QColor &diffuse) |
void | setShininess(float shininess) |
void | setSpecular(const QColor &specular) |
信号
void | ambientChanged(const QColor &ambient) |
void | diffuseChanged(const QColor &diffuse) |
void | shininessChanged(float shininess) |
void | specularChanged(const QColor &specular) |
详细说明
该类已被弃用,请使用QDiffuseSpecularMaterial 。
phong 灯光效果是基于环境、漫反射和镜面三种照明成分的组合。这些组件的相对强度由它们的反射系数控制,反射系数以 RGB 三元组建模:
- 环境光是物体在没有任何其他光源的情况下发出的颜色。
- 漫反射(Diffuse)是灯光在物体表面反射时发出的颜色。
- 镜面反射色是在灯光照射下闪亮表面反射时发出的颜色。
- 表面的光泽度由浮点属性控制。
该材质采用了单次渲染通过的效果方法,并对每个片段进行照明。该技术适用于 OpenGL 2、OpenGL 3 或更高版本以及 OpenGL ES 2。
属性文档
ambient : QColor
保存环境颜色。
访问功能:
QColor | ambient() const |
void | setAmbient(const QColor &ambient) |
提示信号:
void | ambientChanged(const QColor &ambient) |
diffuse : QColor
保存漫反射颜色。
访问功能:
QColor | diffuse() const |
void | setDiffuse(const QColor &diffuse) |
通知信号:
void | diffuseChanged(const QColor &diffuse) |
shininess : float
保存光泽度指数。
访问功能:
float | shininess() const |
void | setShininess(float shininess) |
通知信号:
void | shininessChanged(float shininess) |
specular : QColor
保存镜面反射颜色。
访问功能
QColor | specular() const |
void | setSpecular(const QColor &specular) |
Notifier 信号:
void | specularChanged(const QColor &specular) |
成员函数 文档
[explicit]
QPhongMaterial::QPhongMaterial(Qt3DCore::QNode *parent = nullptr)
使用父对象parent 构建一个新的 QPhongMaterial 实例。
[virtual noexcept]
QPhongMaterial::~QPhongMaterial()
© 2025 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.