Paint line stroke - interpolation steps/aliasing #52610

Closed
opened 2017-09-01 00:21:08 +02:00 by Paul R · 19 comments

System Information
Suse Leap 42.2
NVidia GTX 560ti (official drivers)

Blender Version
Broken: 2.78c
Worked: unknown

Short description of error
The paint line stroke doesn't properly interpolate, which causes regular steps/aliasing along the length - most noticeable on shallow angled lines.

blender_tex_paint_stroke_line.png

Exact steps for others to reproduce the error

  • create a new 1024x1024 blank texture
  • switch to paint mode
  • set paint radius to 8px
  • set stroke method to line
  • draw a set of slightly angled lines
**System Information** Suse Leap 42.2 NVidia GTX 560ti (official drivers) **Blender Version** Broken: 2.78c Worked: unknown **Short description of error** The paint line stroke doesn't properly interpolate, which causes regular steps/aliasing along the length - most noticeable on shallow angled lines. ![blender_tex_paint_stroke_line.png](https://archive.blender.org/developer/F751475/blender_tex_paint_stroke_line.png) **Exact steps for others to reproduce the error** - create a new 1024x1024 blank texture - switch to paint mode - set paint radius to 8px - set stroke method to line - draw a set of slightly angled lines
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @intracube

Added subscriber: @intracube

Added subscriber: @FloridaJo

Added subscriber: @FloridaJo

I'm thinking this is normal with a low pixel width line.
I wouldn't think it would generate a scalable vector type file.
I'll let someone else decide though.

I'm thinking this is normal with a low pixel width line. I wouldn't think it would generate a scalable vector type file. I'll let someone else decide though.
Author

In #52610#456621, @FloridaJo wrote:
I'm thinking this is normal with a low pixel width line.
I wouldn't think it would generate a scalable vector type file.
I'll let someone else decide though.

It's not an issue caused by the resolution or scale. Compare with GIMP's paint line tool:
blender_gimp_lines_comparison.png
Canvas resolution and zoom scaling are the same for both.

It looks as though Blender is actually drawing diagonal lines as a set of segmented horizontal (or vertical) lines.

A bit of a wild guess, but does the brush rendering code not allow sub-pixel placement? It would explain the stepping effect.

EDIT: Drawing in the 3d viewport gives clean results

> In #52610#456621, @FloridaJo wrote: > I'm thinking this is normal with a low pixel width line. > I wouldn't think it would generate a scalable vector type file. > I'll let someone else decide though. It's not an issue caused by the resolution or scale. Compare with GIMP's paint line tool: ![blender_gimp_lines_comparison.png](https://archive.blender.org/developer/F767645/blender_gimp_lines_comparison.png) Canvas resolution and zoom scaling are the same for both. It looks as though Blender is actually drawing diagonal lines as a set of segmented horizontal (or vertical) lines. A bit of a wild guess, but does the brush rendering code not allow sub-pixel placement? It would explain the stepping effect. EDIT: Drawing in the 3d viewport gives clean results

Added subscriber: @mont29

Added subscriber: @mont29

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Bastien Montagne self-assigned this 2017-09-05 13:00:29 +02:00

Thanks for the report, but that is no bug, rather feature/enhancement request. which are not accepted on this tracker.

Thanks for the report, but that is no bug, rather feature/enhancement request. which are not accepted on this tracker.
Author

I can't see how this would be considered either a feature or enhancement.

There should be a baseline of functionality. For a program as established as Blender, it's reasonable to expect a line drawing tool to produce clean results without obvious jaggies/aliasing.

Right now, the line (and curve) tools give poor results in the 2d image editor.

I can't see how this would be considered either a feature or enhancement. There should be a baseline of functionality. For a program as established as Blender, it's reasonable to expect a line drawing tool to produce clean results without obvious jaggies/aliasing. Right now, the line (and curve) tools give poor results in the 2d image editor.
Author

Changed status from 'Archived' to: 'Open'

Changed status from 'Archived' to: 'Open'
Paul R reopened this issue 2017-09-06 18:26:12 +02:00
Author

Some examples drawn in the 2d editor and 3d viewport:
2d_paint_vs_3d_viewport_aliasing.png

