Page MenuHome

Alembic Procedural: only subdivide if subsurf modifier is present
ClosedPublic

Authored by Kévin Dietrich (kevindietrich) on May 4 2021, 4:09 PM.

Details

Summary

As subdivision objects are first class citizens in Alembic, to
differentiate them with non-subdivided polygon meshes, the Alembic
Procedural automatically sets up subdivision properties on the generated
Cycles Mesh.

However, for real-time playback subdivision is far too slow, so this
modifies the detection of a MeshSeqCache modifier used to activate the
procedural to allow for a Subsurf modifier right after the cache one. If
present, the procedural will tag the object for subdivision, if absent, the
object will be treated as a regular mesh.

This is a temporary measure for until subdivision surface settings are part
of the Mesh datablock (see T68891).

Diff Detail

Repository
rB Blender
Branch
abc_proc_ignore_subdivision_D11162 (branched from master)
Build Status
Buildable 14613
Build 14613: arc lint + arc unit

Event Timeline

Kévin Dietrich (kevindietrich) requested review of this revision.May 4 2021, 4:09 PM
Kévin Dietrich (kevindietrich) created this revision.
Brecht Van Lommel (brecht) requested changes to this revision.May 11 2021, 10:45 PM

Could this be automatically detected on the Cycles side by the existence of a subdiv modifier after the cache modifier? I prefer to avoid settings that are only for the procedural when we can avoid it.

It's not the cleanest solution, but hopefully will be resolved by T68891 in the future.

This revision now requires changes to proceed.May 11 2021, 10:45 PM

Use the presence of subdiv modifier to detect if subdivision should be performed.

This requires to also skip subdivision modifiers when detecting the cache modifier,
however this is only done if we are not checking for motion blur data, as tesselation
will make such data invalid. (Checking for motion blur data is only done if we are not
using the procedural.)

This revision is now accepted and ready to land.May 25 2021, 3:19 PM
Kévin Dietrich (kevindietrich) retitled this revision from Alembic Procedural: setting to ignore subdivision to Alembic Procedural: only subdivide if subsurf modifier is present.Aug 20 2021, 2:37 AM
Kévin Dietrich (kevindietrich) edited the summary of this revision. (Show Details)