Copy link to clipboard
In production the model changes after feedback. The textures need to be updated still. When I import the new model change into Substance Painter, the 3D paint strokes are reprojected at the previous locations of the old model and end up not lining up with the new model change. This breaks any kind of use in production.
SP is built assuming there are no model changes, which is not production friendly. Model changes are common.
We should have the option to set projects to not record brush strokes in 3D space.
Looks like when I paint in the 2D UV window, the re-projection is ignored and the paint there applies correctly to the new imported model. This should be the same behavior with 3D painted strokes also.
SP is currently biased towards a workflow that assumes that the model always stays the same and that only the UVs change. This is the case less than half the times when we import a new model. Most of the time it's actually a model change that warrants the textures being updated. SP needs to be open to allowing both workflows. Let us choose to not have 3D brush strokes recorded in UV space so that texturing work can be reused when the model changes.
I am leaving Substance Painter in the meantime in favor of Mari because of this very reason. In Mari I can import multiple mesh versions and the paint is never re-projected. It's always saved in UV space. If I wanted to transfer work into the same model but it has different UVs, I have options in Mari to transfer entire channels via baking in world space. It's more production friendly.
I hope you guys look into this and take it seriously. I saw this "soft declined" in a previous post. It's crucial for production to get this fixed.
If you do a survey of users you will find that when the model changes in SP, they often export the painted color or painted masks from the old model as texture files and reimport the texture files and reapply them to the proper place in the layer stack and apply the mask data to all the fill layers one at a time after the model changes. This is extremely slow and totally crazy to do if there are paint data like clone brushes, etc.
This should be a process that SP does automatically at least. If you are unable to change the underlying architecture of the software to prevent storing 3D strokes in world space, at least consider this: Create a way to automatically transfer all painted color or painted mask data across differently shaped models via same UV space. This saves all work painted in 3D and uses UV space to preserve it after the model change is imported. It can happen on model swap. When the new updated mesh is imported into the project to replace the old one. Project all paint data via same UVs should be an option.
Link to the issue on the feedback site> Option to record 3D Painted strokes in UV space and not in world space or auto transfer 3D paint via...
I dont know where else to post this as the feedback page seems abandoned. If anyone from Adobe/Allegorithmic sees this please offer a response to the issue and hopefully a fix. Any users who have this same issue please vote up it up on the feedback site so they can address it. I've been slowly switching to Mari for 3D painting specifically because of this issue and would love to see it addressed.
Also I attatched a comparison video to how Quixel mixer also behaves like Mari by keeping 3D paint strokes in UV space which allow easy model swapping across versions.
Copy link to clipboard
Hey, this is indeed a known challenge (although Painter still offer some flexibility on this topic).
Painter will store from the 3d view what is painted into the 3d view (which means that you can change the UVs afterwise and reproject). It will also store from the 2d view what ispainted in the 2d view (which means you can modify the shape as long as the UVs islands keep the same shapes.)
But indeed the other side of the coin is that 3D reprojection will be corrupted if the 3d shapes change too much, and 2d projection won't work if UVs are moved.
We are exploring some solutions but nothing in a close future.
Copy link to clipboard
Sorry we missed your message back when it was sent.
In addition to what @cgvinny just said, I would like to add that it's possible to use the reprojection feature with a different mesh (up to a certain point).
As you mentioned, Substance Painter's 3D reprojection recompute all the brush strokes made in the 3D view onto the mesh, taking into account the camera and the bounding box. However, there are two different ways to reproject your textures onto the mesh:
When the feature is turned on, it will "preserve" the original bounding box, and reproject the strokes onto that box, before creating a new one for the new mesh.
This is useful when you've added topology to a model and want to keep your painting intact.
E.g. you're working on a great character, and while you were painting, you suddenly want to add a hat.
If the "Preserve Strokes Positions" option is turned off, it will first create the new bounding box and then apply the strokes.
We usually turn it off when the 3D model remains the same, but has perhaps changed in size or moved in space.
With that being said, these two features won't help when the original mesh has strongly been modified, and I'd definitely agree Substance 3D Painter isn't currently optimized for an intensive iterations workflow.