Класс QDiffuseSpecularMaterial
класс Qt3DExtras::QDiffuseSpecularMaterialКласс QDiffuseSpecularMaterial предоставляет стандартную реализацию эффекта освещения Фонга. Подробнее...
| Заголовок: | #include <QDiffuseSpecularMaterial> |
| CMake: | find_package(Qt6 COMPONENTS 3dextras REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
| qmake: | QT += 3dextras |
| С момента: | Qt 5.10 |
| Инициализируется: | DiffuseSpecularMaterial |
| Наследуется от: | Qt3DRender::QMaterial |
Свойства
|
|
Открытые функции
| QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr) | |
| virtual | ~QDiffuseSpecularMaterial() |
| QColor | ambient() const |
| QVariant | diffuse() const |
| bool | isAlphaBlendingEnabled() const |
| QVariant | normal() const |
| float | shininess() const |
| QVariant | specular() const |
| float | textureScale() const |
Открытые слоты
| void | setAlphaBlendingEnabled(bool enabled) |
| void | setAmbient(const QColor &ambient) |
| void | setDiffuse(const QVariant &diffuse) |
| void | setNormal(const QVariant &normal) |
| void | setShininess(float shininess) |
| void | setSpecular(const QVariant &specular) |
| void | setTextureScale(float textureScale) |
Сигналы
| void | alphaBlendingEnabledChanged(bool enabled) |
| void | ambientChanged(const QColor &ambient) |
| void | diffuseChanged(const QVariant &diffuse) |
| void | normalChanged(const QVariant &normal) |
| void | shininessChanged(float shininess) |
| void | specularChanged(const QVariant &specular) |
| void | textureScaleChanged(float textureScale) |
Подробное описание
Эффект освещения Фонга основан на комбинации трех составляющих освещения: ambient, diffuse и specular. Относительная интенсивность этих составляющих контролируется коэффициентами отражения, которые моделируются в виде RGB-троек:
- Ambient — цвет, испускаемый объектом без других источников света.
- Diffuse — цвет, испускаемый при отражении света от шероховатой поверхности.
- Specular — цвет, испускаемый при отражении света от блестящей поверхности.
- Степень блеска поверхности регулируется свойством float.
Этот материал использует эффект с однопроходным рендерингом и выполняет освещение на фрагментном уровне. Предлагаются методы для OpenGL 2, OpenGL 3 или выше, а также OpenGL ES 2.
Документация свойств
alphaBlending : bool
Указывает, будет ли учитываться альфа-информация, полученная из свойства diffuse, при отрисовке. По умолчанию значение ложь.
Функции доступа:
| bool | isAlphaBlendingEnabled() const |
| void | setAlphaBlendingEnabled(bool enabled) |
Сигнал уведомления:
| void | alphaBlendingEnabledChanged(bool enabled) |
ambient : QColor
Содержит цвет окружающего света, испускаемый объектом без других источников света.
Функции доступа:
| QColor | ambient() const |
| void | setAmbient(const QColor &ambient) |
Сигнал уведомления:
| void | ambientChanged(const QColor &ambient) |
diffuse : QVariant
Содержит диффузный цвет материала, излучаемый при отражении от грубой поверхности с источниками света. Может быть как обычным цветом, так и текстурой.
Функции доступа:
| QVariant | diffuse() const |
| void | setDiffuse(const QVariant &diffuse) |
Сигнал уведомления:
| void | diffuseChanged(const QVariant &diffuse) |
normal : QVariant
Содержит текущую текстуру нормалей материала. Должна быть текстурой, в противном случае игнорируется. По умолчанию не задана.
Функции доступа:
| QVariant | normal() const |
| void | setNormal(const QVariant &normal) |
Сигнал уведомления:
| void | normalChanged(const QVariant &normal) |
shininess : float
Содержит показатель блеска. Большие значения показателя блеска приводят к более маленькому и яркому блику.
По умолчанию 150.0.
Функции доступа:
| float | shininess() const |
| void | setShininess(float shininess) |
Сигнал уведомления:
| void | shininessChanged(float shininess) |
specular : QVariant
Содержит цвет материала, излучаемый при отражении от глянцевой поверхности с источниками света. Может быть как обычным цветом, так и текстурой.
Функции доступа:
| QVariant | specular() const |
| void | setSpecular(const QVariant &specular) |
Сигнал уведомления:
| void | specularChanged(const QVariant &specular) |
textureScale : float
Содержит текущий масштаб текстуры. Применяется как множитель к координатам текстуры во время отрисовки. По умолчанию 1.0.
В сочетании с QTextureWrapMode::Repeat, textureScale обеспечивает простой способ масштабирования текстуры по поверхности. Например, масштаб текстуры 4.0 приведет к 16 (4x4) тайлам.
Функции доступа:
| float | textureScale() const |
| void | setTextureScale(float textureScale) |
Сигнал уведомления:
| void | textureScaleChanged(float textureScale) |
Документация функций-членов
QDiffuseSpecularMaterial::QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)
Создаёт новый экземпляр QDiffuseSpecularMaterial с родительским объектом parent.
[virtual] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()
Удаляет QDiffuseSpecularMaterial.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3dextras-qdiffusespecularmaterial.html