Saturday, March 5, 2011

Diary During Summer Vacation 14

5.5 hours of work makes a new feature: Now a second string can be added into a knot. Switch Between Two Strings Of A Knot Using R key: Press R key to activate another string of the knot. It switch to working on this active string and the previous one becomes inactive.



Diary During Summer Vacation 13

Today, two new features have been added:
1) To make a string closed (G key): using method in CubicSpline class that I wrote during last session, a string can actually be closed (Knot_Log13_0.png, Knot_Log13_1.png). Here in our knot rendering engine, press G key is to switch the string from open to closed, and from closed to open as well.

2) To change string radius: The program is now able to change string radius in real-time (- Key to reduce and = Key to enlarge). See Knot_Log13_2.png - Knot_Log13_4.png.




Diary During Summer Vacation 12

Continue with last week's work to add more editing features. Now the X, Y and Z axes can be selected by a left click and when it's seleted it becomes white to indicate its state. Then a drag & drop can move the control point towards the direction of the selected axis - demonstrated by Knot_Log12_0.png and Knot_Log12_1.png.

A feature to Add A New Internal Control Point Uing E key: To add a new control point between two existing control points on the string. Left click to select one control ball, holding on E key, continue to select next control ball using a left click. Two selected balls will become red. Then release the E key, press the E key again, a new control point will be added and a new control ball will be drawn at the position (Knot_Log12_2.png, Knot_Log12_3.png).

Another feature I have added on is to allow user to select an editing ball and then delete this control point. The operation of this one: Delete A Control Point Using D key: When the control balls are visible, a left click on a control ball will select this ball. The ball will become red and the X, Y, Z coordinators will appear on the ball. At this moment, press D key, this selected contorl point will be deleted (Knot_Log12_4.png).




Diary During Summer Vacation 11

This week I worked on adding the editing feature to the knot rendering engine. The first step is to add the ability to show editing balls on the control points on the cubic central line. Press S key is to toggle showing the editing balls. Next, a ball should be able to change its color when being selected. I reckon a world coordinator with X, Y, Z axes should appear as well to smartly response to the user's intention when an editing ball is selected. As shown in the log picture, these two features have been added. It was quite a busy week: Working 9 hours a day, coding, study, attending an English test, feeling exhausted.

Diary During Summer Vacation 10

As discussed with Tim 2 months ago, what I'm trying to do is to finish a running software prototype, that we can say is a 60-70% finished software. The software prototype should already provide all basic functionality to create and edit a knot. The prototype should be well documented as well, so that during the session all other members who are not that familiar with C# or XNA game engine can then do a little coding work according to the documentation. With this in mind, this week I'm continuingly working on the project. Since the integration of windows form and XNA is too time-consuming, I'm thinking of another solution to purely draw our own buttons using XNA framework. I looked into some sample codes and tutorials from XNA game developer's club, feeling confident to do so now.

Diary During Summer Vacation 9

Today I found a bug in the code that is dealing with the 4 view implementation. When doing 2D mouse position to 3D world position unprojection in a view, the code accidentally always takes the perspective camera's view matrix, and hence leads to a wrong unprojection result in other three views. It makes the unprojected 3D points unpredictably goes anywhere. This problem has now been fixed.

Diary During Summer Vacation 8

Continuingly working on the project, I'm faceing big difficulties currently. It turns out that I have to write our own texture and 3D model importer & converter in order to use XNA framework in the Windows form. This work seems quite deep and time consuming. 6 hours of work, no good result:(