lundi 26 avril 2010

Week 28 [19/04 to 25/04]

Work Of The Week

Report week.

Total worked: 12 hours.

Report

All in all, the report is more than 2/3 writen. The presentation has to be converted to a powerpoint. Time worked:
12 h

Next Week prevision

Submission week.

Week 27 [12/04 to 18/04]

Work Of The Week

This was the last development week. After the 18th no more code will be modified, and all non-solved bugs will be added to the bug.txt file given with the software. Few are already in. and it is hoped that few will be.

Total worked: 14 hours.

Last release and bugs correction


Several small bugs were corrected during that week. One in the selection code (the last vertex was always added during sweep selection). The update selection when running the subdivision algorithm was also taking time, but was not really solved. The subdivision won't be applicable to a selection.

The trouble functionalities found so far but not corrected are removed from the release (like the command line options that causes trouble if Qt takes too much time to load).

Generating working binaries for windows and linux took time, as verification was needed that everything was as perfect as possible.
Time worked:
7 h

Report

Of course some efforts were put into the report too, that is growing bigger and bigger. Time worked:
7 h

Gantt State

Behold the final Gantt diagram

Gantt State to be added


Next Week prevision

Next week is the last week before submission. The presentation will be setted up, and the report will be finished.

Week 26 [05/04 to 11/04 ; Easter break]

Work Of The Week

Mainly worked on the report, but several hours were used for the subdivions. Running it on the selection should be achieved before the end of the project development (~ middle of April).

Total worked: 13 hours 30.

Subdivsion

The subdivision works well on the whole mesh but still causes trouble to the selection run. It is based on the storage of the mesh that is not reconstructed correctly.

A serious stack overflow happens when normalized very huge meshes (over 10 milion faces).
Time worked:
3 h 30


Report

A lot of time was spent to write the report first parts. The time was also used to generate the UML diagrams of the "final" software. Time worked:
10 h

Information And References

Latex websites about organizing a document were largely used.



Next Week previsio

Continue the report is the first objective. Finding and solving minor bugs too. The subdivision is a bit tricky to be run on the selection, but with a bit of luck may work in the end.

Week 25 [29/03 to 04/04]

Work Of The Week

The subdivision was debugged. Hopefully all will be finished by the end of next week. Some more tests were done to verify the loader, especially on "huge" meshes. It worked. The report plan was presented to Eyad during the meeting.

Total worked: 14 hours.

Subdivision

Bug killed. Working to run it on the selection. Time worked:
6 h

Loader Testing

Few bigger meshes were loaded with success. Especially the japtriangulated, that is running very slow on the RGU computer. Meshes triangulated into blender seams to be upside-down. Time worked:
5 h

Report

Working on the report plan and writing the help. Time worked:
3 h

Information And References

No external references that week.

Next Week prevision

Finish the subdvision! It is almost here! And work on the report as well.

Week 24 [22/03 to 28/03 ; Reading week]

Work Of The Week

This week was a debugging week. Running after the bug in the Subdivision algorithm. It was also partially used to learn how to use the debugging tool valgrind.

Total worked: 10 hours.

Search of the sigsev


Searching and searching for the several known issuses, mainly the subdivision problem.
Time worked:
10 h

Information And References

The valgrind manpage was my friend this week.

Next Week prevision

Continue the debug and solve that problem would be mice: April is comming.

Week 23 [15/03 to 21/03]

Work Of The Week

Work to run the median filter on a selectionm and mainly work to implement the sqrt(3)-subdivision algorithm.

Total worked: 9 hours 30.

Median Filter And Interface

Finishing the run of the median filter on a selection.

Searching and implementation of a ShortcutWidget. Based on a open source project code extract.
Time worked:
3 h 30

sqrt(3)-subdivision

Advanced read on the algorithm, and begining of the implementation. An error occurs and create a segmentation fault. Time worked:
6 h

Information And References

Reading on sqrt(3)-subdivision publication in pdf.

Shortcut from lyx-devel mail-list

Next Week prevision

Fix the errors in the subdivision.

Week 22 [08/03 to 14/03]

Work Of The Week

This week was mainly about Median Filtering. Few other interface modifications were made, and the light was finalised.

Total worked: 10 hours 30.

Median Filter


The creation of the AlogirthmDialog as a base for every algorithm dialogue helps to enable the options of the Median filter. This algorithm was, by the way, finished in the end of the week.
Time worked:
6 h 30

Light and OpenGL

The unused Specular and Ambient lights and few other options (colour is useless for instance).

Logging every single OpenGL action is enabled.
Time worked:
2 h

Interface

Few options were removed from the settings (see lights). And correction of a possible buffer overflow during the reading process.

A script was created for linux to remove the stored software parameter; and a registry entry removal was created for windows to do the same.
Time worked:
2 h

Information And References

Few web search leads me to do the scripts to remove the entries. On linux no problem thus it is a file (just 2 commands to find it). On windows in the other hand it took me some reading. The answer is there: add a minus in front of the key name!

