3 Comments

  1. Sean Barrett · at

    Great write-up, very clear, some smart stuff here.

    One thing that concerns me is that the rotated sample grid seems like it will play poorly with italics and other sloped shapes. (You could reverse the rotation to improve italics, but then backslash in some fonts will be bad.) Since you’re already using a mask table, maybe instead of a rotated grid you should use a semi-random grid. To maintain the current performance, given that you’re using precomputed tables anyway, just have 16 sub-sample rows, each with one sample somewhere on it, but instead of computing with a skew, just precompute a pseudo-random horizontal position for each row, or possibly even use the bit-reversed row index since that may maximize spread. (I.e. 0,8,4,12, etc.–a bit like classical dither.) Actually the first and last sample of that will be too close to each other across the wrapped border, so you probably need to find something smarter but blue-noisish. Could even just jitter your existing rotated positions.

    1. Jelle van der Beek · at

      Hi Sean,

      Thanks for your comment! The rotated grid has the downside that even though rotated, straight lines could still align with the grid, causing fewer shades than we’d like. If I read your comment correctly, you’re suggesting to add a bit of noise to the samples to avoid that any straight line could ever align with the grid, is that correct?

Leave a Reply

Your email address will not be published. Required fields are marked *