Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#32527] Texture paint- grimy brush transition

Date:
2012-09-10 02:26
Priority:
3
State:
Closed
Submitted by:
Bartosz Moniewski (monio)
Assigned to:
Antony Riakiotakis (psy-fi)
Category:
None
Status:
Todo / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Texture paint- grimy brush transition
Detailed description
Win7- 64bit / GTX460 / blender 2.62 - 2.63a

When painting with soft brush their falloffs create darker grimy stain. Look at image:
http://i.imgur.com/os35Q.jpg
1) Pressed brush for 2 seconds to emphasis grime effect
2) Two quick strokes.
3) One stroke of dark color create even darker color in transition.

This occurs only in normal painting mode. While project painting color mixing is fine.

Followup

Message
  • Date: 2012-09-18 15:14
  • Sender: Antony Riakiotakis
  • Hi, two things to consider:

    First, when painting in the image editor (I assume this is what you mean by "normal paintiing mode"), airbrush is considered on all the time, so if I turn on airbrush in projective painting I also get the fringes. Can you verify that please?

    Second, the fringes themselves are due to using 8-bit per pixel images. These do not get their colours converted to linear space before mixing with brush colours due to precision loss, so the fringes are to be expected unfortunately. You can use float images to get a better result though.

  • Date: 2012-10-19 19:01
  • Sender: Ton Roosendaal
  • Hi Antony,

    Can you explain this further? It's either a known limit (ensure the docs note this), or something we will work on?
  • Date: 2012-10-19 19:43
  • Sender: Antony Riakiotakis
  • Hi Ton, my guess is that this is caused because for texture painting with 8bit per component images we do colour blending in sRGB colour space. This sort of works but exhibits some artifacts (such as fringing) I have written a little example in my blog (http://psy-fidelity.blogspot.gr/2011/06/color-correction-revisited.html).
    This should be either documented better or fixed, it's more a precision issue though because converting byte images from sRGB to linear can be lossy.
  • Date: 2012-10-20 10:44
  • Sender: Ton Roosendaal
  • I'm not convinced it's sRGB, it looks to me like there's alpha blend involved?
  • Date: 2012-10-24 14:12
  • Sender: Ton Roosendaal
  • OK I've investigated the topic.

    Image Paint - as opposed to project paint in 3d - has been designed to work with fixed RGBA buffers for brushes. These buffers then get blended in the original image.
    If you are working on 8 byte color, a successive series of brushes blended in with give errors very quickly, especially when blending values are low.

    Example:
    http://www.pasteall.org/pic/show.php?id=39436

    That is because the byte precision gets very bad on low values - the error in precision accumulates quickly.

    Project Paint (and also GIMP btw) use a float mask for that reason - not a RGBA buffer. It then does a per-pixel blend, each time rounding values in the best way possible.

    What we should do once is to upgrade image paint to also do that. It's a huge amount of code there though, and not on the immediate list of attention to solve. I mark tis in our wiki as cool project for someone to pick up.

    http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Tools#Painting
 

Attached Files:

Name Date Download
dirtybrush.jpg 2012-09-10 02:26 Download

Changes:

Field Old Value Date By
status_idOpen2012-10-24 14:12ton
close_dateNone2012-10-24 14:12ton
StatusInvestigate2012-10-24 14:12ton
assigned_tonone2012-10-19 19:01ton
StatusNew2012-10-19 19:01ton
File Added22002: dirtybrush.jpg2012-09-10 02:26monio