summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2017-02-23 16:27:24 +0100
committerSean Harmer <sean.harmer@kdab.com>2017-02-24 16:59:13 +0000
commit2a485273c1da1f56412bfd19795ac5a29331b770 (patch)
tree1e206d595d23cb1a7d44f376cc8a47cd2d1af17e /src/extras/defaults
parent271ff077ed2235eee149f23f157d8e17d058af4b (diff)
Remove env light API from metal/rough materials
Now that EnvironmentLight is available in Qt3DRender this is no longer necessary. We have a much better way to set the environment lighting now. Change-Id: I492d1383aaf4e60b434c7ab94f3696e499545f9f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/extras/defaults')
-rw-r--r--src/extras/defaults/qmetalroughmaterial.cpp75
-rw-r--r--src/extras/defaults/qmetalroughmaterial.h8
-rw-r--r--src/extras/defaults/qmetalroughmaterial_p.h2
-rw-r--r--src/extras/defaults/qtexturedmetalroughmaterial.cpp74
-rw-r--r--src/extras/defaults/qtexturedmetalroughmaterial.h8
-rw-r--r--src/extras/defaults/qtexturedmetalroughmaterial_p.h2
6 files changed, 14 insertions, 155 deletions
diff --git a/src/extras/defaults/qmetalroughmaterial.cpp b/src/extras/defaults/qmetalroughmaterial.cpp
index 3081fa787..ea213ab82 100644
--- a/src/extras/defaults/qmetalroughmaterial.cpp
+++ b/src/extras/defaults/qmetalroughmaterial.cpp
@@ -94,10 +94,6 @@ void QMetalRoughMaterialPrivate::init()
this, &QMetalRoughMaterialPrivate::handleMetallicChanged);
connect(m_roughnessParameter, &Qt3DRender::QParameter::valueChanged,
this, &QMetalRoughMaterialPrivate::handleRoughnessChanged);
- connect(m_environmentIrradianceParameter, &Qt3DRender::QParameter::valueChanged,
- this, &QMetalRoughMaterialPrivate::handleEnvironmentIrradianceChanged);
- connect(m_environmentSpecularParameter, &Qt3DRender::QParameter::valueChanged,
- this, &QMetalRoughMaterialPrivate::handleEnvironmentSpecularChanged);
m_metalRoughGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/metalrough.vert"))));
m_metalRoughGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/metalroughuniform.frag"))));
@@ -120,6 +116,13 @@ void QMetalRoughMaterialPrivate::init()
m_metalRoughEffect->addParameter(m_baseColorParameter);
m_metalRoughEffect->addParameter(m_metalnessParameter);
m_metalRoughEffect->addParameter(m_roughnessParameter);
+
+ // Note that even though those parameters are not exposed in the API,
+ // they need to be kept around for now due to a bug in some drivers/GPUs
+ // (at least Intel) which cause issues with unbound textures even if you
+ // don't try to sample from them.
+ // Can probably go away once we generate the shaders and deal in this
+ // case in a better way.
m_metalRoughEffect->addParameter(m_environmentIrradianceParameter);
m_metalRoughEffect->addParameter(m_environmentSpecularParameter);
@@ -143,18 +146,6 @@ void QMetalRoughMaterialPrivate::handleRoughnessChanged(const QVariant &var)
emit q->roughnessChanged(var.toFloat());
}
-void QMetalRoughMaterialPrivate::handleEnvironmentIrradianceChanged(const QVariant &var)
-{
- Q_Q(QMetalRoughMaterial);
- emit q->environmentIrradianceChanged(var.value<QAbstractTexture *>());
-}
-
-void QMetalRoughMaterialPrivate::handleEnvironmentSpecularChanged(const QVariant &var)
-{
- Q_Q(QMetalRoughMaterial);
- emit q->environmentSpecularChanged(var.value<QAbstractTexture *>());
-}
-
/*!
\class Qt3DExtras::QMetalRoughMaterial
\brief The QMetalRoughMaterial provides a default implementation of PBR
@@ -226,46 +217,6 @@ float QMetalRoughMaterial::roughness() const
return d->m_roughnessParameter->value().toFloat();
}
-/*!
- \property QMetalRoughMaterial::environmentIrradiance
-
- Holds the current environment irradiance map texture.
-
- By default, the environment irradiance texture has the following properties:
-
- \list
- \li Linear minification and magnification filters
- \li Linear mipmap with mipmapping enabled
- \li Repeat wrap mode
- \li Maximum anisotropy of 16.0
- \endlist
-*/
-QAbstractTexture *QMetalRoughMaterial::environmentIrradiance() const
-{
- Q_D(const QMetalRoughMaterial);
- return d->m_environmentIrradianceParameter->value().value<QAbstractTexture *>();
-}
-
-/*!
- \property QMetalRoughMaterial::environmentSpecular
-
- Holds the current environment specular map texture.
-
- By default, the environment specular texture has the following properties:
-
- \list
- \li Linear minification and magnification filters
- \li Linear mipmap with mipmapping enabled
- \li Repeat wrap mode
- \li Maximum anisotropy of 16.0
- \endlist
-*/
-QAbstractTexture *QMetalRoughMaterial::environmentSpecular() const
-{
- Q_D(const QMetalRoughMaterial);
- return d->m_environmentSpecularParameter->value().value<QAbstractTexture *>();
-}
-
void QMetalRoughMaterial::setBaseColor(const QColor &baseColor)
{
Q_D(QMetalRoughMaterial);
@@ -284,18 +235,6 @@ void QMetalRoughMaterial::setRoughness(float roughness)
d->m_roughnessParameter->setValue(QVariant::fromValue(roughness));
}
-void QMetalRoughMaterial::setEnvironmentIrradiance(QAbstractTexture *environmentIrradiance)
-{
- Q_D(QMetalRoughMaterial);
- d->m_environmentIrradianceParameter->setValue(QVariant::fromValue(environmentIrradiance));
-}
-
-void QMetalRoughMaterial::setEnvironmentSpecular(QAbstractTexture *environmentSpecular)
-{
- Q_D(QMetalRoughMaterial);
- d->m_environmentSpecularParameter->setValue(QVariant::fromValue(environmentSpecular));
-}
-
} // namespace Qt3DExtras
QT_END_NAMESPACE
diff --git a/src/extras/defaults/qmetalroughmaterial.h b/src/extras/defaults/qmetalroughmaterial.h
index e13d6c1e9..a7de7b80c 100644
--- a/src/extras/defaults/qmetalroughmaterial.h
+++ b/src/extras/defaults/qmetalroughmaterial.h
@@ -60,8 +60,6 @@ class QT3DEXTRASSHARED_EXPORT QMetalRoughMaterial : public Qt3DRender::QMaterial
Q_PROPERTY(QColor baseColor READ baseColor WRITE setBaseColor NOTIFY baseColorChanged)
Q_PROPERTY(float metalness READ metalness WRITE setMetalness NOTIFY metalnessChanged)
Q_PROPERTY(float roughness READ roughness WRITE setRoughness NOTIFY roughnessChanged)
- Q_PROPERTY(Qt3DRender::QAbstractTexture *environmentIrradiance READ environmentIrradiance WRITE setEnvironmentIrradiance NOTIFY environmentIrradianceChanged)
- Q_PROPERTY(Qt3DRender::QAbstractTexture *environmentSpecular READ environmentSpecular WRITE setEnvironmentSpecular NOTIFY environmentSpecularChanged)
public:
explicit QMetalRoughMaterial(Qt3DCore::QNode *parent = nullptr);
@@ -70,22 +68,16 @@ public:
QColor baseColor() const;
float metalness() const;
float roughness() const;
- Qt3DRender::QAbstractTexture *environmentIrradiance() const;
- Qt3DRender::QAbstractTexture *environmentSpecular() const;
public Q_SLOTS:
void setBaseColor(const QColor &baseColor);
void setMetalness(float metalness);
void setRoughness(float roughness);
- void setEnvironmentIrradiance(Qt3DRender::QAbstractTexture *environmentIrradiance);
- void setEnvironmentSpecular(Qt3DRender::QAbstractTexture *environmentSpecular);
Q_SIGNALS:
void baseColorChanged(const QColor &baseColor);
void metalnessChanged(float metalness);
void roughnessChanged(float roughness);
- void environmentIrradianceChanged(Qt3DRender::QAbstractTexture *environmentIrradiance);
- void environmentSpecularChanged(Qt3DRender::QAbstractTexture *environmentSpecular);
protected:
QMetalRoughMaterial(QMetalRoughMaterialPrivate &dd, Qt3DCore::QNode *parent = nullptr);
diff --git a/src/extras/defaults/qmetalroughmaterial_p.h b/src/extras/defaults/qmetalroughmaterial_p.h
index b406df996..3090b9757 100644
--- a/src/extras/defaults/qmetalroughmaterial_p.h
+++ b/src/extras/defaults/qmetalroughmaterial_p.h
@@ -81,8 +81,6 @@ public:
void handleBaseColorChanged(const QVariant &var);
void handleMetallicChanged(const QVariant &var);
void handleRoughnessChanged(const QVariant &var);
- void handleEnvironmentIrradianceChanged(const QVariant &var);
- void handleEnvironmentSpecularChanged(const QVariant &var);
Qt3DRender::QAbstractTexture *m_environmentIrradianceTexture;
Qt3DRender::QAbstractTexture *m_environmentSpecularTexture;
diff --git a/src/extras/defaults/qtexturedmetalroughmaterial.cpp b/src/extras/defaults/qtexturedmetalroughmaterial.cpp
index b8faff7ed..e09517866 100644
--- a/src/extras/defaults/qtexturedmetalroughmaterial.cpp
+++ b/src/extras/defaults/qtexturedmetalroughmaterial.cpp
@@ -135,10 +135,6 @@ void QTexturedMetalRoughMaterialPrivate::init()
this, &QTexturedMetalRoughMaterialPrivate::handleAmbientOcclusionChanged);
connect(m_normalParameter, &Qt3DRender::QParameter::valueChanged,
this, &QTexturedMetalRoughMaterialPrivate::handleNormalChanged);
- connect(m_environmentIrradianceParameter, &Qt3DRender::QParameter::valueChanged,
- this, &QTexturedMetalRoughMaterialPrivate::handleEnvironmentIrradianceChanged);
- connect(m_environmentSpecularParameter, &Qt3DRender::QParameter::valueChanged,
- this, &QTexturedMetalRoughMaterialPrivate::handleEnvironmentSpecularChanged);
m_metalRoughGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/metalrough.vert"))));
m_metalRoughGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/metalrough.frag"))));
@@ -163,6 +159,13 @@ void QTexturedMetalRoughMaterialPrivate::init()
m_metalRoughEffect->addParameter(m_roughnessParameter);
m_metalRoughEffect->addParameter(m_ambientOcclusionParameter);
m_metalRoughEffect->addParameter(m_normalParameter);
+
+ // Note that even though those parameters are not exposed in the API,
+ // they need to be kept around for now due to a bug in some drivers/GPUs
+ // (at least Intel) which cause issues with unbound textures even if you
+ // don't try to sample from them.
+ // Can probably go away once we generate the shaders and deal in this
+ // case in a better way.
m_metalRoughEffect->addParameter(m_environmentIrradianceParameter);
m_metalRoughEffect->addParameter(m_environmentSpecularParameter);
@@ -197,18 +200,6 @@ void QTexturedMetalRoughMaterialPrivate::handleNormalChanged(const QVariant &var
emit q->normalChanged(var.value<QAbstractTexture *>());
}
-void QTexturedMetalRoughMaterialPrivate::handleEnvironmentIrradianceChanged(const QVariant &var)
-{
- Q_Q(QTexturedMetalRoughMaterial);
- emit q->environmentIrradianceChanged(var.value<QAbstractTexture *>());
-}
-
-void QTexturedMetalRoughMaterialPrivate::handleEnvironmentSpecularChanged(const QVariant &var)
-{
- Q_Q(QTexturedMetalRoughMaterial);
- emit q->environmentSpecularChanged(var.value<QAbstractTexture *>());
-}
-
/*!
\class Qt3DExtras::QTexturedMetalRoughMaterial
\brief The QTexturedMetalRoughMaterial provides a default implementation of PBR
@@ -346,45 +337,6 @@ QAbstractTexture *QTexturedMetalRoughMaterial::normal() const
return d->m_normalParameter->value().value<QAbstractTexture *>();
}
-/*!
- \property QTexturedMetalRoughMaterial::environmentIrradiance
-
- Holds the current environment irradiance map texture.
-
- By default, the environment irradiance texture has the following properties:
-
- \list
- \li Linear minification and magnification filters
- \li Linear mipmap with mipmapping enabled
- \li Repeat wrap mode
- \li Maximum anisotropy of 16.0
- \endlist
-*/
-QAbstractTexture *QTexturedMetalRoughMaterial::environmentIrradiance() const
-{
- Q_D(const QTexturedMetalRoughMaterial);
- return d->m_environmentIrradianceParameter->value().value<QAbstractTexture *>();
-}
-
-/*!
- \property QTexturedMetalRoughMaterial::environmentSpecular
-
- Holds the current environment specular map texture.
-
- By default, the environment specular texture has the following properties:
-
- \list
- \li Linear minification and magnification filters
- \li Linear mipmap with mipmapping enabled
- \li Repeat wrap mode
- \li Maximum anisotropy of 16.0
- \endlist
-*/
-QAbstractTexture *QTexturedMetalRoughMaterial::environmentSpecular() const
-{
- Q_D(const QTexturedMetalRoughMaterial);
- return d->m_environmentSpecularParameter->value().value<QAbstractTexture *>();
-}
void QTexturedMetalRoughMaterial::setBaseColor(QAbstractTexture *baseColor)
{
@@ -416,18 +368,6 @@ void QTexturedMetalRoughMaterial::setNormal(QAbstractTexture *normal)
d->m_normalParameter->setValue(QVariant::fromValue(normal));
}
-void QTexturedMetalRoughMaterial::setEnvironmentIrradiance(QAbstractTexture *environmentIrradiance)
-{
- Q_D(QTexturedMetalRoughMaterial);
- d->m_environmentIrradianceParameter->setValue(QVariant::fromValue(environmentIrradiance));
-}
-
-void QTexturedMetalRoughMaterial::setEnvironmentSpecular(QAbstractTexture *environmentSpecular)
-{
- Q_D(QTexturedMetalRoughMaterial);
- d->m_environmentSpecularParameter->setValue(QVariant::fromValue(environmentSpecular));
-}
-
} // namespace Qt3DExtras
QT_END_NAMESPACE
diff --git a/src/extras/defaults/qtexturedmetalroughmaterial.h b/src/extras/defaults/qtexturedmetalroughmaterial.h
index c5c3fce33..27c33ad6d 100644
--- a/src/extras/defaults/qtexturedmetalroughmaterial.h
+++ b/src/extras/defaults/qtexturedmetalroughmaterial.h
@@ -57,8 +57,6 @@ class QT3DEXTRASSHARED_EXPORT QTexturedMetalRoughMaterial : public Qt3DRender::Q
Q_PROPERTY(Qt3DRender::QAbstractTexture *roughness READ roughness WRITE setRoughness NOTIFY roughnessChanged)
Q_PROPERTY(Qt3DRender::QAbstractTexture *ambientOcclusion READ ambientOcclusion WRITE setAmbientOcclusion NOTIFY ambientOcclusionChanged)
Q_PROPERTY(Qt3DRender::QAbstractTexture *normal READ normal WRITE setNormal NOTIFY normalChanged)
- Q_PROPERTY(Qt3DRender::QAbstractTexture *environmentIrradiance READ environmentIrradiance WRITE setEnvironmentIrradiance NOTIFY environmentIrradianceChanged)
- Q_PROPERTY(Qt3DRender::QAbstractTexture *environmentSpecular READ environmentSpecular WRITE setEnvironmentSpecular NOTIFY environmentSpecularChanged)
public:
explicit QTexturedMetalRoughMaterial(Qt3DCore::QNode *parent = nullptr);
@@ -69,8 +67,6 @@ public:
Qt3DRender::QAbstractTexture *roughness() const;
Qt3DRender::QAbstractTexture *ambientOcclusion() const;
Qt3DRender::QAbstractTexture *normal() const;
- Qt3DRender::QAbstractTexture *environmentIrradiance() const;
- Qt3DRender::QAbstractTexture *environmentSpecular() const;
public Q_SLOTS:
void setBaseColor(Qt3DRender::QAbstractTexture *baseColor);
@@ -78,8 +74,6 @@ public Q_SLOTS:
void setRoughness(Qt3DRender::QAbstractTexture *roughness);
void setAmbientOcclusion(Qt3DRender::QAbstractTexture *ambientOcclusion);
void setNormal(Qt3DRender::QAbstractTexture *normal);
- void setEnvironmentIrradiance(Qt3DRender::QAbstractTexture *environmentIrradiance);
- void setEnvironmentSpecular(Qt3DRender::QAbstractTexture *environmentSpecular);
Q_SIGNALS:
void baseColorChanged(Qt3DRender::QAbstractTexture *baseColor);
@@ -87,8 +81,6 @@ Q_SIGNALS:
void roughnessChanged(Qt3DRender::QAbstractTexture *roughness);
void ambientOcclusionChanged(Qt3DRender::QAbstractTexture *ambientOcclusion);
void normalChanged(Qt3DRender::QAbstractTexture *normal);
- void environmentIrradianceChanged(Qt3DRender::QAbstractTexture *environmentIrradiance);
- void environmentSpecularChanged(Qt3DRender::QAbstractTexture *environmentSpecular);
protected:
QTexturedMetalRoughMaterial(QTexturedMetalRoughMaterialPrivate &dd, Qt3DCore::QNode *parent = nullptr);
diff --git a/src/extras/defaults/qtexturedmetalroughmaterial_p.h b/src/extras/defaults/qtexturedmetalroughmaterial_p.h
index 084824304..8972726e5 100644
--- a/src/extras/defaults/qtexturedmetalroughmaterial_p.h
+++ b/src/extras/defaults/qtexturedmetalroughmaterial_p.h
@@ -83,8 +83,6 @@ public:
void handleRoughnessChanged(const QVariant &var);
void handleAmbientOcclusionChanged(const QVariant &var);
void handleNormalChanged(const QVariant &var);
- void handleEnvironmentIrradianceChanged(const QVariant &var);
- void handleEnvironmentSpecularChanged(const QVariant &var);
Qt3DRender::QAbstractTexture *m_baseColorTexture;
Qt3DRender::QAbstractTexture *m_metalnessTexture;