Transition easing vs subpixel rendering

I am wondering if there is no way to solve this:

  • by using transition.to(), with non-linear transition, it’s impossible to avoid subpixel positioning during transition.

  • when on subpixel position, you are always going to get some artifacts like thick pixel/seams.

So the only way is to not move using easing, true?

I should mention I am using pixel graphic assets, which makes the latter problem more noticeable.

You could perform the transition on a property which does not position your display object on the screen and then have an enterFrame listener which simply performs a math.abs() on that property and applies it to the position values of the display object. Fast and avoids sub-pixel positioning.

Of course, depending on the device your code is running on you can’t guarantee that sub-pixel interpolation isn’t being performed anyway. The iPhone 6 and 6s (not Plus) perform this inherently to provide a higher quality image with no overhead on the developer’s part, so you can’t be sure it’s not happening. I imagine the problem would be worse on Android, given the huge range of screen sizes and qualities.

Thx, it looks like a sound strategy.

> The iPhone 6 and 6s (not Plus) perform this inherently to provide a higher quality image

This is news to me: I know 6 Plus does weird thing with downsampling to get 1080p, but 6 is doing subpixel interpolation? It would explain a lot of my recent trouble that only takes place on my iPhone 6, but not in Corona SDK simulator…

Do you happen to have any document explaining it? I have only read this before.

Hm, I thought it was the 6 doing the down sampling. Well, one of them is going to be fudging the image in a really interesting way.

You could perform the transition on a property which does not position your display object on the screen and then have an enterFrame listener which simply performs a math.abs() on that property and applies it to the position values of the display object. Fast and avoids sub-pixel positioning.

Of course, depending on the device your code is running on you can’t guarantee that sub-pixel interpolation isn’t being performed anyway. The iPhone 6 and 6s (not Plus) perform this inherently to provide a higher quality image with no overhead on the developer’s part, so you can’t be sure it’s not happening. I imagine the problem would be worse on Android, given the huge range of screen sizes and qualities.

Thx, it looks like a sound strategy.

> The iPhone 6 and 6s (not Plus) perform this inherently to provide a higher quality image

This is news to me: I know 6 Plus does weird thing with downsampling to get 1080p, but 6 is doing subpixel interpolation? It would explain a lot of my recent trouble that only takes place on my iPhone 6, but not in Corona SDK simulator…

Do you happen to have any document explaining it? I have only read this before.

Hm, I thought it was the 6 doing the down sampling. Well, one of them is going to be fudging the image in a really interesting way.