利用者:Apinzonf/progress

提供: wiki
移動先: 案内検索

目次

GSOC 2012 Progress Reports

Week 1 Report

What I did this week?

I read Blender documentation and other related documents that describe sparse matrix and laplacian implementations advised to my by Daniel and Brecht.

I proposed several lines of code for operators names, and describe how implement laplacian system with OpenNL.

I wrote this design document, this document describes the methodology of my project "Mesh smoothing" http://wiki.blender.org/index.php/User:Apinzonf/design

I finished the paper today, and send it to my tutor Daniel, I hope that in the next few days the corrected document, and after making the corrections I'll post the changes proposed in the design document to svn branch.


What you plan to do next week?

The next week i will write code for operators name, and implement methods to initialize data structures, and initial configuration for laplacian system.

Any roadblocks, difficulties, etc.

-

Week 2 Report

What I did this week?

I implemented new operator with base on "Smooth" operator source code.

I implemented methods to calculate the Laplacian Matrix.

The OpenNL was use for solve sparse system.

I implement method which constructs the system of equations.

I implement method to solve the sparse linear system.

I added area to normalized laplacian weight.

I added area constraint parameter in user interface.


What you plan to do next week?

To study the constraint on the boundaries.

To implement constraint on the boundaries.


Any roadblocks, difficulties, etc.

Week 3 Report

What I did this week?

I performed a proper management when selecting some vertices, we must detect the border with the flag BM_ELEM_SELECT in the faces around vert.

I Added lambda factor for boundaries in UI.

I implemented method to exact volume preservation.

I implemented special treatment for vertices on boundaries.

I wrote a small page so people can download and try the partial results of my project. http://wiki.blender.org/index.php/User:Apinzonf/laplaciansmooth/tutorial

What you plan to do next week?

To implement this tool how a modifier.


Any roadblocks, difficulties, etc.

Week 4 Report

What I did this week?

I implemented a Laplacian smooth how a modifier tool.

  • I read Dev:Source/Modifiers/Adding
  • I looked several MOD_...c files. In /source/blender/modifiers/intern
  • I did copy and paste from MOD_smooth.c and related files to MOD_laplaciansmooth.c
  • I Implemented Laplacian smooth algorithm in file MOD_laplaciansmooth.c, with base on my work in other file make in past weeks bmo_smooth_laplacian.c in /source/blender/bmesh/operators
  • I take a long time transforming the algorithm, since in the modifiers there is little topological information. And transform the DerivedMesh to BMesh would cause poor performance (Advice given by Genscher and ideasman_42).


What you plan to do next week?

Adapt the modifier to work with Quads.


Any roadblocks, difficulties, etc.

The modifier only works with triangulated meshes, MFace has 4 verts in some cases, and I need work with 3 verts only or adapt the algorithm to work with Quads.


Week 5 Report

What I did this week?

I solved the problem with quads that had Desbrun, et al, using the paper Xiong et al.

I studied the paper and adapt Mean Laplace–Beltrami Operator for Quadrilateral Meshes Xiong et. Al. 2011 to work with quads and triangles at same time.

I implemented the laplacian smoothing for triangles and quads how a modifier

MOD_laplaciansmooth.c and operator bmo_smooth_laplacian.c.

The algorithm in operator bmo_smooth_laplacian.c was changed for best performance.

I added some constraints.

Soft constraints: each vertex can be weighted according to the desired smoothing that we want.

Hard constraints: vertices can be constrained along an axis

I did optimization code and apply coding style with base on Dev:Doc/CodeStyle


What you plan to do next week?

Publish versions for windows and linux and I start working on refine current graphical user integration with the community.


Any roadblocks, difficulties, etc.

The results are very good, and I think in future I will write a paper


Week 6 Report

What I did this week?

I did compile Blender Sushi Branch for Windows 32 bit and Linux 64 bit versions.

I made a video showing the uses of the tool to remove noise, or to model objects with the technique called "Smooth Subdivision Surface"


I wrote a page on the wiki showing how the project

User:Apinzonf/laplaciansmooth/tutorial

I wrote a page in blenderartists to show the video, and ask for cooperation in the definition of the names and descriptions of the buttons on the tool.

Gsoc-2012-Sushi-Branch-Laplacian-Smooth-Video


What you plan to do next week?

Working on refine current graphical user integration with the community.

Any roadblocks, difficulties, etc.

I will write a paper "Smooth Subdivision Surface".

Week 7 Report

What I did this week?

Daniel my mentor helped me to get collaboration for testing and the compilation.

I wrote test uv page User:Apinzonf/laplacian/test_uv

I add volume preservation to UI.

I started manual doc Laplacian Smoooth User:Apinzonf/Doc:2.6/Manual/Modifiers/Deform/Laplacian_Smooth


What you plan to do next week?

I will do try to modifier in the community

Any roadblocks, difficulties, etc.

.


Week 8 Report

What I did this week?

I added internal constraint for reduce spikes, based in length of edge.

I have a Manual Page about Laplacian Smooth Modifier, ready for review.

User:Apinzonf/Doc:2.6/Manual/Modifiers/Deform/Laplacian_Smooth

Wiki User LuisEDB(Luis Duran) is helping me, with spell check, english grammar.

The community began to give ideas and opinions about the Laplacian Smooth Modifier Blenderartists thread.

I did merge from trunk to branch sushi.


What you plan to do next week?

I will continue talking with the community about the tool.

I will do some performance testing.


Any roadblocks, difficulties, etc.

.


Week 9 Report

What I did this week?

I changed intern parameter for reduce spikes, with base on several tests.

I did merge from trunk to branch sushi, i found problems again of my colleagues in the branch, and i had to resolve to work well.

Changed the names of the parameters, based on suggestions from the community.

I studied some solvers and methods about Preconditioned Bi-Conjugate Gradient Method PBCG, and made some performance test with CHOLMOD , TAUCS, BICGSTAB, SUPERLU, and SUPERLU have the better performance.

I used math, and numeric_stuff modules from Graphite software for made the test.


What you plan to do next week?

I will do more documentation.

I will do studies on the problem that occurs when the smoothing is large and the preservation of volume is applied.


Any roadblocks, difficulties, etc.

.


Week 10 Report

What I did this week?

I solved the problem of displacement due to the scaling applied when the volume is preserved.

I wrote document about performance of several numerical solvers, for compare time in computation of laplacian smooth system.

Performance Testing of Solvers


Vertices Vs Seconds


What you plan to do next week?

I will do more documentation and tests.

Any roadblocks, difficulties, etc.

.

Week 11 Report

What I did this week?

I did merge from trunk to branch sushi.

I wrote a tutorial for developers Tutorial Adding a New Modifier

User:Apinzonf/Dev:Doc/Tutorial_Modifier


What you plan to do next week?

Prepare Sushi-SmoothLaplacian branch to integrate it into the blender trunk

Any roadblocks, difficulties, etc.

.


Week 12 Report

What I did this week?

I wrote a wiki page to list the work I did and that is ready for review

Source code and Documents to review: User:Apinzonf/develop

I wrote a wiki page to download last versions of sushi branch and some files for testing.

Download and Testing: User:Apinzonf/Download

I wrote a BA thread, to call for reviewers

BA thread


What you plan to do next week?

I will correct the problems encountered by reviewers.


Any roadblocks, difficulties, etc.

.