From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Multi-resolution Improvements

Nicholas Bishop nicholasbishop@gmail.com

Synopsis

Extend multi-resolution tools to support more than vertex coordinates. This will be accomplished by creating a new type of CustomData that stores a grid of arbitrary CustomData. I will use this new grid CustomData type to implement multi-resolution vertex colors and multi-resolution masks for all the paint modes.

Benefits to Blender

Arbitrary multi-resolution data provides a clear benefit for the sculpt tools, since we can now add masks. Similary, we will be able to use vertex colors on all levels of a multi-resolution mesh, whereas now you can only paint on the base mesh.

Deliverables

  • Make the multi-resolution data generic.
  • Add masks to sculpt and paint modes.
  • Multi-resolution vertex color painting.

Project Details

My first goal will be to create the grid type and convert existing multi-resolution vertex coordinate data to it. Then I will add masking support to sculpt mode. Initially this will be very basic support for non-multiresolution meshes with minimal UI.

The next step is making masks work for multi-resolution meshes. This is probably the trickiest part of the project; doing it right will be important for making other data work with multi-resolution. Some concerns include undo support (sculpt mode has its own undo system), ensuring good memory usage, and making sure I don't break any existing functionality such as external files backing multi-resolution modifiers.

Next I will add support for multi-resolution vertex colors, providing an alternative to regular texture mapping.

The next goal should be fairly quick: adding masks to all the paint modes.

Next I will add more complex masking controls and UI (should include things like UI for clearing masks and controls for converting weight groups to masks.)

Finally, I'll add conversion from multi-resolution vertex colors to regular textures using UV coordinates from the base mesh.

Project Schedule

I do not have any vacation or other work scheduled for the duration of the project, so I will be available for all twelve weeks.

Week 1: Add the new CustomData Grid type and convert existing multires data to it.

Week 2: Add a new CustomData type for paint masks. Implement basic support for masks in sculpt mode on non-multires meshes.

Weeks 3, 4, 5, and 6: Generalize the CustomData Grid type to support subdivision and editing of sculpt masks. I'm giving this step four weeks to ensure a correct implementation. This will include undo support for sculpt and writing a nice release notes page.

Weeks 6, 7, and 8: Add multi-resolution support for vertex colors.

Week 9: Add masking support to vertex colors, to keep features the same between sculpt and paint.

Week 10: Add more mask controls and create a nice UI for it.

Week 11 and 12: Add conversion from multi-resolution vertex colors to regular textures.

Bio

I am a computer science major at the University of Maryland, College Park. I have four years of coding experience with Blender, working on the sculpting and multi-resolution tools. I have completed projects in the Google Summer of Code for Blender in 2006 and 2008, and with the Inkscape project in 2007.