Jump to content

Recommended Posts

Posted (edited)

With zoom levels > 100%, the viewport is always rendered with nearest neighbor, even if the bilinear View Quality option is selected.

The attached images demonstrate this. This was done using the latest version 1.10.5.1342

the original image:

sample-500x500-orig.png

screenshot of the viewport zoomed to 125% (with the View Quality preference set to bilinear):

sample-500x500-zoom125.png

the image resized 125% (625x625) using nearest neighbor:

sample-625x625-nearest_neighbor.png

the image resized 125% (625x625) using bilinear:

sample-625x625-bilinear.png

 

The screenshot of the viewport at 125% is clearly using nearest neighbor when comparing to the other two resized images.

Edited by Sobakasu
Posted

Welcome to the Serif Affinity forums.

Affinity Photo always shows a view based on Pixels, as you would get when producing a raster document, as that is its main intended usage.

Affinity Designer, on the other hand, offers a choice between a Pixel view or a Vector view, via the menu View > View Mode.

If you have both applications, you should be able to see the difference by opening your document in both, and in Designer switching between the Pixel and the Vector View Mode. In the Pixel View Mode, using Designer, it should like it does in Photo.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
    Laptop 2: Windows 11 Pro 24H2,  16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU
iPad:  iPad Pro M1, 12.9": iPadOS 18.5, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.4

Posted

I understand that, but I'm not looking to work with vector graphics. My expectation is that when I select "Bilinear" under "View Quality", the viewport will be always be rendered with bilinear sampling, and not nearest neighbor. If you zoom out further than 100% and toggle between bilinear and nearest neighbor, it's clear that it does respect the setting. But as soon as you zoom in to greater than 100%, it uses nearest neighbor regardless of which option you select.

Posted

@Sobakasu Fully agree with you, thanks for pointing this problem one more time. View Quality setting isn't respected when zooming in. Image quality is bad as it always uses nearest neighbor. I mentioned the same issue here recently (see the thread below), however it seems like the problem exists for almost five years without any fixes or improvements.

 

Posted

Thinking a bit more on it, I'd guess that this was probably done intentionally. Using bilinear always would make it look blurry when you zoom far enough where you would actually want to see individual pixels.

Still, every other application I've used has handled this better. I've never encountered this problem in Photoshop, GIMP, Paint.NET, Krita, etc. None of them have the jagged edges caused by NN while zooming in, but show discrete pixels properly when you zoom in far enough. Obviously I don't know how any of these actually work, though an obvious answer that'd better than what AP does now is to just use bilinear until a fixed cutoff. Something like a cutoff for %zoom, or actual pixel width used to display each pixel in the image (e.g. # of pixels on your monitor for each pixel).

Posted
On 5/17/2022 at 10:57 AM, Sobakasu said:

My expectation is that when I select "Bilinear" under "View Quality", the viewport will be always be rendered with bilinear sampling, and not nearest neighbor. If you zoom out further than 100% and toggle between bilinear and nearest neighbor, it's clear that it does respect the setting. But as soon as you zoom in to greater than 100%, it uses nearest neighbor regardless of which option you select.

Are you actually wanting to see a false (smooth) presentation of the pixels when you zoom in to 400%? I would much prefer to see the stair steps if they are there, not some sort of smoothing.

Mac Pro (Late 2013) Mac OS 12.7.6 
Affinity Designer 2.6.0 | Affinity Photo 2.6.0 | Affinity Publisher 2.6.0 | Beta versions as they appear.

I have never mastered color management, period, so I cannot help with that.

Posted (edited)
1 hour ago, Old Bruce said:

Are you actually wanting to see a false (smooth) presentation of the pixels when you zoom in to 400%? I would much prefer to see the stair steps if they are there, not some sort of smoothing.

Like I mentioned in my previous comment, I get that at a certain point you want to actually see the individual pixels, and you are correct that using bilinear at that point would not be appropriate. But the zoom levels between 100% and that point (excluding exact increments of 100) look really bad in AP and do not represent what the image actually looks like.

Here's another comparison that should illustrate the problem. The left image is a screenshot from GIMP of a section from the original image, with the canvas zoomed to 125%. The middle is a screenshot of the same section of the original image displayed in AP, again with the canvas zoomed to 125%. For reference, the right image is the same section of the original image, unscaled.

image.png.5eca5598b907ecd7707538c08a0bb056.png

To me at least, it's pretty clear that GIMP is doing a much better job at representing the original image. And when you zoom in close enough with GIMP, you can see the discrete pixels fine without any blurring. This is the behavior that I've seen in every other photo manipulation/painting application that I've used. I'm sure they all have different implementations, some better than others, but none of them distort the image this much. The stair-stepping and varying "pixel" sizes seen in AP here is not representative of the original image, it's an artefact of using the NN algorithm in these scenarios.

Edited by Sobakasu
Posted

The thing is: between 100% and 200% AP simply uses cached mipmap of canvas at 100% upscaled with Nearest Neighbor to the current zoom level. Same thing happens for anything between 200% and 300%, 300% and 400% and so on. That fully explains why we only see things correctly at these "strict" zoom points and never — in between.

I believe it's solely aimed for performance optimization for weaker machines and allows to cover broader range of various hardware of all sorts and ages, as it requires almost no extra job when comparing to adding any extra filtering steps in the rendering pipeline.

It heavily distorts the end result and in no way can be considered as a true or honest representation of pixels. It's a computationally cheap and visually false approximation.

I believe that there's a room for improvement in this direction for Affinity Photo. Adding an option in Performance Settings (something like Precise Clipping but for zoom — Use Precise Zooming) would greatly benefit AP and those users who have more powerful systems or simply want better image quality from their favorite photo editing app!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.