Page MenuHome

Multires: Option to not refit the base mesh when using Apply Base
Needs RevisionPublic

Authored by Pablo Dobarro (pablodp606) on Wed, May 6, 10:32 PM.
Tags
None
Tokens
"Love" token, awarded by dbystedt."Love" token, awarded by Brandon777."Love" token, awarded by andruxa696."100" token, awarded by Frozen_Death_Knight.

Details

Summary

Some users are discussing that the current refit algorithm does not
produce the expected results when using Apply Base, while others expect
this feature to create a base mesh that will look like the Multires grid
displacement when being subdivided again.
This patch splits the Apply Base operator into Apply Base and Refit Base.
Apply base will not refit the mesh, creating the same final result as
applying the subdivisions and using Rebuild Subdivisions. Refit Base is
the equivalent of the previous Apply Base, which will deform the base
mesh and refit.

Diff Detail

Repository
rB Blender
Branch
multires-refit-base (branched from master)
Build Status
Buildable 7925
Build 7925: arc lint + arc unit

Event Timeline

Pablo Dobarro (pablodp606) requested review of this revision.Wed, May 6, 10:32 PM
Pablo Dobarro (pablodp606) created this revision.

@Sergey Sharybin (sergey) As automatic Apply Base is planned in T73317, maybe we can skip this patch, make a new operator for refit and remove Apply Base once automatic apply base is working.

Sergey Sharybin (sergey) requested changes to this revision.Thu, May 7, 9:34 AM

The goal of Apply Base is to modify base mesh in a way that level 0 elements of the displacement grids are 0. While current refitting does not really achieve that perfectly it is possible to improve refitting.
To me it seems to address motivational part of this patch improving refitting algorithm is the way to go.

The fact that your new Apply Base behavior matches Rebuild Subdivisions suggests that it is the latter one which needs fixing.

Basically, the rule of thumb is: keep displacement as small as possible.

This revision now requires changes to proceed.Thu, May 7, 9:34 AM

In 10 years of baking head/character displacement maps in production in Zbrush I have never once used the Cage feature. The Cage feature in Zbrush is identical to the Apply Base feature in Blender. Why not just fully automate the propagation from high to low subdiv levels and get rid of this Apply Base button? To me it seems redundant. Nobody in production is going to be deriving displacement maps from a base mesh that is so radically different in volume/form from the Cage mesh.

I think the new "refit base" operator would be a great addition to the multires modifier. It is just what I'm looking for in my current real time character workflow that uses baked normals. The fact that the lowest resolution is closely matching the shape of the highest subdivision is really beneficial.

I can also see the benefits of using "apply base" that Sergey mentions above, since it would result in the smallest change in the subdivided shape when using displacement maps.

I think that by implementing both "Apply base" and "refit base" would make sure that the most artists get what they need for their workflow.

I also saw a discussion about auto changing the lowest subdivision when sculpting on a higher subdivision. Perhaps a checkbox would be a good implementation to let the user decide if she/he wants to auto update the shape of the lowest subdivision?