Класс QGoochMaterial
класс Qt3DExtras::QGoochMaterialКласс QGoochMaterial предоставляет материал, реализующий модель затенения Гуча, популярную в приложениях САПР и СЧПУ. Подробнее...
| Заголовок: | #include <QGoochMaterial> |
| CMake: | find_package(Qt6 COMPONENTS 3dextras REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
| qmake: | QT += 3dextras |
| С момента: | Qt 5.7 |
| Наследуется от: | Qt3DRender::QMaterial |
Свойства
Открытые функции
| QGoochMaterial(Qt3DCore::QNode *parent = nullptr) | |
| float | alpha() const |
| float | beta() const |
| QColor | cool() const |
| QColor | diffuse() const |
| float | shininess() const |
| QColor | specular() const |
| QColor | warm() const |
Открытые слоты
| void | setAlpha(float alpha) |
| void | setBeta(float beta) |
| void | setCool(const QColor &cool) |
| void | setDiffuse(const QColor &diffuse) |
| void | setShininess(float shininess) |
| void | setSpecular(const QColor &specular) |
| void | setWarm(const QColor &warm) |
Сигналы
| void | alphaChanged(float alpha) |
| void | betaChanged(float beta) |
| void | coolChanged(const QColor &cool) |
| void | diffuseChanged(const QColor &diffuse) |
| void | shininessChanged(float shininess) |
| void | specularChanged(const QColor &specular) |
| void | warmChanged(const QColor &warm) |
Подробное описание
Модель освещения Гуча использует как цвет, так и яркость для отображения кривизны 3D-поверхностей. Это часто лучше, чем модели, такие как Фонг, которые полагаются исключительно на изменения яркости. В ситуациях, таких как в приложениях САПР и СЧПУ, где фотореализм не является целью, модель затенения Гуча в сочетании с каким-либо видом инкирования контуров силуэта является популярным решением.
Модель освещения Гуча подробно описана в оригинальной статье Гуча. Модель Гуча смешивает цвет объекта по умолчанию с заданным пользователем холодным цветом и теплым цветом, чтобы получить конечные точки цветового градиента, используемого для затенения объекта на основе косинуса угла между вектором от фрагмента к источнику света и нормалью фрагмента. Дополнительно может быть добавлен зеркальный блик. Относительные вклады холодного и теплого цветов в цвет по умолчанию контролируются свойствами alpha и beta соответственно.
Этот материал использует эффект с однопроходным рендерингом и выполняет освещение по фрагменту. Представлены методы для OpenGL 2, OpenGL 3 или выше, а также OpenGL ES 2.
Документация свойств
alpha : float
Содержит текущее значение alpha. Точка начала цветовой шкалы, используемой шейдером Gooch, вычисляется как {c = cool + alpha * diffuse}.
Функции доступа:
| float | alpha() const |
| void | setAlpha(float alpha) |
Сигнал уведомления:
| void | alphaChanged(float alpha) |
beta : float
Содержит текущее значение beta. Точка начала цветовой шкалы, используемой шейдером Gooch, вычисляется как {c = warm + beta * diffuse}.
Функции доступа:
| float | beta() const |
| void | setBeta(float beta) |
Сигнал уведомления:
| void | betaChanged(float beta) |
cool : QColor
Содержит текущий холодный цвет.
Функции доступа:
| QColor | cool() const |
| void | setCool(const QColor &cool) |
Сигнал уведомления:
| void | coolChanged(const QColor &cool) |
diffuse : QColor
Содержит текущий рассеянный цвет.
Функции доступа:
| QColor | diffuse() const |
| void | setDiffuse(const QColor &diffuse) |
Сигнал уведомления:
| void | diffuseChanged(const QColor &diffuse) |
shininess : float
Содержит текущее значение блеска. Более высокие значения блеска приводят к меньшему и более яркому блику.
Функции доступа:
| float | shininess() const |
| void | setShininess(float shininess) |
Сигнал уведомления:
| void | shininessChanged(float shininess) |
specular : QColor
Содержит текущий цвет зеркального отражения.
Функции доступа:
| QColor | specular() const |
| void | setSpecular(const QColor &specular) |
Сигнал уведомления:
| void | specularChanged(const QColor &specular) |
warm : QColor
Содержит текущий теплый цвет.
Функции доступа:
| QColor | warm() const |
| void | setWarm(const QColor &warm) |
Сигнал уведомления:
| void | warmChanged(const QColor &warm) |
Документация функций-членов
QGoochMaterial::QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
Создаёт новый экземпляр QGoochMaterial с родительским объектом parent.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qt3dextras-qgoochmaterial.html