Mathematica 12.1 introduced a number of amazing shaders such as StippleShading
.
Is there a way to control the grain size of StippleShading
?
On a standard resolution screen it looks like this:
On a retina screen, the stippling is much finer:
You can experiment with this using the following:
gr = Graphics3D[{StippleShading[], Sphere[]}, Boxed -> False, Lighting -> "Accent"];
Manipulate[Rasterize[gr, ImageResolution -> 30*10^res], {res, 0, 1}]
The higher the resolution, the finer the stippling. With very high resolutions, the stippling is not visible anymore.
When exporting graphics for publication, one often needs to use high resolution (300 dpi minimum) so that lines, which are a common feature of stippled art, would also look good. But using an appropriately high resolution for print will make the stippling invisible in print, defeating the purpose of stipple shading.
This is why I am looking for a way to control the stipple size.
Example drawing which has both lines (for which high resolution is a must when printing) and stippling:
Graphics3D[{{StippleShading[], Sphere[]}, {Thick, Black,
Line[1.7 {{{-1, 0, 0}, {1, 0, 0}}, {{0, -1, 0}, {0, 1, 0}}, {{0,
0, -1}, {0, 0, 1}}}]}}, Boxed -> False, Lighting -> "Accent"]
"Tiling" -> {2, 2}
to"Tiling" -> {t, t}
to get different sizes. $\endgroup$ – Chip Hurst Apr 8 '20 at 13:56