2
$\begingroup$

The fixed whole number pixel nature of 2D imaging and the decimal heavy nature of 3D is often a source of trouble.

In the case of Blender, it is easy to generate visual artefacts from scaling and moving objects around in 3D space, causing the rasterizer trouble due to the fractional positions not mapping exactly onto the 2D pixel grid.

Example: Grease Pencil thickness inconsistency causing line boil/flickering/shimmering on camera move

I am looking for, if possible, ways to clamp/snap object properties to as many whole pixel numbers as possible before each frame is rendered, but without actually touching the attributes created by the artist, or by keyframe interpolation.

It should only be done right before rendering, moving and or scaling all objects just enough (this value is usually very tiny) to align them better, to give the rasterizer more of a chance to not make things wobble and shine.

My immediate/naive thought is to convert scales and positions to 'local' coordinates instead of world, and then nudging them by that value, and I think this would work.

But I don't really know where or how to shimmy that functionality in to even test the naive version.

Are there global 'modifiers'? Should it be done with Geometry Nodes? (Which would have to be applied to the offenders manually) Should it be done with some sort of addon script that hooks in the 'render pre'callback?

Something else?

$\endgroup$
7
  • $\begingroup$ Hello, could you add a screenshot of an example of the limitation you're encountering in a render ? $\endgroup$
    – Gorgious
    Commented Feb 1, 2023 at 10:14
  • $\begingroup$ Hi, it's related to this: blender.stackexchange.com/questions/285128/… $\endgroup$
    – L.Wyrm
    Commented Feb 1, 2023 at 10:16
  • $\begingroup$ Which is almost most definetely is related to interpolation/sampling and mapping that to the 2d image. The more subtle the camera movement, the worse the artefacts become, and that, to me and my understanding of 3d<->2d is related to fractional pixel data incorrectly pushed into the discrete pixel grid, smears, blurs, boiling and wobbles. I realize that it might be impossible to fix this completely with pixel friendly, 'post processing' snapping but it would help. Opentoonz has this issue too, when using interpolated keyframe data. 3d is fine, but 2d always makes this issue worse. $\endgroup$
    – L.Wyrm
    Commented Feb 1, 2023 at 10:23
  • $\begingroup$ I've built an addon to quantize values and grid-align stuff in the past, but it is neither automated nor non destructive, though if you don't keyframe changes, they'll snap back to the saved values even for rendering. blenderartists.org/t/transform-quantizer/1403707 $\endgroup$ Commented Feb 1, 2023 at 10:35
  • $\begingroup$ @DuarteFarrajotaRamos Thank you for providing the source for that, I think the whole deal is overkill for this instance, but I appreciate the learning material. $\endgroup$
    – L.Wyrm
    Commented Feb 1, 2023 at 10:41

0

You must log in to answer this question.

Browse other questions tagged .