ImageMap FULL PR3: texture G-code emission and bbs_3mf persist - #12
Draft
aceRage wants to merge 5 commits into
Draft
ImageMap FULL PR3: texture G-code emission and bbs_3mf persist#12aceRage wants to merge 5 commits into
aceRage wants to merge 5 commits into
Conversation
…S LUT. Extract TextureMapping/Contoning/Offset/Remap/ImportedTexture and ColorSolver vendors from OrcaSlicer-ImageMap @ 9254838. Track lut_wide.png.c with Git LFS. Register six texture_mapping_* keys only; leave paint_depth_* untouched. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
Print apply loads texture_mapping_definitions, ToolOrdering resolves virtual zone IDs, and MMS nests TM outer-wall width around the Ultra paint-depth clamp. LayerRegion side modulation and Contoning gates live in LayerRegionTextureMapping; Fill gets a Contoning schedule driver rather than ImageMap's full geometry dump. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
try_make_texture_mapping_perimeters is a free function, so *this leftovers from the ImageMap member extract would not compile. Fill now keys top-surface TM off solid_infill_filament, make_fills matches ImageMap's 5-arg cancel+cache form, and Contoning tests seed filament colours. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
Emit texture/Contoning-aware extrusion volume and seam-hiding from GCode.cpp, round-trip texture_mapping_* plus imported atlas through bbs_3mf, and wire CutUtils Remap for simplify/cut. GLTF import is an unsupported stub. No Plater/gizmo UI. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
Keep raw-atlas/RGBA 3MF restore even if imported UV counts do not match, write atlas sidecars without requiring print config, and add tests for virtual filament IDs, texture_mapping_color, and CutUtils remap. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
This was referenced Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
ImageMap → Ultra FULL PR3 GCode + 3MF persist. Stacks PR1 (#10) + PR2 (#11) + this PR onto
main.Source: OrcaSlicer-ImageMap
@92548381056.Starts from PR2
cursor/imagemap-full-pr2-hooks-a37f(f28ab966b0/ open PR #11).What this PR does
texture_mapping_seam_hiding_hint), and outer-wall LineWidth flow modulation in_extrude(GCodeTextureMapping.cpp+ surgical_extrudemultiply). Background color stays on the PR2 tagged filament path.texture_mapping_definitions,texture_mapping_global_settings,texture_mapping_background_color,texture_mapping_outer_wall_gradient_{global_strength,max_line_width,min_line_width}via project config JSON;texture_mapping_colortriangle attr; virtual filament IDs 99–255 not clamped away; imported UV/RGBA/raw atlas underMetadata/imported_texture/(ImageMapRawFilamentOffsetAtlas). Atlas sidecars are written even when print config is omitted; restore keeps atlas/RGBA if UV triangle counts do not match.decode_image_texture_*+ atlas; CutUtils Remap for simplify/cut (C7);load_gltf/.glbis an explicit unsupported stub (clear error, no crash).What this PR does not do
Metadata/texture_mappingprime-tower treepaint_depth_*orPaintDepth.*(hard gate)Side-texture / Contoning G-code hooks
Documented in
docs/imagemap-full-pr3.md. Cloud may not smoke-slice.GCode::texture_mapping_seam_hiding_hintfeedsSeamPlacer::place_seam.GCode::texture_mapping_path_flow_scalesmultiplies extrusiondEfor external perimeters when a LineWidth / offset-gradient / Contoning overhang row is active (PR1 offset context). Empty scales = identity._extrudeis not replaced (paint-depth / sloped-Z stay). ImageMap’s full per-segment centerline-shift dump is not copied.Persist keys (C6)
Must round-trip on the same 3MF as
paint_depth_*:texture_mapping_definitionstexture_mapping_global_settingstexture_mapping_background_colortexture_mapping_outer_wall_gradient_global_strengthtexture_mapping_outer_wall_gradient_max_line_widthtexture_mapping_outer_wall_gradient_min_line_widthPlus atlas / virtual filament IDs /
texture_mapping_colortriangle attributes.Ultra always loads full
Metadata/project_settings.config, so paint-depth keys stay intact. C5 legacymmu_segmented_region_max_widthmigration is untouched.Screenshots/Recordings/Graphs
N/A (libslic3r G-code / 3MF / Model; no UI).
Tests
tests/libslic3r/test_texture_mapping.cpp[texturemapping][pr3]:handle_legacy_compositestill migratesmmu_segmented_region_max_width.paint_depth_*keys, raw atlas payload, virtual filament IDs 99–255, andtexture_mapping_color.CutUtils::perform_with_planeremaps ImageTexture UVs.test_paint_depth*.cpp. Please run[paintdepth],[texturemapping]locally; cloud cannot buildlibslic3r_tests.Depends on #10 and #11. See
docs/imagemap-full-pr3.md.