利用者:Walid shouman/GoogleSummerOfCode/2013/WeeklyReports
< 利用者:Walid shouman | GoogleSummerOfCode | 2013
目次
- 1 Weekly Report #1 Mesh Data Transfer
- 2 Weekly Report #2 Mesh Data Transfer
- 3 Weekly Report #3 Mesh Data Transfer
- 4 Weekly Report #4 Mesh Data Transfer
- 5 Weekly Report #5 Mesh Data Transfer
- 6 Weekly Report #6 Mesh Data Transfer
- 7 Weekly Report #7 Mesh Data Transfer
- 8 Weekly Report #8 Mesh Data Transfer
- 9 Weekly Report #9 Mesh Data Transfer
- 10 Summary of the rest of GSoC
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.