16#ifndef QGSPHONGTEXTUREDMATERIAL_H
17#define QGSPHONGTEXTUREDMATERIAL_H
25#include <Qt3DRender/QTexture>
47class _3D_EXPORT QgsPhongTexturedMaterial :
public QgsMaterial
55 explicit QgsPhongTexturedMaterial( Qt3DCore::QNode *parent =
nullptr );
56 ~QgsPhongTexturedMaterial()
override;
70 void setInstancingMeshTransform(
const QMatrix4x4 &transform );
74 void setAmbient(
const QColor &ambient );
82 void setDiffuseTexture( Qt3DRender::QAbstractTexture *texture );
84 void setDiffuseTextureScale(
float textureScale );
85 void setDiffuseTextureRotation(
float textureRotation );
86 void setDiffuseTextureOffset(
float textureOffsetX,
float textureOffsetY );
88 void setSpecular(
const QColor &specular );
89 void setShininess(
float shininess );
90 void setOpacity(
float opacity );
97 void setDataDefinedTextureTransformEnabled(
bool enabled );
101 void updateShaders();
103 Qt3DRender::QParameter *mAmbientParameter =
nullptr;
104 Qt3DRender::QParameter *mDiffuseTextureParameter =
nullptr;
105 Qt3DRender::QParameter *mDiffuseTextureScaleParameter =
nullptr;
106 Qt3DRender::QParameter *mDiffuseTextureRotationParameter =
nullptr;
107 Qt3DRender::QParameter *mDiffuseTextureOffsetParameter =
nullptr;
108 Qt3DRender::QParameter *mSpecularParameter =
nullptr;
109 Qt3DRender::QParameter *mShininessParameter =
nullptr;
110 Qt3DRender::QParameter *mOpacityParameter =
nullptr;
112 bool mInstanced =
false;
115 Qt3DRender::QEffect *mEffect =
nullptr;
116 Qt3DRender::QTechnique *mGL3Technique =
nullptr;
117 Qt3DRender::QRenderPass *mGL3RenderPass =
nullptr;
118 Qt3DRender::QShaderProgram *mShaderProgram =
nullptr;
119 Qt3DRender::QFilterKey *mFilterKey =
nullptr;
120 Qt3DRender::QParameter *mTransformParameter =
nullptr;
121 Qt3DRender::QParameter *mNormalTransformParameter =
nullptr;
123 bool mDataDefinedTextureTransformEnabled =
false;
QFlags< InstancedMaterialFlag > InstancedMaterialFlags
Base class for all materials used within QGIS 3D views.