Page MenuHome

Cycles microdisplacement: move subdivision options to subsurf modifier
ClosedPublic

Authored by Mai Lavelle (maiself) on Jul 17 2016, 6:13 AM.

Details

Summary

Having these options in the modifier is much more convenient, tho I'm unsure of the UI. The modifier must be the last in the stack or Cycles will ignore the options.

Diff Detail

Repository
rB Blender

Event Timeline

Mai Lavelle (maiself) retitled this revision from to Cycles microdisplacement: move subdivision options to subsurf modifier.
Mai Lavelle (maiself) updated this object.
Mai Lavelle (maiself) added a reviewer: Cycles.

One issue we'll have to deal with here eventually is the case where you have a particle / hair modifier after the subdivision modifier. In that case render time subdivision gets disabled for what might seem no good reason. But it might be good to keep it disabled for now since you would get the issue that hair is not properly attached to the surface due to different subdivision levels.

intern/cycles/blender/addon/properties.py
1004

I would prefer "Use Adaptive Subdivision".

intern/cycles/blender/blender_mesh.cpp
939

We should check if the modifier is actually enabled here.

intern/cycles/blender/blender_util.h
54–63

This kind of manipulation of scene data in export is not a problem now, but in the future it could be if we do better multithreading. Probably "ignore the last subdivision modifier" should become an API feature then, but I think it's ok as is for now.

release/scripts/startup/bl_ui/properties_data_modifier.py
907

I think ideally we could arrange the UI something like this:

Viewport:
- Levels

Render:
- Adaptive Subdivision
- Render Levels   or   Dicing Rate

You could also check here if the modifier is the last modifier, to grey out or hide these options when they have no effect.

It would be good if we could do this in the addon somehow as well, instead of modifying the Blender code, but I'm not sure how at the moment.

This revision now requires changes to proceed.Jul 17 2016, 7:50 PM

@Ronny G (nutel), in that screenshot I think it's not clear that Adaptive only applies to rendering.

The last one looks good to me.

Mai Lavelle (maiself) edited edge metadata.
  • changed "use cycles subdivision" to "use adaptive subdivision"
  • check if modifier is enabled
  • updated ui
  • new modifier settings are now only shown if modifier is last in the stack, otherwise old settings are displayed
This revision is now accepted and ready to land.Jul 20 2016, 12:28 AM
This revision was automatically updated to reflect the committed changes.