diff --git a/ArchitectureColoredPainting/RendererWidget.ui b/ArchitectureColoredPainting/RendererWidget.ui
index b1d80e8..85c5a86 100644
--- a/ArchitectureColoredPainting/RendererWidget.ui
+++ b/ArchitectureColoredPainting/RendererWidget.ui
@@ -165,6 +165,19 @@
12
+ -
+
+
+ 0
+
+
+ 600
+
+
+ Qt::Vertical
+
+
+
-
diff --git a/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp
index afdf33b..35421cc 100644
--- a/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp
+++ b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.cpp
@@ -14,7 +14,7 @@
using namespace Renderer;
-QVector3D mainLightRadiance = 40 * QVector3D(0.7529, 0.7450, 0.6784).normalized();
+QVector3D mainLightRadiance = 10 * QVector3D(0.7529, 0.7450, 0.6784).normalized();
static float sunPitch = 105, sunYaw = 80;
static int sunSpeed = 10;
@@ -89,6 +89,11 @@ void RendererGLWidget::setModel(QString path)
doneCurrent();
}
+void Renderer::RendererGLWidget::setMainLightRadiance(QVector3D radiance)
+{
+ mainLightRadiance = radiance;
+}
+
void RendererGLWidget::setMainLightPitch(float pitch)
{
//qDebug() << "pitch" << pitch;
@@ -344,30 +349,34 @@ void RendererGLWidget::paintGL()
if (model != nullptr)
model->draw();
- //plainProgramPtr->bind();
- //plainProgramPtr->setUniformValue("projection", projection);
- //plainProgramPtr->setUniformValue("view", view);
- //plainProgramPtr->setUniformValue("albedo", 0.5f, 0.5f, 0.5f);
- //QMatrix4x4 model;
- //int nrRows = 7, nrColumns = 7;
- //float spacing = 2.5;
- //for (int row = 0; row < nrRows; ++row)
- //{
- // plainProgramPtr->setUniformValue("metallic", (float)row / (float)nrRows);
- // for (int col = 0; col < nrColumns; ++col)
- // {
- // plainProgramPtr->setUniformValue("roughness", glm::clamp((float)col / (float)nrColumns, 0.05f, 1.0f));
+ /// Debug Lighting
+ if (false)
+ {
+ plainProgramPtr->bind();
+ plainProgramPtr->setUniformValue("projection", projection);
+ plainProgramPtr->setUniformValue("view", view);
+ plainProgramPtr->setUniformValue("albedo", 0.5f, 0.5f, 0.5f);
+ QMatrix4x4 model;
+ int nrRows = 7, nrColumns = 7;
+ float spacing = 2.5;
+ for (int row = 0; row < nrRows; ++row)
+ {
+ plainProgramPtr->setUniformValue("metallic", (float)row / (float)nrRows);
+ for (int col = 0; col < nrColumns; ++col)
+ {
+ plainProgramPtr->setUniformValue("roughness", glm::clamp((float)col / (float)nrColumns, 0.05f, 1.0f));
- // model.setToIdentity();
- // model.scale(10);
- // model.translate(QVector3D((float)(col - (nrColumns / 2)) * spacing,
- // (float)(row - (nrRows / 2)) * spacing + 20,
- // -2.0f));
- // plainProgramPtr->setUniformValue("model", model);
- // IblUtils::renderSphere(glFunc);
- // }
- //}
- //plainProgramPtr->release();
+ model.setToIdentity();
+ model.scale(10);
+ model.translate(QVector3D((float)(col - (nrColumns / 2)) * spacing,
+ (float)(row - (nrRows / 2)) * spacing + 20,
+ -2.0f));
+ plainProgramPtr->setUniformValue("model", model);
+ IblUtils::renderSphere(glFunc);
+ }
+ }
+ plainProgramPtr->release();
+ }
pageIdDownsampleProgramPtr->bind();
gl->BindImageTexture(3, gbuffers[4], 0, GL_FALSE, 0, GL_READ_WRITE, GL_RG16UI);
diff --git a/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h
index c64a7c0..c75e931 100644
--- a/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h
+++ b/ArchitectureColoredPainting/src/Renderer/RendererGLWidget.h
@@ -29,6 +29,7 @@ namespace Renderer
public slots:
void setModel(QString path);
+ void setMainLightRadiance(QVector3D radiance);
void setMainLightPitch(float pitch);
void setMainLightYaw(float yaw);
void setExposure(float exposure);
diff --git a/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp
index 1af6db2..d244c41 100644
--- a/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp
+++ b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp
@@ -64,6 +64,9 @@ Renderer::RendererWidget::RendererWidget(QWidget* parent)
emit openPaintingFile(paintingPath);
});
+ QObject::connect(ui.lightRadianceSlider, &QSlider::valueChanged, [&](int value) {
+ ui.openGLWidget->setMainLightRadiance(value / 10.f * QVector3D(0.7529, 0.7450, 0.6784).normalized());
+ });
QObject::connect(ui.horizontalSlider, &QSlider::valueChanged,
ui.openGLWidget, &Renderer::RendererGLWidget::setMainLightPitch);
QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged,
@@ -71,6 +74,7 @@ Renderer::RendererWidget::RendererWidget(QWidget* parent)
QObject::connect(ui.exposureSlider, &QSlider::valueChanged, [&](int value) {
ui.openGLWidget->setExposure(value / 100.f);
});
+ ui.lightRadianceSlider->setValue(100);
ui.horizontalSlider->setValue(105);
ui.horizontalSlider_2->setValue(80);
ui.exposureSlider->setValue(60);