v1.18a - Horizontal finishing, optimized meshing, antialiased thresholding...
Proper support for older hardware limited to OpenGL v2.0 *should* be working now. The vertex buffer API function names end in 'ARB' on older hardware, so they need to be explicitly searched for with this name-change. There may be a discrepancy between certain older hardware's naming of the functions, which would then result in functions not being found. I'll probably update this in the future to be even more resilient by just going down the list of possible function names, instead of using different function names based on what version of OpenGL was able to be used.
Mesh-generation, which is used throughout PixelCNC, has been given a bit of a speed boost. The operation which makes heavy use of generating meshes is the horizontal milling operation, which generates a mesh for each individual Z cut depth. Loading an image and having the project mesh generate and appear in the window is also faster now. This is a product of both removing redundant samples and binary triangle tree iterations from the mesh generation algorithm.
The bilinear-filtered image sampling algorithm used for generating meshes and a few other things has also been optimized to be nearly twice as fast, simply by shifting code around so that the compiler generates faster machine-code/CPU instructions that are more cache-friendly. Results may vary depending on the type of CPU you're running.
A new algorithm was created to allow outline toolpaths and zero-distance horizontal toolpaths to be much smoother, and not produced stair-stepped jagged toolpaths at the mercy of the input image's resolution. The algorithm is effectively an anti-aliased image thresholding algorithm that uses an adaptive 3x3 contrast-stretching kernel. A typical threshold operation on an image would produce pixels that are exactly either black or white, depending on whether they are darker or lighter than a given threshold value. The new algorithm I created will output an anti-aliased version of the same thing, with edges smoothly transitioning. This is tremendously important for generating meshes that are smooth, which lend themselves to producing nice smooth contours and toolpaths.
Provided that this version doesn't introduce serious bugs that need immediate remedying, the next version will include some serious feature additions, and be less incremental.
Here's the complete list of changes:
- added ability to generate horizontal finishing toolpaths by setting step size to zero
- added antialiased image thresholding algorithm for smoother horizontal/outline toolpaths
- added OpenGL version-specific API usage for vertex buffers and mipmapping
- replaced usage of system() for command line execution with ShellExecute()
- added button to open changes.txt (this text file) from help menu
- added button to open log file from help menu
- added button to reset user configuration to defaults in the Config menu
- optimized bilinear image sampling function to be 75% faster
- optimized mesh generation algorithm used in CAM/simulation/rendering to be faster
- added "Plunge Rate" feed to operations
- added "wrote XYZ.nc" status message when G-code is exported
- changed "Feed IPM" to "Feed Rate" to accomodate projects using metric measurements
- tool parameters no longer display "Total Length" if tooltype is 'none'
- added gaussian blur to downscale factor to reduce aliasing effects
Get PixelCNC: Fast and Easy CAM for Images!
Leave a comment
Log in with itch.io to leave a comment.