Rick Brewster Posted May 9, 2023 Share Posted May 9, 2023 This build includes an update of Image->Resize's resampling modes, gamma correction for key parts of the app, higher quality canvas rendering, and a host of other miscellaneous fixes and improvements. In addition, GPU-based effect plugins now default to rendering in linear gamma space (existing plugins are not affected, however!) and have better access to color management information. Gamma correction is important for maintaining luminance (brightness, basically) when an image is being processed or rendered. Sometimes this effect is subtle, but in some cases it can be quite pronounced. First up, in Image->Resize the resampling mode has been moved to the bottom into an Options section, along with a new "Use gamma correction" checkbox that defaults to enabled: The Move Selected Pixels tool has also been upgraded to support this for all resampling modes (although it's not applicable to Nearest Neighbor), and there is a new Gamma mode choice in the toolbar if you'd rather not use it for whatever reason: Speaking of which, there is a good test image for this over at https://forums.getpaint.net/topic/122409-feature-request-gamma-corrected-image-resizing/ . I'll be using the "128 / 187" image for the next two screenshots. Next up, all in-app thumbnails and the canvas itself are now using gamma correction. This ensures that luminance (aka brightness) is correctly maintained when you're zooming out on the image (and thumbnails are basically little zoom-outs of the image). Without gamma correction, it looks like this in v5.0.3: With gamma correction in v5.0.4, it looks correct: Since this required a bunch of updates to how the canvas renders itself, I also bumped up the quality of its rendering. When zooming in to an image, a type of antialiasing is now applied so that the pixelation effect appears more uniform. And when zooming out, multisampling is used to make the image looking smoother. There are a lot less aliasing artifacts. It's hard to show these effects in your browser because things will likely get resized and distorted, but I'll try. On the left is the original, a cloud bubble drawn into a 128x128 pixel space. Antialiasing was disabled and the brush size was set to 1. The next two images are zoomed at 267%, in v5.0.3 and then in v5.0.4. Notice how the pixelation effect is much more uniform in 5.0.4, eliminating the distortions you see in 5.0.3. If you'd like to read more about gamma correction and rendering in linear gamma space, here are some resources: Gamma error in picture scaling, by Eric Brasseur http://www.ericbrasseur.org/gamma.html GPU Gems 3 Chapter 24, The Importance of Being Linear https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-24-importance-being-linear Understanding Gamma Correction, Cambridge in Colour https://www.cambridgeincolour.com/tutorials/gamma-correction.htm Gamma correction, Wikipedia https://en.wikipedia.org/wiki/Gamma_correction John Carmack (of id Software, DOOM, and Quake fame) recently tweeted about how incorrect gamma correction negatively affected the 4K UHD release of The Martian: https://twitter.com/ID_AA_Carmack/status/1654528504724062217 ――――― This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable "Also check for pre-release (beta) versions of paint.net" and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP. You can also download the installer here (for any supported CPU and OS). Offline installers, portable ZIPs, and deployable MSIs are available over on GitHub. Changes since v5.0.3: Improved: Image->Resize has been updated The default resampling mode is now Bicubic, which has been updated to use the Catmull-Rom ("Catrom") cubic filter. This matches the Bicubic mode of the Move Selected Pixels tool (which uses Direct2D's "HighQualityCubic" mode). Added a new resampling mode, "Bicubic (Smooth)", which has no sharpening. It may produces blurrier results, but is important for some scenarios if you need to completely avoid ringing artifacts that other modes (Bicubic, Lanczos, and Adaptive) can introduce due to their added sharpness. "Adaptive (Best Quality)" has been renamed to "Adaptive (Sharp)" and is no longer the default resampling mode. It is still a very good choice when resizing photos, but whether you use Adaptive, Bicubic, or Lanczos is up to your own personal preference. A new option has been added, "Use gamma correction", which is enabled by default. The text box for typing in a percentage now accepts two digits past the decimal point, e.g. 35.79% Improved: Move Selected Pixels (free transform) has been updated New: Added a "Multisample Bilinear" sampling mode. This has a sharper look than Anisotropic and avoids the "ringing" artifacts that can be apparent when using Bicubic with high-contrast images (like screenshots). However, it doesn't usually work as well when reducing a selected area to a much smaller size. New: Added a "Gamma mode" button in the toolbar to toggle gamma correction on and off. The default is on, which improves the quality of rendering by preserving luminance (brightness). Fixed a bug when using Bicubic sampling that would result in added sharpening when resizing the selected area to 1/8th its original size or smaller Improved: The rendering quality of the canvas area has been greatly improved Gamma correction is now used for mipmap generation and compositing, ensuring consistent luminance (brightness) and higher quality antialiasing. Multisampling is now used for antialiasing, which eliminates pixelation distortions when zooming in, and greatly reduces aliasing artifacts when zooming out. Improved: Thumbnails within the app now use gamma correction, which ensures consistent luminance (brightness) New: GPU effects and plugins now support gamma correction, with linear gamma being the default rendering mode for new plugins. This can be changed by overriding OnInitializeRenderInfo() and setting the renderInfo.GpuEffectColorContext property to GpuEffectColorContext.WorkingSpace (the default is WorkingSpaceLinear) GPU effect plugins have better access to color management information via the IGpuEffectImage interface and its ColorContext property. All input images (e.g. Environment.SourceImage) are now provided via this interface. In addition to the built-in effects that already render with gamma correction, the following built-in effects now also render with linear gamma and/or gamma correction: Adjustments -> Exposure Blurs -> Fragment Blurs -> Motion Blur Blurs -> Radial Blur Blurs -> Zoom Blur Distort -> Bulge Distort -> Crystalize Distort -> Dents Distort -> Frosted Glass Distort -> Pixelate Distort -> Polar Inversion Distort -> Tile Reflection Distort -> Twist Layers -> Rotate/Zoom Object -> Drop Shadow Photo -> Straighten Render -> Julia Fractal Render -> Mandelbrot Fractal Fixed: Ctrl+G has been reinstated as the shortcut key for Image -> Rotate 90° Counter-Clockwise Fixed a rendering glitch in Effects -> Distort -> Dents that would sometimes result in rows or columns of incorrectly colored pixels Fixed: Some systems were having problems with Paint.NET not appearing in the "Open With" list in Windows File Explorer. This should now be fixed. Fixed: When installing an update, the desktop shortcut is no longer recreated. This means you can delete it without it reappearing after every update. This was a bug accidentally reintroduced back in Paint.NET v4.3. Improved: Increased the maximum zoom range from 1.5625% (1/64) -> 6,400% to 1% -> 10,000% Improved the reliability of the wrapper classes for Windows COM libraries (Direct2D, etc.) Improved the /ignoreCorruptPDNChunks to allow an additional type of corrupt PDN image to be partially recovered (thanks @null54!) Updated the bundled DDSFileTypePlus plugin to v1.11.8.0, which adds gamma correction for mipmap generation (thanks @null54!) Updated the bundled WebPFileType to version v1.3.17.0, which reduces some confusion when using lossless compression (thanks @null54!) 1 1 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
null54 Posted May 10, 2023 Share Posted May 10, 2023 The DDSFileTypePlus version in your release notes should be 1.11.8.0. Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait Link to comment Share on other sites More sharing options...
Rick Brewster Posted May 10, 2023 Author Share Posted May 10, 2023 9 minutes ago, null54 said: The DDSFileTypePlus version in your release notes should be 1.11.8.0. Thanks -- fixed The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
_koh_ Posted May 10, 2023 Share Posted May 10, 2023 (edited) I want built-in Black and White adjustment to support this gamma thing coz currently it looks a bit wrong. original gamma color space B&W (built-in) linear color space B&W Edited May 10, 2023 by _koh_ Link to comment Share on other sites More sharing options...
Roly Poly Goblinoli Posted May 10, 2023 Share Posted May 10, 2023 I start to wonder if having gamma correction in the toolbar is going to lead to the path of having too many nuance choices available, as more functionality gets added. For now it's fine, it fits, but that's my only wonder. It would fit just as well to have it only in settings (and probably be an all-up setting that affects all relevant ones at once, unless there's a need to turn it on and off per tool). Link to comment Share on other sites More sharing options...
Rick Brewster Posted May 10, 2023 Author Share Posted May 10, 2023 9 hours ago, _koh_ said: I want built-in Black and White adjustment to support this gamma thing coz currently it looks a bit wrong. The B&W adjustment calculates luma, which is the standard formula applied over the sRGB values. Adjusting to linear would not make it look "more correct." If you want more B&W options, check out @BoltBait's plugin pack, there's a "Black and White+" adjustment with more options. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
BlastOfBN Posted May 10, 2023 Share Posted May 10, 2023 This new canvas rendering solution shouldn’t hurt performance, right? Link to comment Share on other sites More sharing options...
FavoritoHJS Posted May 10, 2023 Share Posted May 10, 2023 Gamma correction!? In my paint.net? What kind of miracle is this!?!? Also a small bug I found: Make a 50% dither pattern, zoom in and out a bit, and notice how there are discontinuities at each 128x128 block. Might be a bit harder to see now that _gamma works correctly!_ but still. Link to comment Share on other sites More sharing options...
Rick Brewster Posted May 10, 2023 Author Share Posted May 10, 2023 6 minutes ago, FavoritoHJS said: Also a small bug I found: Make a 50% dither pattern, zoom in and out a bit, and notice how there are discontinuities at each 128x128 block. Might be a bit harder to see now that _gamma works correctly!_ but still. That's not really a bug, it's just a consequence of the tiled rendering system. (Also I don't see that on my system) The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Rick Brewster Posted May 10, 2023 Author Share Posted May 10, 2023 21 minutes ago, BlastOfBN said: This new canvas rendering solution shouldn’t hurt performance, right? In theory yes the gamma correction and rendering changes do have a cost. In practice, I've really only seen reduced performance when hardware acceleration is disabled and the zoom level is not a multiple of 100% (and this is at like 4K resolution). For this reason, rendering quality is reduced when hardware acceleration is disabled, which helps make up the difference. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
_koh_ Posted May 10, 2023 Share Posted May 10, 2023 3 hours ago, Rick Brewster said: The B&W adjustment calculates luma, which is the standard formula applied over the sRGB values. Adjusting to linear would not make it look "more correct." I believe whenever we average / add RGB values, we should do it in linear color space. a ^ 2.2 + b ^ 2.2 != (a + b) ^ 2.2 https://stackoverflow.com/a/13558570 Link to comment Share on other sites More sharing options...
Pixey Posted May 13, 2023 Share Posted May 13, 2023 Unless I've been blind up to now, I like the prompt when one wants to close more than one window, it reminds you have not saved them 👍 How I made Jennifer & Halle in Paint.net My Gallery | My Deviant Art "Rescuing one animal may not change the world, but for that animal their world is changed forever!" anon. Link to comment Share on other sites More sharing options...
TerraTerra Posted May 15, 2023 Share Posted May 15, 2023 Here to report another potential bug. Whenever I use any tool (in this image I was using the line tool as an example), on random occasions, this thing pops up for like a split second. I was lucky enough to get a screenshot of what it looks like, but I cannot tell for the life of me what it's saying. I hope other people who have run into this know what it means, because I don't know if it's a bug relating to the main app or a plugin. Regardless this definitely feels like a bug that should be reported. Link to comment Share on other sites More sharing options...
Rick Brewster Posted May 15, 2023 Author Share Posted May 15, 2023 @TerraTerra I think you're seeing the same thing @frio reported. I posted an updated build to try, which seems to work: https://forums.getpaint.net/topic/122517-random-crash-in-the-background-504beta/?do=findComment&comment=609230 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
TerraTerra Posted May 15, 2023 Share Posted May 15, 2023 10 minutes ago, Rick Brewster said: @TerraTerra I think you're seeing the same thing @frio reported. I posted an updated build to try, which seems to work: https://forums.getpaint.net/topic/122517-random-crash-in-the-background-504beta/?do=findComment&comment=609230 I think it's working now, I haven't ran into the random popup message yet. Thank you! 1 Link to comment Share on other sites More sharing options...
Recommended Posts