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的条款许可的。