How does 3d slicing Z resampling work?

Let’s say a file has 256 grayscale shades it in.

If we ask for 256 passes, each pass “n” is just “is the grayscale <n at this point? Then fire this pass”

Simple. And if we do 128 passes, n just increments by 2 not 1.

If we do 512 passes, we increment n by 0.5 so every shade level gets 2 passes. Makes sense esp if you’re doing 90 deg rotations (crosshatching).

But if we ask for 300 passes, then how does that work? It could increment “n” by 0.85, but that just means every 5.8 passes, it repeats the same pass. That gets us to 300, but only by repeating periodically which breaks the smoothness of slopes.

This sounds basically like a resampling problem, but it’s not actually the same thing. What does LB do for 3d slicing pass counts not in powers of 2?

From Oz in the beta galvo section. You need access to read it, so I copied his replay.

With 3D Slice, each pass is thresholded to the current threshold value, and the result is run as a 1-bit image. If you use 256 passes you get exactly one pass per gray-level in the image. Every pixel at or below brightness 255 for the first pass, every pixel at or below 254, then 253, and so on.

If you choose 128 passes, you get every pixel at or below 254 for the first pass, then 252, then …

It “clusters” the layers together into batches if you use fewer than 256 passes, and will duplicate some layers (with even spacing) if you use more than 256. 384 passes would duplicate every 2nd layer. 512 passes would duplicate every layer.


Hopefully, this answers your question.

:grinning_cat:

This is exactly what it does, which is why it now also supports 16 bit depth maps.