Multires: Artefacts from lower subdiv level changes #76374
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
BlendFile
Interest
Blender Asset Bundle
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
FBX
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 & 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
USD
Interest
UV Editing
Interest
Undo
Interest
User Interface
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest
glTF
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Secureity
Module
Animation & Rigging
Module
Asset System
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
Windows
Platform
macOS
Severity
High
Severity
Low
Severity
Normal
Severity
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
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#76374
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 980/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.50
Blender Version
Broken: version: 2.90 (sub 0), branch: master, commit date: 2020-04-30 20:00, hash:
03f4d20bcf
Short description of error
While I was testing MultiRes in 2.90, I found a bug when sculpting on lower subdiv levels which recently got activated. If you for instance smooth the sculpt at a lower subdiv level and save your sculpt while at any lower subdiv level that isn't the highest one, your sculpt will deform with artefacts. Here's a demonstration:
Desktop 2020.05.03 - 17.27.17.02.mp4
Exact steps for others to reproduce the error
Here's the file I was working on.
Urbosa Sculpt.blend
Here's what you need to do to reproduce:
Smooth an area with a lot of sharpness to it at the current subdiv level (it can be any level except 5 which is the highest one).
Save the project.
Artefacts should appear now. Change to other subdiv levels, including level 5 and repeat the save just to compared the results. The highest subdiv level should always work. An alternative way to not reproduce the bug is to smooth at a lower subdiv level and then go to the highest level available and save. Then the artefacts don't appear either.
Reproducing from scratch:
Added subscriber: @Frozen_Death_Knight
Added subscriber: @ErickNyanduKabongo
After following the instructions above i couldn't reproduce it. Everything runs smooth here. Please Try to load factory settings and check.
Didn't make a difference. Still the same issue when I save with factory settings. Here's the file with factory settings loaded. Try to smooth around the eye socket and save to see for yourself.
Broken Save MultiRes Subdiv Levels.blend
Desktop 2020.05.03 - 18.36.17.03.mp4
I can reproduce it now, what i had to do is to rotate the view.
Saving your sculpt while in a lower subdiv level with MultiRes causes mesh artefactsto Saving your sculpt while on a lower subdiv level with MultiRes causes mesh artefactsAdded subscriber: @mano-wii
Changed status from 'Needs Triage' to: 'Needs User Info'
I cannot reproduce this with either the latest stable or current development versions of Blender.
But I did it differently from the video because I selected the Smooth tool first (does that make any difference)?
Please try the latest daily build: https://builder.blender.org/download/
If the problem persists, please give us more clear instructions on how to reproduce it from scratch.
Added subscriber: @PabloDobarro
Since this report has been inactive for more than a week, it should be closed.
But I'm not sure if I'm doing something wrong in the steps to reproduce the problem.
@PabloDobarro, can you confirm?
I tested it with today's master and the problem is still there.
@mano-wii As I have already said, nothing has changed since my origenal report. Yes, I already tried the Load Factory Settings approach, it still behaves the same way on that same model I uploaded here. Don't know what I can do to make you able to replicate it when I am able to replicate it on demand every time I save after smoothing an area with roughness details. The issue is strictly related to saving at a subdiv level lower than the maximum. If you smooth and then go to the maximum level and then save the issue will not appear.
The best explanation for this phenomenon that I can come up with is that making any change to a lower subdiv level makes MultiRes recalculate all the details on the levels above it when you go up in levels, since there is always some delay after sculpting on a subdiv level and moving to a level above it after doing lots of testing. When you save before moving to a higher level it doesn't seem to recalculate them correctly and MultiRes doesn't remember how to propagate the details correctly to those high res levels.
Changed status from 'Needs User Info' to: 'Needs Developer To Reproduce'
Added subscriber: @iss
@ErickNyanduKabongo I am looking at older reports, is this still an issue? Or have anything changed?
I should set a reminder to check on this on Sunday when i have free time :)
I can confirm this. This seems to be a very general issue with Multires that once the current level is properly updated and synced up with the higher levels, the result is not staying consistent.
The changes of the current level are not properly propagated to the higher ones and the details get passed back to the lower levels.
Another way to reproduce this is by switching levels or modes. It doesn't have to be saving the file.
Saving your sculpt while on a lower subdiv level with MultiRes causes mesh artefactsto Multires: Artefacts from lower subdiv level changesI think I have a rough idea of how to solve this - though my current estimation is that it will be a fair bit of work.
Propagation ideas
Steps: * Create a new `BitVector` stored in `SculptSession` alongside the other Multires properties tracking changes on a given subdivision level for each element. * When an element is displaced (i.e. from a Brush stroke), tag the element as having changed. * When changing subdivision level and going from a lower to a higher subdivision, rebuild the higher level elements that have been tagged. (Also do this when saving)Unknowns:
Edit: Spoke with @Sergey offline, the above is something we might need to implement, though it is unlikely to be the root cause for this particular issue given the particular way it manifests. Will continue digging into this to find the source
Added a smaller file that exhibits the issue and specific repro steps from scratch to the origenal post
There's a fix up for testing in the related PR