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.

Weekly Report #1 Mesh Data Transfer

This Week

  • Organised the wiki and SVN for the successive work
  • Reviewed the hierarchy system
  • Manipulated CustomData of Vertex Colors as the next steps will be totally dependent on copying those CustomData -by using the appropriate API-

Next Week

  • Manipulating shapekeys data
  • Copying Shapekeys between different Meshes
  • Making all the copy features in Weights Transfer tool available in the Shapekeys transfer


Weekly Report #2 Mesh Data Transfer

This Week

  • Manipulated shapekeys data.
  • Copied Shapekeys between two meshes (by index).
  • Got over the sync issue of the KeyBlocks (this seemed a small issue at the first but it took more than a day to be done).
  • Used the Customdata interpolate function to interpolate for different topologies.
  • Extras: Done my first successful merge and set up the first operator to call the function from within to get prepared for the commits.

Issues

  • Interpolation with custom_data_interpolate isn't satisfactory and seems that I'm missing something around.
  • Increasing the control over the interpolation would need some extra time.

Next Week

  • Making a satisfactory shapekey interpolation.
  • Reviewing the shapekey transfer function with Campbell.
  • Making the first commit.
  • Manipulating UV's.
  • Transferring UV's between two different objects.


Weekly Report #3 Mesh Data Transfer

This Week

  • reviewed the shapekey transfer workflow with Campbell (that set me to the right track before getting into the interpolation and also added a little more tasks to implement).
  • Interpolated the shapekey data between 2 different topologies (still basic interpolation).
  • Manipulated the UV's data.
  • Transferred UV's between two different objects.

Issues

  • Implemented the very basic interpolation which works well with small number of non identical vertices (by maximum 50% identical to 50% non-identical) more than that would give much less responsiveness.
  • Think -not sure- that the revision 58022 I've merged from is missing a file to build (giving a message: Cannot find source file:paint_vertex_proj.c) so I couldn't commit the latest.

Next Week

  • Implementing the whole shapekey transferring algorithm.
  • Reviewing the shapekey transfer function with Campbell.
  • Making the first commit.
  • Transferring UV's between two different topologies.
  • Setting down an algorithm to deal with seams and islands.


Weekly Report #4 Mesh Data Transfer

This Week

  • Finished the shapekey transfer function {the shapekey transfer function could be found under the name -Transfer Shape Key (new)-},but yet got an issue when I moved to the latest revision, I believe that happened because of the bm-to-me/bm-from-me functions that changed between the revision I was working on and the latest merged revision from the trunk.
  • Some functionalities related to copying specific shapekey groups that were meant to be within the extras are done.
  • Supported taking Normals in consideration while copying -which could be much more enhanced later on for more accurate transfer-.
  • Ported all my work to the branch to facilitate the code merging from now on.
  • Made my first commit after many checks to avoid messing with the branch again.
  • Got an algorithm to find the seams for the UVs.
  • Drawn the basic idea behind the Shapekey algorithm http://wiki.blender.org/index.php/User:Walid_shouman/GoogleSummerOfCode/2013/ShapeKeyTransfer/

Issues

  • Shapekey transfer function is still not working under the new revision even when its working in the old revision.
  • Taking islands into account for interpolation seems a deep issue for me -had couple of days only thinking about and didn't get an effective solution yet-.
  • Didn't know that making WIP commites within the branch is Ok, so I was working all the time without committing till I reach the final transfer, however next times I'll be committing much more frequently.
  • Due the delay I had I think that implementing the whole UV transfer may be delayed a bit after its deadline (which should have been this week)

Next Week

  • Setting down an algorithm to deal with islands.
  • Implementing the seam algorithm.
  • Interpolating UVs based on islands.
  • Debugging the Shapekey transfer function.


Weekly Report #5 Mesh Data Transfer

This Week

  • Fixed the Shapekey Transfer Function and its working well right now (its cause was passing wrong parameter to the mesh_to_bmesh transfer function)
  • Implemented a seam finding algorithm
  • implemented an island finding algorithm
  • Finished a basic algorithm for interpolation that works for topologies with a single island -to be extended when the whole island finding gets integrated with the interpolation-