Some examples drawn in the 2d editor and 3d viewport: ![2d_paint_vs_3d_viewport_aliasing.png](https://archive.blender.org/developer/F775775/2d_paint_vs_3d_viewport_aliasing.png)

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'

This is no bug, period. Triaging tracker is heavy and annoying enough task not to have to do it twice.

This is no bug, period. Triaging tracker is heavy and annoying enough task not to have to do it twice.
Author

The crux of this seems to be - "it's not a bug because the code works as intended, therefore it's a feature request" vs "the original design specification has a bug".

(It's possible to have a bug in a software design spec as well as final code)

If we can break this down to clarify:

What are the intended common uses for the paint tool's line and curve modes?
This seems self explanatory, the artist will use it to draw lines/strokes of varying thickness.

Is the tool is being used in an unusual way (corner case issue) for the aliasing to appear?
Drawing medium width lines with the standard in-built brush and most default values has to be one of the most common uses for the line and curve modes.

Is it reasonable to expect aliasing/stepping to this degree?
I don't think most artists would say so. It means the line/curve isn't usable in a significant number of cases.

I'd welcome some feedback on this, but please don't automatically close bugs without giving your reasoning. Certainly not within a few days as this means other people and devs don't have a chance to comment on it.

The crux of this seems to be - "it's not a bug because the code works as intended, therefore it's a feature request" vs "the original design specification has a bug". (It's possible to have a bug in a software design spec as well as final code) If we can break this down to clarify: **What are the intended common uses for the paint tool's line and curve modes?** This seems self explanatory, the artist will use it to draw lines/strokes of varying thickness. **Is the tool is being used in an unusual way (corner case issue) for the aliasing to appear?** Drawing medium width lines with the standard in-built brush and most default values has to be one of the most common uses for the line and curve modes. **Is it reasonable to expect aliasing/stepping to this degree?** I don't think most artists would say so. It means the line/curve isn't usable in a significant number of cases. I'd welcome some feedback on this, but please don't automatically close bugs without giving your reasoning. Certainly not within a few days as this means other people and devs don't have a chance to comment on it.

Added subscriber: @brecht

Added subscriber: @brecht

The issue is that the brush painting code in the image editor does not not work at a sub-pixel level. Supporting that would be good to improve quality, but it's a lot of work and for that reason out of the scope of what we handle in this bug tracker.

We can argue about the semantics of the word "bug", but it's not really about that, more about what we decide to give as a minimum support with limited resources, vs. what goes on the longer term to do list for which we can't promise anything.

The issue is that the brush painting code in the image editor does not not work at a sub-pixel level. Supporting that would be good to improve quality, but it's a lot of work and for that reason out of the scope of what we handle in this bug tracker. We can argue about the semantics of the word "bug", but it's not really about that, more about what we decide to give as a minimum support with limited resources, vs. what goes on the longer term to do list for which we can't promise anything.
Author

In #52610#457677, @brecht wrote:
The issue is that the brush painting code in the image editor does not not work at a sub-pixel level. Supporting that would be good to improve quality, but it's a lot of work and for that reason out of the scope of what we handle in this bug tracker.

We can argue about the semantics of the word "bug", but it's not really about that, more about what we decide to give as a minimum support with limited resources, vs. what goes on the longer term to do list for which we can't promise anything.

OK, thanks for confirming the cause. I still feel this is a notable issue with the painting tool, but I understand the limited resources.

Could this be transferred to the To Do section?

> In #52610#457677, @brecht wrote: > The issue is that the brush painting code in the image editor does not not work at a sub-pixel level. Supporting that would be good to improve quality, but it's a lot of work and for that reason out of the scope of what we handle in this bug tracker. > > We can argue about the semantics of the word "bug", but it's not really about that, more about what we decide to give as a minimum support with limited resources, vs. what goes on the longer term to do list for which we can't promise anything. OK, thanks for confirming the cause. I still feel this is a notable issue with the painting tool, but I understand the limited resources. Could this be transferred to the To Do section?
I've added it to the list here: https://wiki.blender.org/index.php/Dev:Source/Development/Todo/Tools#Painting
Author

In #52610#458314, @brecht wrote:
I've added it to the list here:
https://wiki.blender.org/index.php/Dev:Source/Development/Todo/Tools#Painting

Thanks

> In #52610#458314, @brecht wrote: > I've added it to the list here: > https://wiki.blender.org/index.php/Dev:Source/Development/Todo/Tools#Painting Thanks
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#52610
No description provided.