https://bugs.kde.org/show_bug.cgi?id=515849

            Bug ID: 515849
           Summary: Gradient-filled vectors are differently affected by
                    palettize filter dithering than vectors with gradient
                    overlay layer style
    Classification: Applications
           Product: krita
      Version First 6.0.0-beta1
       Reported In:
          Platform: Manjaro
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Tools/Vector
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 189454
  --> https://bugs.kde.org/attachment.cgi?id=189454&action=edit
Zip file containing Krita project file, screenshot of issue, generated textures

SUMMARY

Gradient-filled vector shape seems unaffected by dithering in Palettize filter
layer, whereas another vector shape with a gradient overlay layer style applied
is affected by said filter layer.

I'm using the 6.0 beta, but this applies to previous versions as well.


STEPS TO REPRODUCE
1. Create a project at 16-bit integer in sRGB-elle-V2-srgbtrc.icc color space
2. Create a vector shape and fill it with a black to white radial gradient
3. Create another white vector shape and apply a layer style of gradient
overlay (radial) from black to white (do not check Dither)
4. Create a palette of black to white swatches at regular intervals with at
least 256 entries (I've embedded one in the Krita project file I'm attaching)
5. Create a palettize filter layer above them both and use the palette to apply
a noise dither in RGB color, 1.0 Spread, and Nearest Colors (again, see file)
6. It's going to be hard to see the difference on screen unless you enhance the
texture a bit, but applying a Phong bump map filter layer over everything does
illustrate the point, at least. I've thrown such an image in the zip.

I've put a screenshot in the zip of the whole texture set applied to an object
inside the Godot game engine. I've also included the exported textures in the
zip if you feel like hooking those up in a game engine (normal map is OpenGL Y+
and occlusion, roughness, and metal are packed into an ORM file).

OBSERVED RESULT

The shape with gradient overlay will be relatively smooth (noisily dithered,
but smooth), whereas the vector shape with gradient fill will still appear
stair-stepped, a sort-of Minecraft-y effect. It seems almost unaffected by the
palettize filter.

Of course, the other issue is that gradients are not smooth even in 16-bit
integer, necessitating the dithering (even then it's not 100% smooth, but it's
better), but that's the highest I can go since the normal map filter doesn't
work at all in float bit depths.


EXPECTED RESULT

I would expect the gradient-filled vector to appear just as the gradient
overlay one does when dithering in the palettize filter is applied to both.


SOFTWARE/OS VERSIONS

Krita

 Version: 6.0.0-beta1 (git db05298)
 Hidpi: false

Qt

  Version (compiled): 6.8.0
  Version (loaded): 6.8.0

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.18.8-1-MANJARO
  Pretty Productname: Manjaro Linux
  Product Type: manjaro
  Product Version: unknown
  Desktop: XFCE
  Appimage build: Yes

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to