From BlenderWiki

Jump to: navigation, search

[edit] GSoC 2017:Improvement of Vertex Painting

[edit] Name

Darshan Devanand Kadu

[edit] Email / IRC / Social

[edit] Synopsis

The vertex painting toolkit in the blender is not as good as texture painting. It lacks several tools and functionality that another painting like weight painting and texture painting has. Many blender users working on vertex painting are willing to have this toolkits and functionality in vertex painting. Currently, the vertex painting lacks the features like vertex masking, don’t have many blend options, color choice is only limited to RGB and not to rgba, color gradient is also missing. With this project I propose to improve vertex painting toolkit, adding lacking tools and functionality.

[edit] Benefits

After this project, the artists will be able to use vertex painting tools as easily as texture painting tools. Following are the benefits of the project:

● Artist will be able to select colors as rgba. Many artists want vertex alpha in color selection.
● Ability to paint with vertex masking. Currently, only face masking is there in vertex painting.
● More blend options. Additional blend option will allow users to select paint with different ways apart from the basic options.
● The option of symmetry. This will give users to paint the vertex symmetrically.
● Artists will be able to use a gradient as a color source.
● Users will get the options of accumulate.

[edit] Deliverables

Deliverables of this project are the addition of tools and functionality in vertex painting. Following are the things I will be adding in this project:

●Vertex alpha (transparency) option while selecting the color along with original rgb options.
● Vertex Selection Masking option will be added.
● Addition of Brush blending modes like as in texture painting.
● Symmetry option which will be helpful in painting symmetrically in x, y, z directions.
● Gradient as a source of color will be added.
● Accumulate option will be added.

If time permits I will make documentation of the relevant code base.

[edit] Project Details

Tasks which I have to complete in this project are:

[edit] Vertex Alpha

Vertex Paint has only RGB color support. Adding vertex alpha would be very beneficial for users. There is the pending patch for vertex alpha https://developer.blender.org/D911 . I will work on or if needed I will create a new one. Texture painting also has implemented this feature so it will also be help for implementation.

[edit] Vertex Selection Mask

Vertex selection mask will allow users to paint with the vertex selection mask in vertex painting just like the face selection mask. This feature is present in the weight paint mode we just have to take inspiration from this implementation and will have to implement it according to vertex paint.

[edit] Blending Modes for Brush

In this task, I will add the various blending mode. Some of the blending modes are:

  1. Color dodge --> In this mode the backdrop color is brightened to reflect the source color.
  2. Darken → Select the darker of backdrop and source colors.
  3. Lighten → Select the lighter of backdrop and source color.
  4. Luminosity → This mode creates a color with the luminosity of the source color and the hue and saturation of backdrop color.
  5. Hue→ Creates a color with the hue of the source color and the saturation and luminosity of backdrop color.
  6. Saturation → Painting with this mode creates a color with the saturation of the source color and the hue and luminosity of backdrop color.
  7. Exclusion → Produces an effect similar to that of Difference mode but lower in contrast.
  8. Difference→ Subtracts the darker of the two constituent colors from the lighter color.
  9. Screen → Multiplies the complements of background and source color, then complements the result.
  10. Soft Light→ Darkens or lightens the colors ,depending on source color value.
  11. Hard Light → Multiplies or screens the colors, depending on the source color value.
  12. Overlay → Multiplies or screens the colors, depending on the backdrop color value.

Other modes are also there. Most of this modes are in texture painting. So idea and concept behind this mode is already available. Having the blending options will give a great advantage to blender user for vertex painting.

[edit] Symmetry

This will allow the user to paint symmetrically. Again this is present in texture painting. But it will be bit different here as vertex have to be painted, so choosing which vertex is to paint for symmetry is going to be a major task in implementing this feature for vertex painting.

[edit] Gradient

Gradient will allow users to paint color gradient. I am now focusing on implementing this feature only for painting without the mask but later on scope may be increased and implement this feature for painting for mask also. This feature is also present in texture painting so that we can refer this methodology to implement this feature in vertex painting.

[edit] Accumulation

Accumulation will allow users to accumulate stroke on itself. Again this feature is present in texture painting so we can use it as a reference to implement this.

[edit] Project Schedule

I am having 3 months of holidays from May to July last week. So I will be able to work on a project completely till August. After commencement of college, I will compensate the work on the weekends. Hence my main focus will be to complete most of the work before August. The rough estimate of the timeline is as follows:

4 May- May 30 → I will understand relevant code base in more detail. Also, I will try to get to know more to my mentor and blender. I will understand how the other painting are implementing above feature.
May 31 – June 20 → I will complete the implementation of Vertex alpha.
June 21 - June 30 →Preparation of Phase 1 evaluation and evaluation.
July 1 – July 20 →Implementation of Vertex selection mass and most of the Blending modes of brush and accumulation.
July 21 – July 28 → Preparation for Phase 2 evaluation and Evaluation
July 29- August 20 →Implementation of remaining blending modes, symmetry and gradient feature. Also removing the bugs and finishing the code.
August 21-August 29 → Final evaluation and submission.

[edit] BIO

My name is Darshan Kadu and I am 20years old. I am 3 rd year B.Tech student at VNIT, Nagpur studying Mechanical Engineering . I mostly do competitive programming (darshan_7807 on spoj.com).I have done front end of my college festival’s website. I have experience of programming in C, C++, javascript, HTML, CSS, Jquery . I have been familiar with blender since 2 months. I have done one quick hack and submitted a patch. This is quick hack https://developer.blender.org/T50132 and the patch is https://developer.blender.org/D2596 . By doing this hack I learned how to compile blender make changes in the source code, and submitting the patch. In this hack, I implemented the border selection of vertices in the sticky mode in UV. Also I learned how the mesh loops work and how to transverse over the faces, vertices.