From BlenderWiki

Jump to: navigation, search

Final Report

After 3 months of Google Summer of Code here is the final report.

My project was to improve the Vertex painting toolkit. I have added several functionality and features.

My changes have not merged in the master, as it requires code review from other developers also.

My GSoC branch soc-2017-vertex_paint can be found via this link -->

https://developer.blender.org/diffusion/B/browse/soc-2017-vertex_paint/

The discussion with the artists can be found on the blender artist thread -->

https://blenderartists.org/forum/showthread.php?427686-GSoC-2017-Vertex-Painting-Improvement/

User documentation can be found here:

https://wiki.blender.org/index.php/User:Darshan/GSoC2017/Documentation

In this project, I have added many small features including additional blend modes, accumulation mode, vertex mask selection, non-occluded painting, weight to vertex painting converter, alpha support in vertex painting and exporters and importers including .ply, .fbx, Collada, color lock, color layer. I didn't implement the symmetry feature as it was already done by Nathon in last years GSoC. Also, I did not implement the Gradient. Instead of that, I implemented other features which were needed most to the users. Here the summary :

I worked on last years GSoC work of Nathan.

Blend Mode

I added several blend modes as are in the texture painting. Added Color dodge, Luminosity, Hue, Saturation, Exclusion, Difference, Screen, Soft Light, Hard Light, Overlay.

Code Commit : b72aff483fbe, 3138c32878e5

Accumulation Mode

Added the accumulation mode. I stored previous alpha values and used them for calculation of accumulation.

Code Commit : b7532023812b

Vertex Mask Selection

Vertex painting already had the face mask option, I added the vertex painting mode in vertex painting. Also, I fixed the bug came with the vertex mask selection and improved the tool like fill for vertex mask selection.

Code Commit : 72533b087acc, 88936370487d, f2017083a19e

Non Occluded Painting

I projected the vertex coordinate on the screen and compared their distance with the radius of the brush if they lie in brush paint them. I added the non-occluded mode for weight paint also.

Code Commit :39a2294d38b0, 444ad728cd4d

Weight to Vertex Paint Converter

Created the weight to grayscale vertex paint converter. The weight 0 means black on grayscale and 1 means white on grayscale.

Code Commit : 28e4e9b0247e,bf6338c48184,db3441c8c5c6

Alpha Exporters and Importer

I made the .ply collada and .fbx exporter and importer compatible with the vertex color with alpha.

Code Commit : 97e46b5e1450,5acf2e1a95b7,fa889d2ad932 ,4ed7bc28930f

Alpha in Vertex Paint

Added the alpha support in vertex painting. The value of the alpha can be set using the slider user can enable or besable the alpha contribution also. Also, Alpha is now visible in the 3d viewport.

Code Commit : e486461f23d1,986018165b4b,076b351b2c80,fddd39d718a7

Color Lock

The option of the color lock is added, with the help of this user can paint only specific color channel.

Code Commit : 90e0c31c72d3

Color Layer

I increased the color layer to 64.

Code Commit :5f20911a4488