Класс QGoochMaterial
класс Qt3DExtras::QGoochMaterialКласс QGoochMaterial предоставляет материал, реализующий модель затенения Гуча, популярную в приложениях CAD и CAM. Подробнее...
| Заголовок: | #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-поверхностей. Это часто лучше, чем модели, такие как Фонг, которые полагаются только на изменения яркости. В ситуациях, таких как приложения CAD и CAM, где фотореализм не является целью, модель затенения Гуча в сочетании с каким-либо видом инкирования контуров силуэта — популярное решение.
Модель освещения Гуча подробно описана в оригинальной статье Гуча. Модель Гуча смешивает цвет диффузного объекта с предоставленным пользователем холодным и теплым цветами, чтобы получить конечные точки цветовой шкалы, используемой для затенения объекта на основе косинуса угла между вектором от фрагмента к источнику света и нормалью фрагмента. При необходимости можно добавить зеркальный блик поверх. Относительные вклады холодных и теплых цветов в диффузный цвет контролируются свойствами 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.2/qt3dextras-qgoochmaterial.html