From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Name :- Sukhitha Prabhath Jayathilake

Email :- pr.jayathilake@gmail.com

IRC Nick :- Phabtar

Physical Address :- 42, Kegalle road, Dewalegama, Kegalle, Sri Lanka

Synopsis

COLLADA is a XML based Data exchange Schema used in DCC (Digital Content Creation) Software which is extensively used as a common data format for collaboration of Digital Data amongst DCC software.

Blender, being one of the leading and popular 3D DCC software available, also implements COLLADA support, But, not extensively enough. Although Blender implements COLLADA support for many core elements, effects, etc., There still remains major areas of improvement in some elements, including Animation. This project for GSoC 2011 will aim towards implementing Full COLLADA Animation support for Blender.

Benefits To Blender

Almost all DCC software tries to implement COLLADA support efficiently and completely. But this support varies, almost giving rise to a sort of competitiveness regarding COLLADA support. Competitions aside, having a system which is less supportive in COLLADA compared to other major DCC software, is obviously disadvantageous.

Animations is one of the leading elements when it comes to any 3D development software. Therefore, COLLADA support in Animation is one of the foremost elements that needs to be considered. But Blender Animation support is in need of improvement in many areas, which are discussed below. Without complete COLLADA animation support, Blender has a distinct disadvantage over other DCC Software. As discussed with blender COLLADA developers, priority should be given to fully improving COLLADA animation support, instead of adding new COLLADA features. So a GSoC project to improve COLLADA Animation is integral for boosting Blender COLLADA support. And the many possibilities restricted by the lack of current COLLADA animations support, will be unleashed by this project

Certainly its desirable to go beyond the scope of only just animations. But it will not be feasible as a SoC project then.

Deliverables

  • Basically, the ability to import any animation related COLLADA file, which is incomplete or error prone now, would be expected at the end of the project. Some such test-files can be found in the OWL Test Model Bank, which can be used to test Animation import. for example, the ability to import animation related data in the following file(s), completely to blender, will be delivered by the project.
  • Some aspects, discussed in latter sections, are unable to be exported in to a COLLADA document currently. By the project, it is expected to export any Animation related data without error. For example Blender is currently unable to completely export animation data in the following files___. But the ability to export them completely in COLLADA will be delivered.
  • It is expected any animation related scene exported out of blender can be reconstructed with accuracy in animation elements by importing back the exported document.
  • Blender will be able to pass COLLADA Conformance Tests related to Animation at the end of the project.
  • (Bonus) earn one or more badges in Animation conformance testing.

Project details

The objective of the project is to fully implement COLLADA support for animations in Blender. The current COLLADA support for blender is limited in some aspects regarding animations support. Which includes -

  • Rotation curve importing/exporting
  • F curve importing and exporting in materials, camera, lamps.
  • Material +(effect) animation
  • Improved object node animation
  • Complex armature animation, (with mesh skins).


The above mentioned attributes will be completed after the project completion. Blender COLLADA support follows COLLADA 1.4.1 Specifications. Basically what is defined in COLLADA specifications related animations will be expected to be exported. The specifications can be used as a reference guide for what is expected.

The COLLADA support for blender is implemented by using the opencollada framework. Therefore the project will involve using the opencollada framework to the extent to which it supports animations currently. Also to overcome the limitations made by the opencollada engine to developing what is expected, development procedure might also involve modifications being made to the opencollada engine also, to suite blender animation needs.

The development of the project will involve constant communication with the appointed mentor (Nathan Letwory) and other developers through IRC channels.

Project Schedule

I've been working with blender COLLADA developers for some time now, So time allocated for Community bonding period can be reduced and development work can be begun earlier.

from late April until mid may, research had to be done on blender animations and gaining the necessary theoretical background. Due to my previous development efforts with blender, I'm already familiar with COLLADA and opencollada framework. But initially I still have to get a better understanding on the necessary theoretical aspects behind blender animations.

Then Implementation can be begun on developing the missing features mentioned above. Testing will happen after completion of each missing feature addition. The implementation phase can be subdivided into sub phases based on features.

from mid may till mid June ( mid term evaluations ) will focus on export and import of armature animations with objects parented to it. with light parameter and material parameter animations in the mix.

From mid June until end of July, will focus on mesh skinning animations import and export. Also finishing light parameter animation and texture parameter animation will be focused during this period. From end of July until the final evaluations, Testing for conformance of new features and improvements can take place.

At the end of development and testing, Documentation can occur at the final fortnight or so.

During the summer I am undergoing an internship at a local IT company. So I'm able to work from 2.00 pm to 9.00 pm GMT (from 7.30 pm to 2.30 am local time) on weekdays and totally free to work on weekends.


Me

I’m a 3rd year undergraduate student at the Computer science and engineering department in University of Moratuwa, Sri Lanka. I am a huge fan of gaming and thus has a profound interest towards 3D Digital content development. And was immediately impressed by Blender when I first started using it.

Although I have limited experience in using blender, As an Opensource Project requested by our University I did a project for Blender organization last winter, Because of my profound interest in Blender and coding skills in C++. The project was to implement COLLADA physics support for blender. because opencollada did not support physics in its framework the project involved development in the opencollada framework also. I was appointed a branch in opencollada code base for the development of physics support. Therefore I have previous experience with opencollada developers also. At the completion of the project it was possible to export and import basic physics related data in between blender and a COLLADA document. The patches related to the projects are here:

  1. http://projects.blender.org/tracker/index.php?func=detail&aid=25601&group_id=9&atid=127
  2. http://projects.blender.org/tracker/index.php?func=detail&aid=25828&group_id=9&atid=127

Also I have a good background knowledge in Mathematics also, areas including matrix math, Vector Calculus etc.

Therefore I have considerable experience in COLLADA, opencollada framework and blender collada support and working with blender developers related to COLLADA. Which will surely aid me in the development in the project mentioned above. I'm a confident and hard working individual determined to contribute to the best of my ability. ( And maybe slightly optimistic too :) )

I'm really looking forward to working on this project, because I chose a Blender project for my level 3 project also in hopes of participating for GSoC this year. This will be my first GSoC project if selected.

Thanks!