QDiffuseSpecularMaterial 类

Qt3DExtras::QDiffuseSpecularMaterial

QDiffuseSpecularMaterial 类提供了 phong 照明效果的一个默认实现。 更多...

头文件 #include <QDiffuseSpecularMaterial>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmakeQT += 3dextras
由以下实例化 DiffuseSpecularMaterial
继承 Qt3DRender::QMaterial

属性

公共函数

QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)
virtual~QDiffuseSpecularMaterial()
QColorambient() const
QVariantdiffuse() const
boolisAlphaBlendingEnabled() const
QVariantnormal() const
floatshininess() const
QVariantspecular() const
floattextureScale() const

公共槽

voidsetAlphaBlendingEnabled(bool enabled)
voidsetAmbient(const QColor &ambient)
voidsetDiffuse(const QVariant &diffuse)
voidsetNormal(const QVariant &normal)
voidsetShininess(float shininess)
voidsetSpecular(const QVariant &specular)
voidsetTextureScale(float textureScale)

信号

voidalphaBlendingEnabledChanged(bool enabled)
voidambientChanged(const QColor &ambient)
voiddiffuseChanged(const QVariant &diffuse)
voidnormalChanged(const QVariant &normal)
voidshininessChanged(float shininess)
voidspecularChanged(const QVariant &specular)
voidtextureScaleChanged(float textureScale)

详细描述

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

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

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

属性文档

alphaBlending : bool

指示从漫反射属性来的alpha信息在渲染过程中是否被考虑。默认为false。

访问函数

boolisAlphaBlendingEnabled() const
voidsetAlphaBlendingEnabled(bool enabled)

通知信号

voidalphaBlendingEnabledChanged(bool enabled)

ambient : QColor

保存没有其他光源时物体发出的环境光颜色。

访问函数

QColorambient() const
voidsetAmbient(const QColor &ambient)

通知信号

voidambientChanged(const QColor &ambient)

diffuse : QVariant

保存用于光影响下粗糙表面反射的材质漫反射颜色。这可能是一个纯色值或者一个纹理。

访问函数

QVariantdiffuse() const
voidsetDiffuse(const QVariant &diffuse)

通知信号

voiddiffuseChanged(const QVariant &diffuse)

normal : QVariant

保存材质当前的法线纹理。这只能是一个纹理,否则将被忽略。默认此图没有设置。

访问函数

QVariantnormal() const
voidsetNormal(const QVariant &normal)

通知信号

voidnormalChanged(const QVariant &normal)

shininess : float

保存光泽度指数。光泽度更高的值将产生更小、更亮的高光。

默认为150.0。

访问函数

floatshininess() const
voidsetShininess(float shininess)

通知信号

voidshininessChanged(float shininess)

specular : QVariant

保存用于光影响下光滑表面反射的材质镜面反射颜色。这可能是一个纯色值或者一个纹理。

访问函数

QVariantspecular() const
voidsetSpecular(const QVariant &specular)

通知信号

voidspecularChanged(const QVariant &specular)

textureScale : float

存储当前的纹理缩放。在渲染时将其作为乘数应用于纹理坐标。默认值为1.0。

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

访问函数

floattextureScale() const
voidsetTextureScale(float textureScale)

通知信号

voidtextureScaleChanged(float textureScale)

成员函数文档

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

使用对象parent构造一个新的QDiffuseSpecularMaterial实例。

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

销毁QDiffuseSpecularMaterial

© 2024 The Qt Company Ltd. 本文档中的文档贡献权归其各自所有者所有。本提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可的。