mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-07 15:51:08 +00:00
Each mix in the palette now becomes a mixed filament slot, and the mask names that slot. The slicer alternates its components from one print layer to the next, so the blend is as fine as the layer height. Painting the interleave into the mesh could never be finer than the triangles, which is why color_band_mm() had to widen a band to two triangle rows and why lowering the layer height did not make the bands thinner. That path is gone: ColorMixMode, make_mix_resolver(), ColorResolveFn and the shaders' own interleave go with it. Sidebar::ensure_mixed_filament() creates or finds a slot, so a feature can ask for a blend without the modal dialog. A paint mask names at most ExtruderMax states, so the palette is capped to fit beside the physical filaments; a mix with no slot left falls back to its dominant component. The palette is built from physical filaments only - the slots it creates are extruders too, and feeding them back in produced mixes of mixes with components no blend can name. Preview colouring uses the full extruder list instead, since the bake writes slot indices; grouping against the shorter list dropped those triangles out of the mesh. Also lowers PREFER_PURE_DE from 10 to 2: ten Delta E is not a visible step but a different colour, and it turned most lookups that wanted a mix back into a plain filament.