Next Week prevision

Run the Median Filter on a selection only. Begin the implementation of the Subdivision.

Week 21 [01/03 to 07/03]

Work Of The Week

This week was about sweep selection first, then few light modification to finally work on the first bits of the Median filter algorithm.

Total worked: 11 hours.

Sweep selection


The actual work on sweep selection was to create a rectangular shape on the mouse dragging. It needs to combine Qt and OpenGL drawing, by overloading the paint event. Their was also few modifications on the deselection process, that now work with sweep selection too.
Time worked:
3 h


Lighting


Very few modification were done on the lighting, just adding the normals display and testing the actual work of disabling a light.
Time worked:
2 h

troubles

The development was mainly done on linux, and an update changes the default opengl driver, it took a while to understand the source of it. Time worked:
2 h

Median filter & interface modification


Few modification were done on the interface, in order to remove useless options mainly.

One hour play on latex to begin the report, creating the basic template.

And the first coding section in order to apply a median filter was made.
Time worked:
4 h 30

Information And References

Mainly use of Qt and OpenGL doc. The median filter did not required specified docuementation, even if few searches were made.


Next Week prevision

Continue the filter development, and certainly finish it.

lundi 1 mars 2010

Week 20 [22/02 to 28/02]

Work Of The Week



The idea of the week was to improve the selection. No real work was done on the lightning instead of reading.


Total worked: 11 hours.




Picking and selections



A simple option was added to the selection process, inverting it. This allow the user to select a small part of the mesh, and then apply a process to all the image but that part.

After Eyad asked for it, a sweep selection process was started. The overall process is working, with still few limitations and details to correct. First of all, a suitable way of displaying the rectangle from the mouse movement should be find, as my solution (using QPainter into the paintGL method of the MeshWidget) created annoying flashing on the screen. Then a review of the signalisation of a selected point was made, and still need to be verified (a sweep selection cannot un-select for a yet unknown reason).

Time worked:
6 h

Overall modification



Most of the Base namespace documentation was updated (mostly created). Producing a overall well-formated (doxygen) documentation will still be an important part of the process, as it is necessary to understand each small action of the software. The overall project have now more than 8000 lines of C++ (without the designer code) and therefore needs the documentation.

Few review were made on the Settings in order to incorporates some forgotten or new options (background colour, material intensity, ...).

A centroid computation is now done during the loading process, in order to center the mesh on the origin (0, 0, 0).

Time worked:
4 h 30


Gantt State



No Gantt state was published since ages, as I have to re-draw it mostly completely. The current trouble of lightning and previous one of picking changed most of the end of the planned development.


Information And References



No more references were used.





Next Week prevision



For next week Eyad ask that the sweep selection was done, as for the lightning trouble solved. Therefore I will work quickly to finalise the selection, and spent most of my time on the lightning.

lundi 22 février 2010

Week 19 [15/02 to 21/02]

Work Of The Week



The work was focused on two main points: the lightning and picking problems. The picking was solved, for a single picking action. But on the lightning side, the problem is still there. Few part of the lightning problem were solved, like the light colour is now applied correctly. But there is still a problem of lightning and shading, that makes the mesh looks either too dark or too clear.


Total worked: 12 hours 30.



Lightning



More reading (or re-reading) were done, to try to find the possible trouble in the configuration of the light. First of all the GL_NORMALIZE was not enabled, creating distortion in the normals (the mesh are scaled to fit in a single unit of space). Then some modifications were made on the material of the mesh, in order to have a result colour from the light's colour and the mesh's one. With these modifications the light intensity seams to reduce, creating almost good results with the sphere mesh, but still strange one with the face.

