From BlenderWiki

Jump to: navigation, search

GSoC 2017 Weekly Reports

Report #01

Here are the updates of the first week

What I did this week:

I have to work on last year's GSoC work of Nathan so I merged https://developer.blender.org/D2150 patch with my local branch with the help of my mentor. So I will be working on top of Nathan's work from last year GSoC.

In the bonding period, I studied the blend mode working and hence I implemented some of those in this week. The blend mode that I have implemented are color dodge, Difference, Screen, Hardlight, Overlay.

What I plan to do next week:

Tomorrow I will push my branch.

I will be implementing the rest of the blend modes.

I will have to verify the whether blend modes are working properly or not.I will need help in this from my mentor and devs.


Report #02

Here are the updates of the second week

What I did this week:

I have pushed my branch. here is the link. https://developer.blender.org/diffusion/B/browse/soc-2017-vertex_paint/

I am getting more and more familiar with the code base. My mentor Mr. Howard is providing great help.

I implemented the softlight, exclusion, luminocity ,saturation, hue blend modes.

Next task is the accumulation, so for this, I researched about accumulation in texture paint mode and how can I implement it in vertex paint mode. The fourth variable mask which goes in along with color array is responsible for the accumulation effect in texture paint.So I have to calculate this mask variable in vertex paint which in turn uses a previously calculated value. So here, the main task is how can I store the mask value.

I have also created the blender artist thread here is the link --> https://blenderartists.org/forum/showthread.php?427686-GSoC-2017-Vertex-Painting-Improvement

What I plan to do next week:

I will finish the method for implementing the accumulation and start implementing it.

I will decide the icons that I can give to the added blend modes.


Report #03

Here are the updates of the third week

What I did this week:

I finished the implementation of the accumulation for vertex painting.

Icons of the additional blend modes are the standard icon for now.

I started working doing vertex mask selection. Went through how it is implemented in weight paint, it was pretty similar at vertex paint also. I implemented the vertex mask selection.

The next task I started is non-occluded painting. I have one approach for this task. I want to select all the vertices which are in the brush the radius and irrespective of their visibility. If I select vertices in this manner then I can achieve this goal.I am discussing this approach with my mentor and blender artists.

What I plan to do next week:

I have to finalize the method for non-occluded painting and implement it.

I will be asking to blender users more about the improvement areas in the vertex painting, BA thread has many good suggestions about this!


Report #04

Here are the updates of the fourth week

What I did this week:

In this week the major task was non-occlude painting. The approach I finalized was like this -->

 Get the screen coordinate of the vertices and the brush.
 Check whether the distance between them is less than the radius of the brush.

It took some time to get to know to the coordinate system in the blender and the terminologies related to computer graphics. I got the screen coordinate by multiplying the projection matrix and the vertex coordinate.

On the BA thread, it was asked to have the non-occluded mode in weight painting so, I have added this mode to weight paint also.

What I plan to do next week:

There might be an issue regarding the efficiency of above approach, I am discussing it with Mr. Nicolas, So this has to be finalized in the upcoming week.

There is a bug in vertex mask selection which I implemented last week, So I will be fixing it.

I will start working on the Random color assignment problem.


Report #05

Here are the updates of the fifth week

What I did this week:

I just have added an additional matrix multiplication in the existing code for the non-occluded painting. So, It's not changing the complexity as it takes the constant amount of time. So, for now, I have finalized the current code.

I solved the bug with the help of my mentor. I just had to add vertex paint as mode along with weight painting.

The random color selection task is still not clear so I did the weight to vertex paint color converter. Now, the user can have the weight of the vertices in the form of grayscale in vertex painting. I have added the option of the converter in paint menu in vertex painting and weight menu in weight painting.

What I plan to do next week:

I will be starting work on vertex alpha. Will create a doc and will look at the existing patch.


Report #06

Here are the updates of the sixth week.

What I did this week:

I started working on vertex alpha channel in the vertex paint. I went through the details of alpha mode. Me and my mentor discussed with the artists about their expectation from the vertex alpha.After all the discussion two basic things I did:

1) Added the alpha slider, the user now can select the alpha value manually, this alpha value, I have decided to use this value to set alpha, which is different from what the Fabio did in this patch https://developer.blender.org/D911

2) I am working on adding the alpha to the .ply file exporter. Till now I have extended the corresponding RNA as to take alpha into the account.

What I plan to do next week:

I will continue work on vertex alpha.

I will complete the .ply exporter.


Report #07

Here are the updates of the seventh week.

What I did this week:

This week I continued my work on vertex alpha.

In last week's code for the alpha channel, there was a problem that it was not setting the alpha value properly to all the vertices. It was due to the fac that goes into the mcol functions, if fac was out of range that is( 0,255) then alpha was not set. I changed it, so that vertex has the alpha value defined by the used irrespective of the fac value.

I completed the ply exporter. It was taking the vertex color information from the Mcol, but it was limited to 3 colors i.e RGB, so I extended the corresponding RNA so that now it is possible to access the alpha from the ply exporter. Hence, once I got the access to the alpha I just append it to the RGB in the ply exporter.

