QDiffuseSpecularMapMaterial 类

class Qt3D Extras::QDiffuseSpecularMapMaterial

QDiffuseSpecularMapMaterial 提供了 phong 光照效果的默认实现,其中漫反射和镜面反射光分量从纹理图中读取。 更多...

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

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

属性

公共函数

QDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
virtual~QDiffuseSpecularMapMaterial()
QColor环境光() const
Qt3DRender::QAbstractTexture *漫反射() const
float光泽度() const
Qt3DRender::QAbstractTexture *镜面反射() const
float纹理缩放() const

公共槽

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

信号

void环境光已更改(const QColor &ambient)
void漫反射已更改(Qt3DRender::QAbstractTexture *diffuse)
void光泽度已更改(float shininess)
void镜面反射已更改(Qt3DRender::QAbstractTexture *specular)
void纹理缩放已更改(float textureScale)

详细描述

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

镜面反射效果基于3个光成分的组合:环境、漫反射和镜面反射。通过它们的反射率系数和RGB三联组模型控制这些组件的相对强度。

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

此材质使用单次渲染通路方法的效果,并执行每片段照明。提供了OpenGL 2、OpenGL 3或以上以及OpenGL ES 2的技术。

属性说明

环境 : QColor

包含无其他光源发出的当前环境颜色。

访问函数

QColor环境() const
void设置环境(const QColor &环境)

通知信号

void环境更改(const QColor &环境)

diffuse : Qt3DRender::QAbstractTexture*

包含当前漫反射贴图纹理。

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

  • 线性缩小和放大过滤器
  • 启用MIP映射的线性MIP映射
  • 重复包装模式
  • 最大各向异性为16.0

访问函数

Qt3DRender::QAbstractTexture *diffuse() const
void设置漫反射(Qt3DRender::QAbstractTexture *diffuse)

通知信号

void漫反射更改(Qt3DRender::QAbstractTexture *diffuse)

shininess : float

包含当前光泽度作为浮点值。光泽度值越高,高亮区域越小、越亮。

默认值为150.0。

访问函数

floatshininess() const
void设置光泽度(float shininess)

通知信号

void光泽度更改(float shininess)

specular : Qt3DRender::QAbstractTexture*

包含当前的镜面反射贴图纹理。

默认情况下,镜面反射纹理具有以下属性

  • 线性缩小和放大过滤器
  • 启用MIP映射的线性MIP映射
  • 重复包装模式
  • 最大各向异性为16.0

访问函数

Qt3DRender::QAbstractTexture *specular() const
void设置镜面反射(Qt3DRender::QAbstractTexture *specular)

通知信号

void镜面反射更改(Qt3DRender::QAbstractTexture *specular)

textureScale : float

包含当前的纹理缩放。它在渲染时间作为乘数应用于纹理坐标。默认值为1.0。

当与QTextureWrapMode::Repeat结合使用时,textureScale为在表面上平铺纹理提供了一种简单的方法。例如,一个4.0的纹理缩放会生成16个(4x4)方块。

访问函数

floattextureScale() const
void设置纹理缩放(float textureScale)

通知信号

void纹理缩放更改(float textureScale)

成员函数说明

[显式] QDiffuseSpecularMapMaterial::QDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)

使用父对象parent构建新的QDiffuseSpecularMapMaterial实例。

[虚拟 noexcept] QDiffuseSpecularMapMaterial::~QDiffuseSpecularMapMaterial()

销毁QDiffuseSpecularMapMaterial实例。

© 2024 The Qt Company Ltd。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可第1.3版许可的。Qt及相关标志是The Qt Company Ltd在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。