QNormalDiffuseSpecularMapMaterial 类

Qt3DExtras::QNormalDiffuseSpecularMapMaterial

QNormalDiffuseSpecularMapMaterial 提供了 Phong 光照和凹凸效果的默认实现,其中漫反射和镜面光分量从纹理图中读取,而渲染的网格法线从法线纹理图中读取。

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

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

属性

公共函数

QNormalDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
virtual~QNormalDiffuseSpecularMapMaterial()
QColor环境色() const
Qt3DRender::QAbstractTexture *漫反射() const
Qt3DRender::QAbstractTexture *法线() const
float亮度() const
Qt3DRender::QAbstractTexture *镜面() const
float纹理缩放() const

公共槽

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

信号

void环境色变化(const QColor &ambient)
void漫反射变化(Qt3DRender::QAbstractTexture *diffuse)
voidnormalChanged(Qt3DRender::QAbstractTexture *normal)
voidshininessChanged(float shininess)
voidspecularChanged(Qt3DRender::QAbstractTexture *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*

保存当前的漫反射贴图。

默认情况下,漫反射贴图具有以下属性

  • 线性缩小和放大过滤器
  • 启用米普贴图
  • 重复包装模式
  • 最大各向异性为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 : Qt3DRender::QAbstractTexture*

保存当前的镜面反射贴图。

默认情况下,镜面反射贴图具有以下属性

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

访问函数

Qt3DRender::QAbstractTexture *specular() const
voidsetSpecular(Qt3DRender::QAbstractTexture *specular)

通知信号

voidspecularChanged(Qt3DRender::QAbstractTexture *specular)

textureScale : float

保存当前的纹理比例。在渲染时作为乘数应用于纹理坐标。默认为1.0。

当与 QTextureWrapMode::Repeat 结合使用时,textureScale 提供了一种简单的方法来在一个表面上平铺纹理。例如,纹理比例为4.0的纹理将产生16个(4x4)瓷砖。

访问函数

floattextureScale() const
voidsetTextureScale(float textureScale)

通知信号

voidtextureScaleChanged(float textureScale)

成员函数文档

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

构造一个具有父对象 parent 的新 QNormalDiffuseSpecularMapMaterial 实例。

[虚函数 noexcept] QNormalDiffuseSpecularMapMaterial::~QNormalDiffuseSpecularMapMaterial()

销毁 QNormalDiffuseSpecularMapMaterial 实例。

© 2024 Qt 公司。在此包含的文档贡献版权属于其所有者。提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可版 1.3 的条款进行许可。Qt 及相关标志是 Qt 公司在芬兰以及其他国家和地区注册的商标。所有其他商标均为其所有者财产。