The next task was fbx exporter. I took me some time to understand it, as it is in python. There was an addon created for it by the artists https://forum.unity3d.com/threads/vertex-rgba-blender-2-5x.254038/ The current fbx exporter was setting the alpha to 1 by default. I replaced it with the alpha value from mloopcol. It is working well as tested on unity with c# script.

I faced the problem to commit the code in the addon folder. So, I moved the modified addon files into the startup folder and then commit the code. This is the temporary solution as the add-ons have the separate repository.

Next, I did Collada exporter. I was simple. I extended the current code for alpha.

Then, I started the task of showing the alpha in the 3d view. I have made the preliminary changes to it. It is working for basic cases still, have to make many changes to.

What I plan to do next:

I will complete the task of the alpha in 3d view, it is lacking for the cases like mesh subdivide, face selection etc.

I am getting the feedback on the blender artist thread about the vertex alpha e.g. setting the alpha value. I will solve this problem in this week.


Report #08

Here are the updates of the eighth week.

What I did this week:

I made the alpha visible in 3d view in last week but it wasn't working properly for subdividing mesh. I still have not found the solution to this problem. There were two possibilities one was that alpha wasn't assigned properly after subdividing or 3d view is not being displayed correctly. After, looking through the code it was sure that the problem is in 3d view display part because the alpha was getting assigned properly after subdividing (by interpolation) the printed value of alpha at various stages were proper. Also, if we use the only 2d body like the plane then after subdividing it gives the proper result, but not same with the 3d objects like the cube. I might not be using the proper OpenGL functions here, I need help here.

Blender was slowed down because of traces of printf() function so I removed it.

Ply exporter is working fine but not the importer, so I changed it. I extended it intake to accommodate the alpha. It works fine now. Fbx importer works fine for alpha but it gets scaled down after importing. I don't know whether it is the desired result or any bug?

Artists were suggesting to have alpha should blend similar to the RGB blend, now it does blend similar to RGB.

I have added the color lock option, it locks the RGBA value and won't let the brush change it. I have written the code for it but it is not working properly.

What I plan to do next week:

I will complete the color lock option.

Artist has suggested the "bake to vertex color" with the current development.

Also, the 3d view problem of alpha is to be solved.

Report #09

Here are the updates of the ninth week.

What I did this week:

As I was working on lock color option, I completed it. It is working fine. I have added the color lock for Alpha also, which I am not sure whether it is required or not.

For 3d view problem for alpha in vertex paint, one more thing I found, If I use backface culling then the alpha was getting displayed properly.This indicates that the back faces are affecting the 3d view. This needs more investigation.

In next task which I was going to work was bake color. It took me time to know how the bake color works, but after creating PNG file from vertex painting, and applying the PNG file to vertex painting it was found that the alpha was working properly with the color bake with respect to vertex painting.So, no need to change the working there.

Next task was the alpha display for subdivision modifier. It was a bit simple task. I extended the color to accommodate the alpha. Now it is working properly. But the problem of 3d view is there.


What I plan to do next week:

On the blender artist thread, there are plenty of to do remaining, although I have finished almost all the tasks from my proposal. I will take this tasks one by one. The next task which I will do is increase the color layer for the vertex color.


Report #10

Here are the updates of the tenth week.

What I did this week:

At this point, I have completed all the task from my proposal except the color gradient, along with several other tasks, so I started working on the task suggested by Mr. Howard and users.

I increased the color layer to 64, I can increase it further, but only when I will be sure that it is not crashing. Until now I have not got any crash report.

There was a request from the user to have the new color layer to be default one instead of copying the old one, I set the new layer to default one. But I am not sure whether all the user like it this way.

There was a bug in vertex selection mode. Vertex selection mode was not working well in vertex painting and weight painting for the non-occluded mode. I fixed by changing the occluded bool condition for vertex selection.

I replied to the users on blender artist. Still not done with it.

I created my wiki page for GSoC submission https://wiki.blender.org/index.php/User:Darshan/GSoC2017 I am working on the documentation page.


What I plan to do next week:

I will create the user documentation of my GSoC.

I will be interacting with the user on the blender artist thread about the bugs and features.

I have series of task suggested by Mr. Howard, so I will be doing that.

Report #11

Here are the updates of the eleventh week.

What I did this week:

I created the use documentation of the GSoC. Here is the link https://wiki.blender.org/index.php/User:Darshan/GSoC2017/Documentation

I worked more on issues and bugs this week.

Texture painting brush was not working properly. I fixed it by enabling the bool alpha to alpha channel.

The curve fall was not working properly, it was due to distance and the radius of brush, I corrected it by having different radius and dist parameters.

The curve fall off then was not working properly with alpha values, it was due to fac= 0 and setting alpha there. I have fixed it now.

What I plan to do next week:

For the vertex new color layer problem, I will revert back to original one.

With new build more and more response is coming on blender artist thread. I will be working on those issues and bugs.


Report #12

Here are the updates of the twelveth week.

What I did this week:

With the discussion with my mentor and other users, the original working of the new color layer was correct, so I revert back the changes, now the new color layer copies the current layer.

Fill took was not working for the vertex mask selection. I fixed this issue.

I created the final report for final submission.

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

What I plan to do next:

The final evaluation is from next week, so I will be preparing for that. Bug fixing is always welcome.

Report #13

I had completed the majority of the tasks till last week, this week I wrapped up the final report.

Final_Report