Page MenuHome

Texture Painting in 3D viewport causes artifacts. Undo function error
Closed, ResolvedPublic

Description

System Information
Windows 7 PRO 64Bit / WIN8 PRO 64Bit / WIN8.1 PRO 64Bit (TESTED)

Nvidia GTX 460 1GB (Drivers 337.88WQHL - 340.43 BETA) (TESTED)

Blender Version
Broken: ALL Official / based versions (2.63 is the farthest back build that was tested)
Worked: soc-2013-paint http://graphicall.org/1107 (Still artifacts, undo clears ALL artifacts)

Short description of error

Texture Painting in 3D viewport causes artifacts, when using Undo (to remove artifacts) cache gets reset.

Exact steps for others to reproduce the error

Using any of the current builds 2.71 etc.

  1. Use any (Draw) brush in "Texture Painting" mode, use brush wildly in 3D viewport- Causes strange artifacts.

  1. Use UNDO function (CTRL + Z) - Clears most of the artifacts however leaves some of them. Undo cache forgotten / reset

  1. Reopen .blend, Use same brush in UV/Image Editor viewport - NO artifacts / Undo works as intended.

Event Timeline

Kristopher Reed (rhynder) raised the priority of this task from to 90.
Kristopher Reed (rhynder) updated the task description. (Show Details)
Kristopher Reed (rhynder) edited a custom field.

Antony, I think these are known issues/limitations? Will let you decide here, it’s your playground. :)

Bastien Montagne (mont29) lowered the priority of this task from 90 to Normal.Jun 30 2014, 4:37 PM
Antonis Ryakiotakis (psy-fi) changed the task status from Unknown Status to Resolved.Jun 30 2014, 4:47 PM

Yes, wait for paint branch merge, it's fixed there.

Just a note:

Bug is caused by threaded access to mesh areas that use the same image areas. Race conditions mean that the thread that arrives second stores the modified, rather than the original color of the texture.

Fix in the branch makes sure we store the original always, but race condition on painting can still occur (however we always calculate paint result from the initial color which is more correct). Also undo is solved trivially in that case.