A new option appeared for the shading view: enabling or not the culling (hiding the backward looking faces) resulting in better rendering of full meshes (like the sphere) or even the face (if some part of the mesh can't be seen they are not drawn).


Results on Windows 7 (home)



Results on Windows XP (university)




Time worked:
5 h

Picking



The work on the picking was simply to create a "pikcing mode" that will allow the user to select vertices without moving the view. The picking mode reveals the vertices (in any views). Some options were added to the selection, like cleaning it (removing all points in it).

Saving the selection or the whole mesh is now possible, as the new two options are present in the menu.

Finally a "picking precision" was, more or less, started, and then aborted. The idea was to allow the user to select more than one point by enlarging the "selection rectangle". The solution was too difficult to use (as a user) and did not have good results.

Time worked:
7 h 30

Information And References



No new document nor references were used this week, as it was mostly to continue the previous work.




Next Week prevision



As the picking problem is solved, it can now be improved. But as my meeting with Eyad was cancelled (snow on Friday), some more efforts will be put on the lightning solving and the picking improvement.

lundi 15 février 2010

Week 17 and 18 [01/02 to 14/02]

Work Of The Week 17


Most of the work was just minor modifications to the interface, in order to link the new options created for the picking. The Middle Project Review was also compiled, and is available there



Total worked: 4 hours 30.



Middle Project Review writing



Review on the project current state, that is late compared to the original planning, but not out of time. More details are available in the document itself.


Time worked:
1 h 30

Minor modifications


The modifications were mostly on the interface, adapting the button event processing and other issues.

This work also introduced a modification on the log code entries, to change all (int)this pointers to long in order to be 64 bits memory width compatible. The OpenGL logging was also creating this week, in order to display understandable returns of errors.

Finally a bit of the lightning development was done, mostly light colour deals, and search to understand the source of the problems.

Time worked:
3 h

Information And References



The only references this week are about OpenGL lightning, from the OpenGL manual or few lightning tutorials.






Work Of The Week 18


Mainly the work of the week was to finalise and correct the issues of the picking process. Even if it was almost working, points were selected but unselectable, or even distant points were selected instead of the good ones.



Total worked: 7 hours.



Picking issues



The main work of the week was to read more about picking, to verify that the website were I took the algorithm was correct, and also to review my adaptation of it. The problems were due to tiny differences during the drawing or selection process, that are difficult to find. The algorithm I found was correct, but my interpretation of it had several mistakes, creating sometime the strange behaviours.

Most of the original problems (unselection and select unwanted vertex) came from the filling of the picking stack in OpenGL. At the end of the week the problem of unwanted selection is still present, even after the correction of several minor mistakes.

Few modification were also done on the update process in order to display the current mesh correctly. The selection does not, for a yet unknown reason, accept display in shaded view.

Time worked:
7 h

Information And References



The week reference is a book: Interactive Computer Graphics, a top-down approach using OpenGL, 4th edition, from Edward Angel and published by International Edition. The chapter about lightning and picking were consulted (respectively 3.7 and 6)




Next Week prevision


Next week is almost the dead-end for the lightning and picking troubles, as the second part of the project has to start soon.

lundi 1 février 2010

Week 13 to 16 [04/01 to 31/01]

Work Of The Week 13


Few was done during this week, especially because the exams were coming.


Total worked: 3 hours.



Minor modifications



Several minor modifications were made on the interface, on the settings mostly. New options were added, as drawing the axis according to the settings and other view modification (moving from glFrustum to gluPerspective).

Time worked:
3 h



Weeks 14 and 15

were exams' week, no work during that period.


Work Of The Week 16



This week focused on the picking development. Some problems occurred during the development of this part of the project, forcing me to develop a simpler software. The picking algorithm is not complicated, but as the overall project code begins to be bigger and bigger, it was quite difficult to understand were could the mistakes be.


Total worked: 9 hours.


In order to handle correctly the picking process, several classes needed to be adapted. First of all the Selection class has to be created, that represents some selected points from a NormalisedMesh. The SelectionWidget and SelectionListWidget were also adapted to recognise both meshes and selection separately.

Picking Software


My first attempt to picking was not successful. Either none or too much points were found on the stack. As the drawing process of the mesh is split in several objects, required by the complicated interface of the viewer, it could have been quite a nightmare to debug. Therefore I created a smaller project, handling only picking and minimal user interaction to find the problems.

This software simply draw a pyramid, were the points could be selected. The first development was also a failure, as for a strange reason, when the rotation and translation possibilities were added the picking just fail. Some minor issues were corrected to make it working almost. The real honours project code was then adapted to handle part of the picking process.

Time worked:
7 h 30

Selection class



Time worked:
1 h 30



Next Week Prevision


Next week the middle project review assessment is due, and should be therefore completed. Moreover several minor points should be revised on the software, as the picking is not perfectly working, nor the lightning and shaded view.


  • Middle Project Review
  • Picking adaptation
  • Lightning and shading

lundi 4 janvier 2010

Week 12 [28/12 to 03/01]


Work Of The Week



This week work was simply to continue the previous one. It was the last week before the revision for the exams, and therefore I begin my revisions. The main new function that was develop was some command line options for loading directly a mesh into the view. That will be used to apply an algorithm in another window in order to see the effective modification on the mesh.


Total worked: 10 hours.



Several modifications



Finally the Segmentation fault source was found. Thanks to linux printing memory status I found the part of the code that was wrong. It was the scaling part, using a not referenced array that was not detected on initialisation on windows.

I also created a nwe page for the settings to handle colour and lightning options. They are not used yet in the code.

Time worked:
6 h

Command line options, and running another application


Several options were added, using for the moment a simple loop reading on the char *argc[] parameter from the main function. The available options are listed when --help is set as parameter. A list will also be added to the about message.

Running another instance of the software was straightforward as Qt provide all the tools for that (using the QApplication model to get the application path and QProcess to run a new detached process).

Time worked:
4 h

Gantt State




Next Week prevision



Next week is reading week in RGU and I won't work on the project. But I will provide a small "revision" of the overall work done for the project, including spend time, completed requirement and adaptation of the working plan.