利用者:Chingachgook/Gsoc2009/Proposal

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

Name

Chingiz Dyussenov


Email / IRC / WWW

chingiz.ds@gmail.com, chingachgook on IRC (#blendercoders on freenode), homepage http://arystan.abani.kz/jom/index.php?option=com_content&view=article&id=1&Itemid=2


Synopsis

COLLADA is a flexible and versatile digital assests exchange format created by the Khronos Group consortium. It is supported by the top commercial DCC tools like Maya, 3ds Max, Lightwave 3D, Cinema 4D and Unreal Engine. This project is about improving COLLADA support in Blender.


Benefits to Blender

Current COLLADA import/export module was developed in 2006-2007 by Illusoft. In mid-2007 the development halted and the module, in it's current state, is incomplete and unstable.

Blender users are often having problems with current COLLADA module due to it's instability. The module doesn't support skeletal animation and object animation support contains flaws. Also it does little or nothing to inform users when it fails.

In this project I will work to improve the module's stability and add new functionality, namely object-based and skeletal animation. The final module will also provide necessary user feedback about unsupported features.


Deliverables

- Stable COLLADA import/export module supporting geometry, transforms, materials, lights & cameras, skinning and animation. - Test files that demonstrate module's new capabilities and stability. - Documentation that describes current module state and will help future contributors get started.


Project Details

The first step will be integration of the COLLADA DOM API.

Previously I was going to integrate FCollada since it provides a higher level API, but thanks to Blender developers [3] we found out that it is no longer supported by it's developers and chose COLLADA DOM which is developed and maintained by COLLADA creators.

COLLADA DOM is "a comprehensive framework for the development of COLLADA applications and provides a C++ programming interface to load, query, and translate COLLADA instance data" [2]. It is open-source and will help me concentrate on managing data structures without having to worry about how data is stored on disk.

Current python API (in collada.py) has disadvantages: - it has to be modified to support new COLLADA versions - it is less stable than COLLADA DOM

Why COLLADA DOM? - it is being actively developed and has a wide community of users and therefore is much more stable - no maintenance problems: current python module may not support future COLLADA versions - with COLLADA DOM we get this automatically

Since COLLADA DOM is written in C++ it will have to be integrated with Blender build system in order to be compiled and used. COLLADA DOM compiles on Linux, Mac and Windows. I will use the latest version, 1.5, which is backward-compatible.

Mailing list discussions [3] also helped to decide that COLLADA importer/exporter module should be implemented in C/C++ for performance.

Current COLLADA module already contains code for geometry, materials & textures that works well. In this project the new functionality I will concentrate on is animation, object-based and skeletal. This includes support for "skinned" characters.


Project Schedule

[first 3 weeks starting April 21] - get myself comfortable with COLLADA - read specs and get to know COLLADA DOM - discuss and prepare for COLLADA DOM integration into Blender 2.5 source tree - figure out dependencies, successfully compile it on linux, windows & mac - study the existing COLLADA module

[main phase - May 23 - end of July] Integrate COLLADA DOM and implement features in the following sequence: get old features back working (geometry, materials, textures), add new features: animation, skinning, skeletal animation.

As development progresses I will send the module to my mentor and/or other interested developers for feedback.

[end of May - mid June] We (painting students) are having "plen air" (http://en.wikipedia.org/wiki/En_plein_air) and will be painting outdoors half-a-day, so I will be able to code a bit less per day. But is not too bad :).

[last 2 weeks - before August 10] Code finalization, UI improvements, bug hunting and developer documentation.


Bio

I'm a 20 year old coder (in free time) and a painting major student. I began coding when I was 17.

My main coding interest is game development. Since COLLADA file format supports most of data needed for game assets and is also available in most popular DCC tools (which is important, since game artists may prefer one or another DCC tool), it is my current subject of interest.

My previous experience includes coding a demo (which can become a game in future) where I experimented with the path-finding algorithm A*, skeletal animation and terrain level-of-detail. The demo can be downloaded from my homepage [4], please read the README.txt before launching it. The website also contains Blender models I have created and other artwork.

I have also coded an exporter script for Blender which writes geometry data to a custom XML-based file format. It can also be found on my website.


References

[1] Wikipedia article about COLLADA http://en.wikipedia.org/wiki/COLLADA

[2] COLLADA Homepage http://www.khronos.org/collada/

[3] Proposal draft discussion on Blender mailing list http://lists.blender.org/pipermail/bf-committers/2009-March/022944.html

[4] My Homepage http://arystan.abani.kz/jom/index.php/chingiz