Issues

  • Unfortunately as expected the previous week that the UV transfer based on islands would be delayed a bit
  • Island finding is based on the seams_from_islands function which showed some bugs/unexpected output when welding edges back (should have turned back to a single island which wasn't the case)

Next Week

  • Having the whole UV Transfer function finished.
  • Debugging any found bugs for the shapekeys.
  • Discussing the Extras section with Campbell (some of them were already implemented).


Weekly Report #6 Mesh Data Transfer

This Week

  • Optimised the shapekey transfer function to be ready for the trunk.
  • Implemented the vertex group transfer onto Shapekeys and UVs and currently we've 2 algorithms to copy each (one based on nearest vertex and another based on nearest face).
  • Got the first review from Michael Williamson "The project Artist" which was a positive one with a request of a feature and a "naming bugfix".
  • Fixed the naming bug in the shapekey transfer.
  • Added basic automatic tolerance finding feature.

Issues

  • The previous week I should have spent the time in finishing the UV transfer, however -as that was asked within the mailing list- I had to shift into applying the algorithm used in the vertex group transfer onto either the shapekeys or the UVs, which is now applied on both.

Next Week

  • Having a full UV transfer function.
  • Enhancing the interpolation of the shapekey transfer with faces.
  • Debugging any found bugs for the shapekeys.
  • Discussing the Extras section with Campbell (some of them were already implemented).


Weekly Report #7 Mesh Data Transfer

This Week

  • Fixed the interpolation of the shapekey transfer by projection (the second algorithm for shapekey transfer)
  • Got an idea of a new algorithm to find islands based on copied UVloops out of projection, which is currently implemented into the UV transfe.
  • Implemented an independent algorithm for island finding that could be used if needed any time
  • Fixed a bug associated with trying to copy shapekeys from a source that doesn't have any shapekeys

Next Week

  • Finishing the system for both the vertex weights and vertex colors
  • Code cleaning (freeing the memory allocations).
  • Adding the seam copy.
  • Adding the layer options to the UVs -the same way they're implemented in the shapekey's-
  • Debugging any found bugs for the shapekeys or the UVs.
  • Discussing the Extras section with Campbell (some of them were already implemented).


Weekly Report #8 Mesh Data Transfer

This Week

  • Generalised the system to work on the vertex colors & weights.
  • Generalised the layer options to the vertex colors, vertex weights and UVs.
  • Fixed the memory leaks with some code cleaning.
  • Optimised the color transfer to search for source faces only one time per transfer.
  • New feature: the user could choose between transferring relative (or not) to the target object.
  • Installed both Sysprof and Oprofile -and started to use Sysprof to figure out the bottlenecks in the transfer-.
  • Documented the current progress into a video which could be found Here.

Next Week

  • Generalise the face search optimisation to include the UV, Vertex weights and Shapekeys.
  • Adding the seam copy.
  • Bugfixing the bugs found at the video.
  • Adding multiple interpolation functions -mainly to enhance the current UV transfer-.
  • Ensuring the UVs are being copied in a satisfactory manner.
  • Optimising the performance according to the discovered bottlenecks by the profiling.
  • Adding some extra features to the transfer.


Weekly Report #9 Mesh Data Transfer

Issues

  • The massacre being done in Egypt atm is way too disturbing for me to concentrate in coding, especially when leaving home puts our lives on the edge -the army, police and thugs are everywhere-!
  • Nobody knows when things would settle down ...
  • Thinking about dropping the special support for single layer transfer for better maintainability.
  • Also thinking about dropping the support for other transfer way (AKA: by nearest vertex) or mark them as WIP till they could be integrated into the large system made by BM_mesh_data_copy() and BM_mesh_multi_layer_copy().

This Week

  • Generalised the face search optimisation to include the UV, Vertex weights and Shapekeys now BM_mesh_data_copy() includes the 4 types of transfer.
  • Minor bugfixes.
  • Sped up the UV transfer.
  • Fixed the interpolation issue with UV transfer.

Next Week

  • Adding the seam copy.
  • Bugfixing the bugs found at the video.
  • Code cleanup.
  • Reviewing the code to be released.
  • Adding some extra features to the transfer (may include "append to the active layer" to have a non-destructive partial transfer, automatic detection for the from/to active object ... etc.)


Summary of the rest of GSoC

Issues

  • Got sick for a couple of weeks, then the graduation project and other life aspects took me into it, which made this project's priority much less.

This period

  • Finished the project functioning as proposed -with the sought partial transfer- r59432 .
  • Done some cleanup.
  • Started rewriting the project to use the Blender's CustomData (finished the rewrite of copy_for_the_same_topology) starting from r59433.

What's missing

  • Finishing the rewrite of copy_by_interpolation.
  • Adding the automatic detection for the from/to active object if that was needed.