QDiffuseMapMaterial 类
class Qt3DExtras::QDiffuseMapMaterialQDiffuseMapMaterial 提供了对 phong 光照效果的默认实现,其中漫反射光组件来自纹理图。 更多信息...
头文件 | #include <QDiffuseMapMaterial> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake | QT += 3dextras |
继承 | Qt3DRender::QMaterial |
状态 | 已弃用 |
此类已弃用。我们强烈建议不要在新代码中使用它。
属性
|
公共函数
QDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr) | |
virtual | ~QDiffuseMapMaterial() |
QColor | ambient() const |
Qt3DRender::QAbstractTexture * | diffuse() const |
float | shininess() const |
QColor | specular() const |
float | textureScale() const |
公共槽
void | setAmbient(const QColor &color) |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
void | setShininess(float shininess) |
void | setSpecular(const QColor &specular) |
void | setTextureScale(float textureScale) |
信号
void | ambientChanged(const QColor &ambient) |
void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) |
void | shininessChanged(float shininess) |
void | specularChanged(const QColor &specular) |
void | textureScaleChanged(float textureScale) |
详细描述
此类已弃用;请使用Qt3DExtras::QDiffuseSpecularMaterial代替。
镜面光照效果基于三种光源的组合:环境光、漫射光和镜面光。这些成分的相对强度通过它们的反射率系数控制,这些系数建模为RGB三元组。
- 环境光是指在没有其他光源的情况下,物体发出的颜色。
- 漫射光是指光线与粗糙表面反射时发出的颜色。
- 镜面光是指光线与光滑表面反射时发出的颜色。
- 表面的光泽度由一个浮点属性控制。
此材质使用单次渲染遍历的渲染方法,并执行逐片段光照。为OpenGL 2、OpenGL 3或更高版本以及OpenGL ES 2提供了技术。
属性文档
ambient : QColor
保持当前的背景颜色。
访问函数
QColor | ambient() const |
void | setAmbient(const QColor &color) |
通知信号
void | ambientChanged(const QColor &ambient) |
diffuse : Qt3DRender::QAbstractTexture*
保持当前用作漫射图的纹理。
默认情况下,漫射纹理具有以下属性
- 线性最近放大和最小化过滤效果
- 启用米波映射的线性米波
- 重复包装模式
- 最大各向异性为16.0
访问函数
Qt3DRender::QAbstractTexture * | diffuse() const |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
通知信号
void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) |
shininess : float
保持当前的Shininess作为一个浮点值。
访问函数
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]
QDiffuseMapMaterial::QDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr)
使用父对象parent构造一个新的QDiffuseMapMaterial实例。
[virtual noexcept]
QDiffuseMapMaterial::~QDiffuseMapMaterial()
销毁QDiffuseMapMaterial实例。
© 2024 Qt公司有限公司。本文档中包含的文档贡献是各自所有者的版权。提供的文档在自由软件基金会发布的GNU自由文档许可证第1.3版下授权使用。GNU自由文档许可证版本 1.3由自由软件基金会发布。Qt及其相关标志是Qt公司在芬兰及/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。