Fix issue that thumbnail color not updated properly when AMS slot mapping changes (#7194)

* Fix issue that thumbnail color not updated properly when AMS slot mapping changes
This commit is contained in:
Noisyfox 2024-10-25 23:25:17 +08:00 committed by GitHub
parent 983f1a827e
commit ae31f4fb1f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 2 deletions

View file

@ -84,7 +84,11 @@ std::vector<Slic3r::ColorRGBA> get_extruders_colors()
float FullyTransparentMaterialThreshold = 0.1f;
float FullTransparentModdifiedToFixAlpha = 0.3f;
float FULL_BLACK_THRESHOLD = 0.18f;
// Be careful changing this value because it could break thumbnail color due to rounding error!
// The color rendering on BambuLab's "send to printer" screen relies on the assumption that this color can be accurately rendered by OpenGL,
// value like 0.18f could not because in C++ (int)(0.18f * 255) == 45 however in OpenGL it renders this as 46
// which breaks the `SelectMachineDialog::record_edge_pixels_data()` function!
float FULL_BLACK_THRESHOLD = 0.2f;
Slic3r::ColorRGBA adjust_color_for_rendering(const Slic3r::ColorRGBA &colors)
{

View file

@ -5939,7 +5939,7 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const
ColorRGBA new_color = adjust_color_for_rendering(curr_color);
if (ban_light) {
new_color[3] = (255 - vol->extruder_id) / 255.0f;
new_color[3] =(255 - (vol->extruder_id -1))/255.0f;
}
vol->model.set_color(new_color);
shader->set_uniform("volume_world_matrix", vol->world_matrix());