Cycles microdisplacement tasks
Open, NormalPublic

Description

Adaptive subdivision and displacement needs some work still to be considered stable and fully supported. This task is to keep track of what needs to be done.

Subdivision:

  • T49049: Cracks between patches, due to discontinuities and no stitching.
  • T49048: Normal discontinuities between patches.
  • T49159: Tangents should be computed at the limit surface.
  • T49585: Adaptive subdivision setting linking issue.
  • T49431: Missing smooth (face-varying) UV subdivision.
  • Motion blur not working (test file)
  • Support for instances, two strategies both worth trying:
    • Object space dicing option so users can manually set it for all instances
    • Bin instances according to distance from camera, so we have about log(N)
  • Grid primitive to reduce memory usage
  • Optimizations, reduce memory allocations, ..

Displacement:

  • Fast BVH refit updates when tweaking displacement shader
  • Better results for bump from vector displacement.
  • Vector displacement tangents compatible with other software.

Details

Type
To Do

Discussed the remaining tasks with @Mai Lavelle (maiself), here's the IRC log for reference.

I'll get the displacement part in a state where it can be made a non-experimental feature. We're pretty close to that, we mainly need to finish D3018 and D3019, and verify that things like Both displacement and tangents are working ok. Vector displacement can be added afterwards, it likely requires some deeper changes to tangents to be compatible with other software.

The subdivision part still requires more work to become a fully supported feature. @Mai Lavelle (maiself) is working on smooth UV subdivision. Instances and cracks / discontinuities are the other two main issues.