3D canvas menu

Co-Authored-By: yw4z <yw4z@outlook.com>
This commit is contained in:
RF47
2026-05-17 16:58:22 -03:00
parent 18d40c5b61
commit 74dc760ab0
2 changed files with 19 additions and 22 deletions

View File

@@ -8922,6 +8922,25 @@ void GLCanvas3D::_render_canvas_toolbar()
[this]{wxGetApp().toggle_show_outline();}
);
create_menu_item( _utf8(L("Reflections")),
m_canvas_type != ECanvasType::CanvasAssembleView,
cfg->get(SETTING_OPENGL_SHADING_MODEL) == "phong",
[this, &cfg]{
const bool enabled = cfg->get(SETTING_OPENGL_SHADING_MODEL) == "phong";
cfg->set(SETTING_OPENGL_SHADING_MODEL, enabled ? "gouraud" : "phong");
cfg->save();
}
);
create_menu_item( _utf8(L("Ambient Occlusion")),
m_canvas_type != ECanvasType::CanvasAssembleView && cfg->get(SETTING_OPENGL_SHADING_MODEL) == "phong",
cfg->get_bool(SETTING_OPENGL_PHONG_SSAO),
[this, &cfg]{
cfg->set_bool(SETTING_OPENGL_PHONG_SSAO, !cfg->get_bool(SETTING_OPENGL_PHONG_SSAO));
cfg->save();
}
);
ImGui::Separator();
create_menu_item( _utf8(L("Perspective")),

View File

@@ -1540,28 +1540,6 @@ void PreferencesDialog::create_items()
g_sizer = f_sizers.back();
g_sizer->AddGrowableCol(0, 1);
//// GRAPHICS > Shader
g_sizer->Add(create_item_title(_L("Shader")), 1, wxEXPAND);
auto item_shading_model = create_item_combobox(
_L("Shader"),
_L("Select 3D viewport shading model.\n"
"Gouraud: faster, per-vertex lighting.\n"
"Phong: smoother, per-fragment lighting.\n\n"
"Takes effect immediately."),
SETTING_OPENGL_SHADING_MODEL,
{_L("Gouraud"), _L("Phong")},
{"gouraud", "phong"}
);
g_sizer->Add(item_shading_model);
auto item_phong_ssao = create_item_checkbox(
_L("Phong: SSAO"),
_L("Enables a lightweight ambient occlusion effect when using Phong shading."),
SETTING_OPENGL_PHONG_SSAO
);
g_sizer->Add(item_phong_ssao);
//// GRAPHICS > Anti-aliasing
g_sizer->Add(create_item_title(_L("Anti-aliasing")), 1, wxEXPAND);