QDiffuseMapMaterial 类

class Qt3DExtras::QDiffuseMapMaterial

QDiffuseMapMaterial 提供了对 phong 光照效果的默认实现,其中漫反射光组件来自纹理图。 更多信息...

头文件 #include <QDiffuseMapMaterial>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmakeQT += 3dextras
继承 Qt3DRender::QMaterial
状态已弃用

此类已弃用。我们强烈建议不要在新代码中使用它。

属性

公共函数

QDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr)
virtual~QDiffuseMapMaterial()
QColorambient() const
Qt3DRender::QAbstractTexture *diffuse() const
floatshininess() const
QColorspecular() const
floattextureScale() const

公共槽

voidsetAmbient(const QColor &color)
voidsetDiffuse(Qt3DRender::QAbstractTexture *diffuse)
voidsetShininess(float shininess)
voidsetSpecular(const QColor &specular)
voidsetTextureScale(float textureScale)

信号

voidambientChanged(const QColor &ambient)
voiddiffuseChanged(Qt3DRender::QAbstractTexture *diffuse)
voidshininessChanged(float shininess)
voidspecularChanged(const QColor &specular)
voidtextureScaleChanged(float textureScale)

详细描述

此类已弃用;请使用Qt3DExtras::QDiffuseSpecularMaterial代替。

镜面光照效果基于三种光源的组合:环境光、漫射光和镜面光。这些成分的相对强度通过它们的反射率系数控制,这些系数建模为RGB三元组。

  • 环境光是指在没有其他光源的情况下,物体发出的颜色。
  • 漫射光是指光线与粗糙表面反射时发出的颜色。
  • 镜面光是指光线与光滑表面反射时发出的颜色。
  • 表面的光泽度由一个浮点属性控制。

此材质使用单次渲染遍历的渲染方法,并执行逐片段光照。为OpenGL 2、OpenGL 3或更高版本以及OpenGL ES 2提供了技术。

属性文档

ambient : QColor

保持当前的背景颜色。

访问函数

QColorambient() const
voidsetAmbient(const QColor &color)

通知信号

voidambientChanged(const QColor &ambient)

diffuse : Qt3DRender::QAbstractTexture*

保持当前用作漫射图的纹理。

默认情况下,漫射纹理具有以下属性

  • 线性最近放大和最小化过滤效果
  • 启用米波映射的线性米波
  • 重复包装模式
  • 最大各向异性为16.0

访问函数

Qt3DRender::QAbstractTexture *diffuse() const
voidsetDiffuse(Qt3DRender::QAbstractTexture *diffuse)

通知信号

voiddiffuseChanged(Qt3DRender::QAbstractTexture *diffuse)

shininess : float

保持当前的Shininess作为一个浮点值。

访问函数

floatshininess() const
voidsetShininess(float shininess)

通知信号

voidshininessChanged(float shininess)

specular : QColor

保持当前镜面反射颜色。

访问函数

QColorspecular() const
voidsetSpecular(const QColor &specular)

通知信号

voidspecularChanged(const QColor &specular)

textureScale : float

保持当前的纹理缩放。它在渲染时作为纹理坐标的乘数应用。默认为1.0。

当与QTextureWrapMode::Repeat一起使用时,textureScale为在表面之间平铺纹理提供了简单的方法。例如,4.0的纹理尺寸会产生16(4x4)个瓷砖。

访问函数

floattextureScale() const
voidsetTextureScale(float textureScale)

通知信号

voidtextureScaleChanged(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公司在芬兰及/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。