github sn4k3/UVtools v7.0.1

one hour ago
  • (Improvement) Add a Windows renderer preference in 3D preview settings to prefer native OpenGL (WGL) after restarting
    UVtools; ANGLE stays the default, with WGL tried before software rendering (#1152, #1153)
  • (Add) Pixel Arithmetic options to apply changes only to model top surfaces, with an optional margin from walls (#1151)
  • (Improvement) Pixel editor: applying supports and drain holes is much faster, all of them are now drawn in a single
    pass that decodes and encodes each layer only once, in parallel
  • (Fix) Pixel editor: multiple supports or drain holes on the same layer no longer share the drawn layers counter, which
    made their radius grow faster than intended
  • (Improvement) Issues detection is up to 5x faster for islands/overhangs and about 2x faster for resin traps:
    • Layers are decoded only for the area needed instead of the whole resolution
    • Islands use a run-length component labeling, and layers whose pixels are all supported skip it
    • Overhangs only erode and trace the area that differs from the previous layer
    • Resin traps air map is updated in a single multi-threaded SIMD pass, with layers decoded ahead while processing
    • Touching bounds only decodes the layer when it is actually close to a border
  • (Fix) Issues detection: partially supported islands were always discarded when the overhang check was not computed for
    the layer (overhang detection disabled or layer outside its white list), after the enhanced detection
  • (Fix) Issues detection: touching bounds skipped the first rows of the layer content beside the left/right borders
  • (Fix) Issues detection: native contour vectors were not released when the detection was cancelled
  • (Improvement) Repair layers: gap closing and noise removal only process the area around the layer content, empty
    layers
    are skipped and layers that the repair did not change are no longer rewritten
  • 3D layer preview:
    • (Improvement) Building the model is up to 5x faster (detailed quality on a 4K file went from 9.3s to 1.7s), the
      faces are found with vectorized row by row passes and only the area of the model is decoded from each layer
    • (Improvement) Building the issues overlay is up to 10x faster, the layers are rasterized in parallel
    • (Improvement) Moving the clip slider decodes less per layer to rebuild the cut cross-section
    • (Improvement) Exporting the mesh to STL/OBJ no longer freezes the window
    • (Fix) Export clipped mesh to OBJ exported the whole mesh, and the clipped STL lost the walls crossing the clip and
      was left open on the cut; it now meshes only the shown layers, closed, and respects the cutaway
    • (Fix) Model volume, weight and resin cost were overestimated on a coarse detail, they now come from the layer pixels
    • (Fix) Base contact area was overestimated on a coarse detail, and a floating model was reported as touching the
      plate
    • (Fix) Clicking the model while clipped could pick the hidden part of a tall wall instead of the visible surface
    • (Fix) Parts of the model were cut or showed stripes depending on the camera angle: the framebuffer provided by
      Avalonia only has a 16 bit depth buffer, too coarse for faces a fraction of a millimeter apart. The scene is now
      drawn into a 24 bit depth framebuffer and copied to the control
    • (Fix) The camera near/far planes are now fitted to the model bounds from the camera point of view, they were
      estimated from a bounding sphere around the orbit target, which clipped the model or made its faces fight each other
      (cuts and stripes) when the camera was panned, focused on an issue, zoomed in or the model was rebuilt
    • (Fix) Snapshot bitmaps were never released
  • Operations:
    • (Improvement) Most tools skip empty layers and no longer clone every layer when there is no mask to apply
    • (Improvement) Morph, Box/Median blur, Solidify and Pixel dimming only process the area around the layer content,
      Solidify and Repair layers also rewrite only the layers they changed
    • (Improvement) Infill: gyroid pattern is computed from per-axis tables instead of per pixel, the neighbor layers used
      to find the floor and ceil are only decoded where needed and the search stops once nothing is left to infill
    • (Improvement) Raft relief traces the raft layers in parallel, Heat map and Skeleton exports accumulate in parallel,
      Mesh export skips the empty pixels faster, HTML export traces only the layer area, Remove layers and Pattern are
      faster, Change resolution only decodes the model area
    • (Improvement) Calibration tolerance shares the identical layers instead of allocating one per layer, which used to
      take gigabytes of memory on every parameter change of the preview
    • (Improvement) Pixel arithmetic skips empty layers and only clones the layer when it has to restore pixels
    • (Improvement) Layer import skips merging empty images, and fails with a clear message on unreadable images
    • (Improvement) Progress notifications from parallel operations are throttled, to not flood the UI
    • (Fix) Blur: stack blur gave random pixels when layers were blurred in parallel (the OpenCV implementation is not
      thread safe) and misbehaved when using a ROI; pyramid blur had no effect at all
    • (Fix) Infill: using a mask without a ROI always failed, and the mask is now the area where the infill happens
    • (Fix) Layer arithmetic and Heat map export failed or used a wrong mask when a ROI and a mask were used together
    • (Fix) Operations mask application when the layer, ROI and mask have different sizes
    • (Fix) Redraw model: checked the wrong layer to skip empty ones, never released the redraw file and did not complete
      the progress
    • (Fix) Raft relief: tabs on the left and right sides were limited by the layer width instead of the height
    • (Fix) Layer import, Lithophane and Edit parameters did not complete the progress when layers were skipped
    • (Fix) Grayscale and Elephant foot calibrations hanged or threw with a step of 0, Elephant foot threw when the start
      was higher than the end, Lift height, Stress tower and Exposure finder threw or looped forever with invalid
      divisors/steps (decrease factor, layer height, spirals, layer height step)
    • (Fix) Dynamic layer height: repeated the same erosion up to the maximum number of times for nothing
    • (Fix) Calibrate XYZ accuracy drain hole was centered using the object width instead of the height, and Blooming
      effect text was added for objects that were not created

Don't miss a new UVtools release

NewReleases is sending notifications on new releases.