2021-12-22 Mesh Gizmo

Attendees: Dalai Felinto and Demeter Dzadik.

This meeting happened at the Blender Institute. Its goal was to evaluate the current state of the Mesh Gizmo prototype and organize the related tasks so developers can get involved.

The big picture with videos and a link to the sample file are present in Demeter’s Mesh-based armature interaction analysis. From that document a few tasks were cherry-picked and prioritized.

Bugs/TODOs:

  • Selection is not picking the face closest to the camera.
  • Gizmo show always be drawn on top of the mesh (no z-fighting with the mesh itself).
  • Mouse Drag Threshold should be taken into account for the mesh gizmos.
  • Gizmo should be culled by the mesh even when on hover.
  • Bones should be hideable when using mesh gizmos.

Good to have:

  • Solution for discoverability of mesh gizmos.
  • As an option, mesh gizmos should be visible during transform

Solutions for after the prototype is validated:

  • Use generic face attribute instead of FaceMap (and get rid of FaceMap panels in the UI).
  • Support any type of attributes.
  • Performance should be better.
  • Make sure that updating the shape object updates the gizmo (also when transforming the gizmo).

Follow ups and plan of attack:

  • Demeter will create bug tasks for the Bugs/TODOs.
  • Dalai and Demeter will try to find a developer that may be interested on helping.

For any developer interested on helping, a lot of the Bugs/TODOs listed here are easy to tackle.

23 Likes

Let’s not make this a hard rule; using custom bone shapes alongside mesh gizmos can give some powerful results.

10 Likes

Right. Rephrased to “hideable”, which was the original point, and removed the (always?) bit.

3 Likes

I don’t know if this is tangentially related, but I’m trying to create a custom gizmo for my add-on and I can’t use the gz.line_width parameter with a Custom Shape (I’m looking at the Gizmo Custom Geometry python template in the Text Editor). The gz.line_width works with GIZMO_GT_dial_3d in the gizmo_operator_target.py template. I would really like to be able to make my own gizmo shape out of lines, not triangles, and control the thickness of the lines.