mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
Improved transparent volumes rendering set as default
This commit is contained in:
parent
012c681e67
commit
db1428dcae
4 changed files with 2 additions and 81 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue