23#include <Qt3DCore/QEntity>
24#include <Qt3DRender/QParameter>
26using namespace Qt::StringLiterals;
31 Q_ASSERT( metalRoughSettings );
42 return new QgsHighlightMaterial( technique );
45 QgsMetalRoughMaterial *material =
new QgsMetalRoughMaterial;
46 material->setObjectName( u
"metalRoughMaterial"_s );
48 material->setMetalness( std::clamp( metalRoughSettings->
metalness(), 0.0, 1.0 ) );
49 material->setRoughness( std::clamp( metalRoughSettings->
roughness(), 0.0, 1.0 ) );
64 QMap<QString, QString> parameters;
76 if ( material->objectName() !=
"metalRoughMaterial"_L1 )
79 Qt3DRender::QEffect *effect = material->effect();
81 if ( Qt3DRender::QParameter *p =
findParameter( effect, u
"baseColor"_s ) )
82 p->setValue( metalRoughSettings->
baseColor() );
83 if ( Qt3DRender::QParameter *p =
findParameter( effect, u
"metalness"_s ) )
84 p->setValue( metalRoughSettings->
metalness() );
85 if ( Qt3DRender::QParameter *p =
findParameter( effect, u
"roughness"_s ) )
86 p->setValue( metalRoughSettings->
roughness() );
MaterialRenderingTechnique
Material rendering techniques.
@ Points
Point based rendering, requires point data.
@ Triangles
Triangle based rendering (default).
@ TrianglesFromModel
Triangle based rendering, using a model object source.
@ Lines
Line based rendering, requires line data.
@ Billboards
Flat billboard rendering.
@ TrianglesDataDefined
Triangle based rendering with possibility of datadefined color.
@ InstancedPoints
Instanced based rendering, requiring triangles and point data.
@ TrianglesWithFixedTexture
Triangle based rendering, using a fixed, non-user-configurable texture (e.g. for terrain rendering).
static Qt3DRender::QParameter * findParameter(Qt3DRender::QEffect *effect, const QString &name)
Finds an existing parameter in an effect by name.
Abstract base class for material settings.
Context settings for a material.
QColor selectionColor() const
Returns the color for representing materials in a selected state.
bool isSelected() const
Returns true if the material should represent a selected state.
bool isHighlighted() const
Returns true if the material should represent a highlighted state.
Base class for all materials used within QGIS 3D views.