QNormalDiffuseMapMaterial 类

class Qt3DExtras::QNormalDiffuseMapMaterial

QNormalDiffuseMapMaterial 提供了 phong 光照和凹凸效果的默认实现,其中漫反射光成分从纹理图读取,而渲染网格的法线则从法线纹理图读取。更多...

头文件 #include <QNormalDiffuseMapMaterial>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmakeQT += 3dextras
继承自 Qt3DRender::QMaterial
继承类

Qt3DExtras::QNormalDiffuseMapAlphaMaterial

状态弃用

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

属性

公共函数

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

公共槽

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

信号

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

详细描述

此类已过时;请使用QDiffuseSpecularMaterial代替。

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

  • 环境光是无关其他光源发出的对象所发出的颜色。
  • 漫反射是有灯光参与下的粗糙表面反射所发出的颜色。
  • 镜面反射是有灯光参与下的光滑表面反射所发出的颜色。
  • 表面的光泽度通过一个浮点属性来控制。

此类使用具有单个渲染通道方法的效果,并执行每像素照明。提供OpenGL 2、OpenGL 3或更高版本以及OpenGL ES 2的技术。

属性文档

ambient : QColor

保存当前环境颜色。

访问函数

QColorambient() const
voidsetAmbient(const QColor &ambient)

通知信号

voidambientChanged(const QColor &ambient)

diffuse : Qt3DRender::QAbstractTexture*

保存当前漫反射贴图纹理。

默认情况下,漫反射纹理具有这些属性

  • 线性缩小和放大过滤器
  • 启用米普贴图的线性米普贴图
  • 重复包装模式M
  • 最大各向异性为16.0

访问函数

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

通知信号

voiddiffuseChanged(Qt3DRender::QAbstractTexture *diffuse)

normal : Qt3DRender::QAbstractTexture*

保存当前法线贴图纹理。

默认情况下,法线纹理具有以下属性

  • 线性缩小和放大过滤器
  • 重复包装模式
  • 最大各向异性为16.0

访问函数

Qt3DRender::QAbstractTexture *normal() const
voidsetNormal(Qt3DRender::QAbstractTexture *normal)

通知信号

voidnormalChanged(Qt3DRender::QAbstractTexture *normal)

shininess : float

保存当前光泽度作为一个浮点值。

访问函数

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] QNormalDiffuseMapMaterial::QNormalDiffuseMapMaterial(Qt3DCore::QNode *parent = nullptr)

使用父对象parent构建一个新的QNormalDiffuseMapMaterial实例。

[virtual noexcept] QNormalDiffuseMapMaterial::~QNormalDiffuseMapMaterial()

销毁QNormalDiffuseMapMaterial实例。

© 2024 Qt公司。此处包含的文档贡献的版权属于各自的版权所有者。此处提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可。Qt以及相应的标志是芬兰以及/或者是世界上其他国家的Qt公司的商标。所有其他商标是各自所有者的财产。