mirror of
https://github.com/FULU-Foundation/OrcaSlicer-bambulab.git
synced 2026-05-18 03:19:06 -07:00
Improved transparent volumes rendering set as default
This commit is contained in:
@@ -4275,13 +4275,9 @@ void GLCanvas3D::render()
|
||||
::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
_render_background();
|
||||
|
||||
#if ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
// textured bed needs to be rendered after objects if the texture is transparent
|
||||
bool early_bed_render = is_custom_bed || (theta <= 90.0f);
|
||||
if (early_bed_render)
|
||||
#else
|
||||
if (is_custom_bed) // untextured bed needs to be rendered before objects
|
||||
#endif // ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
_render_bed(theta);
|
||||
|
||||
_render_objects();
|
||||
@@ -4290,11 +4286,7 @@ void GLCanvas3D::render()
|
||||
|
||||
_render_axes();
|
||||
|
||||
#if ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
if (!early_bed_render)
|
||||
#else
|
||||
if (!is_custom_bed) // textured bed needs to be rendered after objects
|
||||
#endif // ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
_render_bed(theta);
|
||||
|
||||
#if ENABLE_RENDER_SELECTION_CENTER
|
||||
@@ -6224,10 +6216,6 @@ void GLCanvas3D::_render_objects() const
|
||||
m_volumes.set_print_box((float)bed_bb.min(0), (float)bed_bb.min(1), 0.0f, (float)bed_bb.max(0), (float)bed_bb.max(1), (float)m_config->opt_float("max_print_height"));
|
||||
m_volumes.check_outside_state(m_config, nullptr);
|
||||
}
|
||||
#if !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
// do not cull backfaces to show broken geometry, if any
|
||||
::glDisable(GL_CULL_FACE);
|
||||
#endif // !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
}
|
||||
|
||||
if (m_use_clipping_planes)
|
||||
@@ -6236,7 +6224,6 @@ void GLCanvas3D::_render_objects() const
|
||||
m_volumes.set_z_range(-FLT_MAX, FLT_MAX);
|
||||
|
||||
m_shader.start_using();
|
||||
#if ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
if (m_picking_enabled && m_layers_editing.is_enabled() && m_layers_editing.last_object_id != -1) {
|
||||
int object_id = m_layers_editing.last_object_id;
|
||||
m_volumes.render_VBOs(GLVolumeCollection::Opaque, false, [object_id](const GLVolume &volume) {
|
||||
@@ -6250,15 +6237,7 @@ void GLCanvas3D::_render_objects() const
|
||||
m_volumes.render_VBOs(GLVolumeCollection::Opaque, m_picking_enabled);
|
||||
}
|
||||
m_volumes.render_VBOs(GLVolumeCollection::Transparent, false);
|
||||
#else
|
||||
m_volumes.render_VBOs();
|
||||
#endif // ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
m_shader.stop_using();
|
||||
|
||||
#if !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
if (m_picking_enabled)
|
||||
::glEnable(GL_CULL_FACE);
|
||||
#endif // !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6270,24 +6249,9 @@ void GLCanvas3D::_render_objects() const
|
||||
::glEnable(GL_CLIP_PLANE1);
|
||||
}
|
||||
|
||||
#if !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
// do not cull backfaces to show broken geometry, if any
|
||||
if (m_picking_enabled)
|
||||
::glDisable(GL_CULL_FACE);
|
||||
#endif // !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
|
||||
#if ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
// do not cull backfaces to show broken geometry, if any
|
||||
m_volumes.render_legacy(GLVolumeCollection::Opaque, m_picking_enabled);
|
||||
m_volumes.render_legacy(GLVolumeCollection::Transparent, false);
|
||||
#else
|
||||
m_volumes.render_legacy();
|
||||
#endif // ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
|
||||
#if !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
if (m_picking_enabled)
|
||||
::glEnable(GL_CULL_FACE);
|
||||
#endif // !ENABLE_IMPROVED_TRANSPARENT_VOLUMES_RENDERING
|
||||
|
||||
if (m_use_clipping_planes)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user