asset browser: implement light settings
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <chrono>
|
||||
|
||||
#include <QSettings>
|
||||
#include <QColor>
|
||||
|
||||
|
||||
using namespace noggit::Red;
|
||||
@@ -69,6 +70,16 @@ void PreviewRenderer::setModel(std::string const &filename)
|
||||
throw std::logic_error("Preview renderer only supports viewing M2 and WMO for now.");
|
||||
}
|
||||
|
||||
auto diffuse_color = _settings->value("assetBrowser/diffuse_light").value<QColor>();
|
||||
_diffuse_light = {static_cast<float>(diffuse_color.redF()),
|
||||
static_cast<float>(diffuse_color.greenF()),
|
||||
static_cast<float>(diffuse_color.blueF())};
|
||||
|
||||
auto ambient_color = _settings->value("assetBrowser/ambient_light").value<QColor>();
|
||||
_ambient_light = {static_cast<float>(ambient_color.redF()),
|
||||
static_cast<float>(ambient_color.greenF()),
|
||||
static_cast<float>(ambient_color.blueF())};
|
||||
|
||||
resetCamera();
|
||||
}
|
||||
|
||||
@@ -201,8 +212,8 @@ void PreviewRenderer::draw()
|
||||
wmo_program.uniform("draw_fog", 0);
|
||||
|
||||
wmo_program.uniform("exterior_light_dir", math::vector_3d(0.0f, 1.0f, 0.0f));
|
||||
wmo_program.uniform("exterior_diffuse_color", math::vector_3d(1.0f, 1.0f, 1.0f));
|
||||
wmo_program.uniform("exterior_ambient_color", math::vector_3d(1.0f, 1.0f, 1.0f));
|
||||
wmo_program.uniform("exterior_diffuse_color", _diffuse_light);
|
||||
wmo_program.uniform("exterior_ambient_color", _ambient_light);
|
||||
|
||||
for (auto& wmo_instance : _wmo_instances)
|
||||
{
|
||||
@@ -244,8 +255,8 @@ void PreviewRenderer::draw()
|
||||
m2_shader.uniform("draw_fog", 0);
|
||||
|
||||
m2_shader.uniform("light_dir", math::vector_3d(0.0f, 1.0f, 0.0f));
|
||||
m2_shader.uniform("diffuse_color", math::vector_3d(1.0f, 1.0f, 1.0f));
|
||||
m2_shader.uniform("ambient_color", math::vector_3d(1.0f, 1.0f, 1.0f));
|
||||
m2_shader.uniform("diffuse_color", _diffuse_light);
|
||||
m2_shader.uniform("ambient_color", _ambient_light);
|
||||
|
||||
for (auto& model_instance : _model_instances)
|
||||
{
|
||||
|
||||
@@ -71,6 +71,9 @@ namespace noggit::Red
|
||||
QOpenGLContext _offscreen_context;
|
||||
QOpenGLFramebufferObjectFormat _fmt;
|
||||
QOffscreenSurface _offscreen_surface;
|
||||
|
||||
math::vector_3d _diffuse_light;
|
||||
math::vector_3d _ambient_light;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -213,6 +213,19 @@ namespace noggit
|
||||
_settings->value("additional_file_loading_log", false).toBool());
|
||||
ui->_theme->setCurrentText(_settings->value("theme", "Dark").toString());
|
||||
|
||||
ui->assetBrowserBgCol->setColor(_settings->value("assetBrowser/background_color",
|
||||
QVariant::fromValue(QColor(127, 127, 127))).value<QColor>());
|
||||
ui->assetBrowserDiffuseLight->setColor(_settings->value("assetBrowser/diffuse_light",
|
||||
QVariant::fromValue(QColor::fromRgbF(1.0f, 0.532352924f, 0.0f))).value<QColor>());
|
||||
|
||||
ui->assetBrowserAmbientLight->setColor(_settings->value("assetBrowser/ambient_light",
|
||||
QVariant::fromValue(QColor::fromRgbF(0.407770514f, 0.508424163f, 0.602650642f))).value<QColor>());
|
||||
|
||||
ui->assetBrowserCopyToClipboard->setChecked(_settings->value("assetBrowser/copy_to_clipboard", true).toBool());
|
||||
ui->assetBrowserDefaultModel->setText(_settings->value("assetBrowser/default_model",
|
||||
"world/wmo/azeroth/human/buildings/human_farm/farm.wmo").toString());
|
||||
ui->assetBrowserMoveSensitivity->setValue(_settings->value("assetBrowser/move_sensitivity", 15.0f).toFloat());
|
||||
|
||||
|
||||
#ifdef USE_MYSQL_UID_STORAGE
|
||||
ui->_mysql_box->setChecked (_settings->value ("project/mysql/enabled").toBool());
|
||||
@@ -273,6 +286,12 @@ namespace noggit
|
||||
_settings->setValue("wireframe/width", ui->_wireframe_width->value());
|
||||
_settings->setValue("wireframe/color", ui->_wireframe_color->color());
|
||||
_settings->setValue("theme", ui->_theme->currentText());
|
||||
_settings->setValue("assetBrowser/background_color", ui->assetBrowserBgCol->color());
|
||||
_settings->setValue("assetBrowser/diffuse_light", ui->assetBrowserDiffuseLight->color());
|
||||
_settings->setValue("assetBrowser/ambient_light", ui->assetBrowserAmbientLight->color());
|
||||
_settings->setValue("assetBrowser/copy_to_clipboard", ui->assetBrowserCopyToClipboard->isChecked());
|
||||
_settings->setValue("assetBrowser/default_model", ui->assetBrowserDefaultModel->text());
|
||||
_settings->setValue("assetBrowser/move_sensitivity", ui->assetBrowserMoveSensitivity->text());
|
||||
|
||||
_settings->sync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user