Page MenuHome

Alembic export of shrinkwrap modifier evaluation has mesh artifacts
Closed, ArchivedPublic

Description

System Information
Operating system: Linux-5.8.0-7630-generic-x86_64-with-glibc2.32 64 Bits
Graphics card: Quadro RTX 6000/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.32.03

Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-05-03 08:23, hash: rBee8593fe7657
Worked: unknown

Short description of error
When exporting an object with a shrinkwrap modifier to an alembic cache and importing it back in the mesh shows clear artifacts. This doesn't happen when the shrinkwrap modifier is instead applied before exporting.

Exact steps for others to reproduce the error
See files:

Event Timeline

Sybren A. Stüvel (sybren) changed the task status from Needs Triage to Confirmed.Thu, May 6, 10:50 AM
Sybren A. Stüvel (sybren) claimed this task.

As it turns out, it has nothing to do with the shrinkwrap modifier directly, but with the way subdivision surfaces are handled. Since the shrinkwrap modifier targets a subdivided object, it is affected by this as well.

What happens is this:

  • The Alembic export options indicate that subdivisions should not be exported.
  • Blender goes over all objects and turns off their subdivision modifier.
  • What needs to be exported gets exported.
  • Subdivision modifiers are restored.

Because of this, the shrinkwrap modifier shrinkwraps to a non-subdivided object, which causes the observed difference.

In light of the above, the Alembic exporter works the way it is designed, so this is not seen as a bug. A solution would be to have a more elaborate evaluation of exported objects, but that would need a proper design first (instead of being just a bug fix).