QNormalDiffuseSpecularMapMaterial 类
类 Qt3DExtras::QNormalDiffuseSpecularMapMaterialQNormalDiffuseSpecularMapMaterial 提供了 Phong 光照和凹凸效果的默认实现,其中漫反射和镜面光分量从纹理图中读取,而渲染的网格法线从法线纹理图中读取。
头文件 | #include <QNormalDiffuseSpecularMapMaterial> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake | QT += 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 |
公共槽
void | setAmbient(const QColor &ambient) |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
void | setNormal(Qt3DRender::QAbstractTexture *normal) |
void | setShininess(float shininess) |
void | setSpecular(Qt3DRender::QAbstractTexture *specular) |
void | setTextureScale(float textureScale) |
信号
void | 环境色变化(const QColor &ambient) |
void | 漫反射变化(Qt3DRender::QAbstractTexture *diffuse) |
void | normalChanged(Qt3DRender::QAbstractTexture *normal) |
void | shininessChanged(float shininess) |
void | specularChanged(Qt3DRender::QAbstractTexture *specular) |
void | textureScaleChanged(float textureScale) |
详细信息
此类已弃用;请使用 QDiffuseSpecularMaterial 代替。
镜面照明效果基于三种照明成分的组合:环境、漫反射和镜面反射。这些成分的相对强度通过它们的反射系数来控制,这些系数被建模为RGB三元组。
- 环境色是物体在没有其他光源的情况下发出的颜色。
- 漫反射是指物体在与光相互作用时在粗糙表面上发出的颜色。
- 镜面反射是指物体在与光相互作用时在光滑表面上发出的颜色。
- 表面的光泽度由一个浮点属性控制。
此材质使用单次渲染流程的效果,并执行逐片段照明。提供了OpenGL 2、OpenGL 3或更高版本以及OpenGL ES 2的技术。
属性文档
ambient : QColor
保存当前的漫反射色。
访问函数
QColor | ambient() const |
void | setAmbient(const QColor &ambient) |
通知信号
void | ambientChanged(const QColor &ambient) |
diffuse : Qt3DRender::QAbstractTexture*
保存当前的漫反射贴图。
默认情况下,漫反射贴图具有以下属性
- 线性缩小和放大过滤器
- 启用米普贴图
- 重复包装模式
- 最大各向异性为16.0
访问函数
Qt3DRender::QAbstractTexture * | diffuse() const |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
通知信号
void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) |
normal : Qt3DRender::QAbstractTexture*
保存当前的法线贴图。
默认情况下,法线贴图具有以下属性
- 线性缩小和放大过滤器
- 重复包装模式
- 最大各向异性为16.0
访问函数
Qt3DRender::QAbstractTexture * | normal() const |
void | setNormal(Qt3DRender::QAbstractTexture *normal) |
通知信号
void | normalChanged(Qt3DRender::QAbstractTexture *normal) |
shininess : float
保存当前的镜面光亮度作为浮点值。
访问函数
float | shininess() const |
void | setShininess(float shininess) |
通知信号
void | shininessChanged(float shininess) |
specular : Qt3DRender::QAbstractTexture*
保存当前的镜面反射贴图。
默认情况下,镜面反射贴图具有以下属性
- 线性缩小和放大过滤器
- 启用米普贴图
- 重复包装模式
- 最大各向异性为16.0
访问函数
Qt3DRender::QAbstractTexture * | specular() const |
void | setSpecular(Qt3DRender::QAbstractTexture *specular) |
通知信号
void | specularChanged(Qt3DRender::QAbstractTexture *specular) |
textureScale : float
保存当前的纹理比例。在渲染时作为乘数应用于纹理坐标。默认为1.0。
当与 QTextureWrapMode::Repeat 结合使用时,textureScale 提供了一种简单的方法来在一个表面上平铺纹理。例如,纹理比例为4.0的纹理将产生16个(4x4)瓷砖。
访问函数
float | textureScale() const |
void | setTextureScale(float textureScale) |
通知信号
void | textureScaleChanged(float textureScale) |
成员函数文档
[显式]
QNormalDiffuseSpecularMapMaterial::QNormalDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
构造一个具有父对象 parent 的新 QNormalDiffuseSpecularMapMaterial 实例。
[虚函数 noexcept]
QNormalDiffuseSpecularMapMaterial::~QNormalDiffuseSpecularMapMaterial()
销毁 QNormalDiffuseSpecularMapMaterial 实例。
© 2024 Qt 公司。在此包含的文档贡献版权属于其所有者。提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可版 1.3 的条款进行许可。Qt 及相关标志是 Qt 公司在芬兰以及其他国家和地区注册的商标。所有其他商标均为其所有者财产。