16#ifndef QGSPHONGTEXTUREDMATERIAL_H
17#define QGSPHONGTEXTUREDMATERIAL_H
24#include <Qt3DRender/QTexture>
43class _3D_EXPORT QgsPhongTexturedMaterial :
public QgsMaterial
51 explicit QgsPhongTexturedMaterial( Qt3DCore::QNode *parent =
nullptr );
52 ~QgsPhongTexturedMaterial()
override;
56 void setAmbient(
const QColor &ambient );
64 void setDiffuseTexture( Qt3DRender::QAbstractTexture *texture );
66 void setDiffuseTextureScale(
float textureScale );
67 void setDiffuseTextureRotation(
float textureRotation );
68 void setDiffuseTextureOffset(
float textureOffsetX,
float textureOffsetY );
70 void setSpecular(
const QColor &specular );
71 void setShininess(
float shininess );
72 void setOpacity(
float opacity );
79 void setDataDefinedTextureTransformEnabled(
bool enabled );
84 void updateVertexShader();
86 Qt3DRender::QParameter *mAmbientParameter =
nullptr;
87 Qt3DRender::QParameter *mDiffuseTextureParameter =
nullptr;
88 Qt3DRender::QParameter *mDiffuseTextureScaleParameter =
nullptr;
89 Qt3DRender::QParameter *mDiffuseTextureRotationParameter =
nullptr;
90 Qt3DRender::QParameter *mDiffuseTextureOffsetParameter =
nullptr;
91 Qt3DRender::QParameter *mSpecularParameter =
nullptr;
92 Qt3DRender::QParameter *mShininessParameter =
nullptr;
93 Qt3DRender::QParameter *mOpacityParameter =
nullptr;
95 Qt3DRender::QEffect *mEffect =
nullptr;
96 Qt3DRender::QTechnique *mGL3Technique =
nullptr;
97 Qt3DRender::QRenderPass *mGL3RenderPass =
nullptr;
98 Qt3DRender::QShaderProgram *mGL3Shader =
nullptr;
99 Qt3DRender::QFilterKey *mFilterKey =
nullptr;
101 bool mDataDefinedTextureTransformEnabled =
false;
Base class for all materials used within QGIS 3D views.