Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MDFang

macrumors member
Original poster
Jan 17, 2011
46
0
Hey all,

The retina screen is beautiful and all, but I have one little problem with it. More specifically, the way OSX handles the scaling of normal-res UI elements and images and all.

I work with pixel art from time to time, and have noticed that the edges of big pixels in a normal-res image get blurry. Images with small text in them also get hard to read due to the blurryness. I understand this is caused by the way stuff is scaled to accommodate the insanely high DPI of the retina screen, but the way they're scaled (linear interpolation if I recall correctly) bothers me. I'd much rather have one normal-res pixel be a solid block of 4 pixels on a retina screen.

Is there currently a way to change this? Will there ever be a way?
Thanks!
 
Last edited:
I bought a cMBP for partially these reasons. Eventually updates will be made to 3rd party SW fixing the UI elements but existing content may still suffer if they were not created accordingly.
 
What exactly is it that bothers you about linear interpolation? Do you simply prefer the "blocky" look of low DPI screens, ala pixel art?

Apple could easily use nearest neighbour interpolation (that would get you the blocky pixel boundaries), but I doubt they would as generally linear interpolation both looks better and introduces less high spatial frequency noise.
 
What exactly is it that bothers you about linear interpolation? Do you simply prefer the "blocky" look of low DPI screens, ala pixel art?

Apple could easily use nearest neighbour interpolation (that would get you the blocky pixel boundaries), but I doubt they would as generally linear interpolation both looks better and introduces less high spatial frequency noise.

Nearest neighbor scaling would look blockier, sure, but it also wouldn't introduce any artifacts - the image should look exactly the same as if it were on a standard DPI display. The linear interpolation Apple uses may make things look more pleasing to the eye, but it's less accurate. In many cases it may be preferable to have an accurate picture over a good looking one.
 
^
Exactly. Nearest neighbor was the name of the scaling mode I'm looking for. Kind of odd that Apple didn't include it in the settings.
I'm not all familiar with how this is handled in the OS, but do you guys think a 3rd party app will be able to change this?
 
^
Exactly. Nearest neighbor was the name of the scaling mode I'm looking for. Kind of odd that Apple didn't include it in the settings.
I'm not all familiar with how this is handled in the OS, but do you guys think a 3rd party app will be able to change this?

I suppose one could hack the graphics driver to use nearest filtering mode instead of linear for magnification ^^
 
The linear interpolation Apple uses may make things look more pleasing to the eye, but it's less accurate.

I do a lot of model and surface fitting in Matlab, and sampling using rectangles (which is what happens when using large pixels and nearest neighbour) adds lots more noise to an image / data set.

Pixels are artefacts of imperfect display systems, and preserving their horizontal/vertical sampling aberration only applies if you assume all images have to have these aberrations (as in the very specific aesthetics of pixel art).

Linear interpolation makes many less assumptions, you don't impose a forced step function on data (in this case images). In the real world, images are much more likely to have linear changes across brightness. Even at sharp edges, because of the optics of human vision a step function is smoothed. And it is rare that sharp edges only occur horizontally or vertically, as pixel boundaries do.

As an option for pixel artists an appreciators of pixel art (of which I am one, being brought up in an age of low resolution home computers) I think it would be cool, but in general a linear assumption is invariably more accurate than a nearest neighbour one. And I think this scaling is done at the lowest levels of the graphics drivers (see the Anand/Ars Technica [don't remember which] rMBP review, but they expressely say the resampling was custom written across intel/Nvidia drivers by Apple to be identical), so doubt this is easily tweakable...
 
either download switchresx and turn on 1:1 2880x1800 (I do this when I work in Nuke and Mocha) or just plug in to an external display (I do this as well.)
 
either download switchresx and turn on 1:1 2880x1800 (I do this when I work in Nuke and Mocha) or just plug in to an external display (I do this as well.)

As an unrelated aside, how does Nuke work on a rMBP + 10.8?
 
Ha, so much for the the bitching on this forum that the rMBP is not suitable for graphics work!!!
 
I'd much rather have one normal-res pixel be a solid block of 4 pixels on a retina screen.
But...that's exactly what it already does.

There was already a thread on this, and after some discussion and further tests, even the original poster determined it was working the way he (and you) want: by exactly pixel-doubling on both axes. I can confirm that when I run a non-retina app (best example: any X11 app that runs under XQuartz), everything is exactly pixel-doubled.

The only exception that I think exists to this are web images viewed in Safari. Safari does apply some "smoothing" to images it displays. But Safari is a Retina-aware app and so Safari, not the OS, is doing this. I don't know if Apple will ever be persuaded to change this or give users the option. (As far as I know, the Retinized Chrome also does the same thing.) But don't confuse what a specific app does with what the OS does.

-- Nathan
 
But...that's exactly what it already does.
(...)
I can confirm that when I run a non-retina app (best example: any X11 app that runs under XQuartz), everything is exactly pixel-doubled.

...wow, you're right! I hadn't even really noticed, go figure. It's really obvious once you turn on zooming in Universal Access and zoom in on the UI of a non-retina app.

The image smoothing you mentioned also occurs in Chrome. That's still a problem for me, since I want pixel art I look up on the internet to look good as well.
I'll see if I can find a way around this, or if it's in some of Chrome's code that can't be changed via an addon either. If I find anything, I'll post an update here. For now, case solved!
Thanks!
 
Wow that thread is a mess, with all sorts of comparisons done on iPads and Mac Pros without a retina display.

The most pertinent points from that thread are:

1) general scaling is actually nearest neighbour[1], though other apps can perform other types of scaling.

2) The actual problem of pixel-doubled content on the rMBP is most clearly explained by the "screen door" pixel gap effect; gaps between pixels are much smaller on the rMBP and thus pixel boundaries look sharper. Indeed take macro shots of non-retina content on a MBP and rMBP and you can see clearly!

[1] indeed if you actually read the developer docs Apple state this: https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40012302-CH4-SW10
 
  • Like
Reactions: msephton
Necropost!

It seems since 2012, and by 2016 at least, non-retina apps running in low-resolution on retina displays are no longer scaled with nearest neighbour, but with bilinear filter (or similar) algorithm.

Is it possible to reinstate the nearest neighbour scaling?

Does anybody know any more?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.