|
Week 16
Graph Editor
The Graph Editor has been improved to support dynamic keyframe manipulation. The user can select an attribute and toggle its visibility. A keyframe can be updated by changing its value. The timeline is connected to the Graph Editor to display a current frame marker.
Cubic Interpolation
Animation now supports cubic interpolation. For the time being, translations and scales are calculated using linear interpolation and rotation is calculated using cubic interpolation. In the future, I plan on implementing interpolation support for manipulating keyframe and tangent
New Camera / Multiview Implementation
Using QT's dock widget and MDI concepts, I changed the original multi-camera theory, which used GL Scissor Test, to a new camera scheme. Depending on the view mode(single or multiview), each window has a reference to a camera. The original version had a single window with hard-coded scene that required repetitive mouse-checks to determine which window is detected.
The new version brings several new advantages. (1)Each Scene window has a renderable scene and a menubar which makes it easy to automatically switch cameras and views. (2)MDI Support allows the user to switch between single- and multi- views, and resize each window to their needs. (3)Supports creating new camera (implemented in the near future).
Shader Support
Raina3D now has its initial Shader support. Using GLEW extensions and a new shader object, it is easy to load shaders. I still need to do more research to create and handle dynamic shaders for multiple objects before further installation into Raina3D.
Back-end Maintainance
To improve compile-time, I implemented a PCH to pre-load standard files and libraries, such as QT, streams, and STL. The Global constants object has been cleaned up by grouping the data. The Application Configuration connects directly to the GLConstants settings structure.
Improved Light Support
The new Light Listener now supports Spot Light and global light settings. A future version will allow a more OOP standard for creating and manipulating lights. The global light settings include global ambient color, two sided lighting, and viewpoint lighting.
Cleaner Timeline
Basic animation settings, such as frame rate and clamped frame values have been removed from the timeline and inserted into a separate dialog. This provides for a cleaner interface and allows easy access to adjust those values.
Importing Skeleton
Using the Joint object (created last week), I imported a joint skeleton from Maya from hard-coding the values into XML, by parenting the joints. In the near future, I plan on writing a melscript or plugin to convert a Maya skeleton into an xml file. Currently, joints are represented by lines.
|