Dev:2.5/Source/Architecture/COLLADA

提供: wiki
移動先: 案内検索
Working
This page has been marked for development documentation changes.
Feel free to comment on the talk page.
WIP REASON:

WIP documentation and development


Import-Export (COLLADA)
Owner(s) Nathan Letwory, Gaia Clary
Member(s) Jeroen Bakker

COLLADA integration

This section is about the integration of OpenCOLLADA in Blender. It outlines plans and roadmap for the effort to improve our COLLADA support. It also documents the structure of the code.

User documentation can be found in the manual

Structure

Location

blender/source/blender/collada

Enabling COLLADA support

Our COLLADA support is implemented using the OpenCOLLADA library.

Building OpenCOLLADA

For Windows and OSX we provide prebuilt libraries, so no need to build for those. For Linux see OpenCOLLADA build instructions.

Roadmap & TODO

  • current (17-may-2012) OpenCOLLADA revision we build against is: r839 (869 for MingW64)
  • Code Quality
    • Refactor (Martijn)
    • Restructure node and data writing/reading order (Martijn)
    • Doxygen style in source documentation
  • features
    • Blender profile for different data so we can export Blender specific data and re-import our own exports.
    • Import profile data for different tools (maya, max, etc) in custom properties, and export these as well
    • Export/Import of Objects which are parented to bones.
    • animation
      • fix rotation curve importing/exporting
      • other fcurve animations (material, camera, lamp, etc.)
      • Automate baking of animations of full rigified armature before exporting.
      • Texture animations.
    • modifiers (done)
    • move to using derived mesh instead of straight Mesh struct
      • improved mesh reading
      • improved normals reading (unified behind DM API)
      • access to tangent space
      • proper UV layers when exporting meshes as if with modifiers applied,
    • constraints/drivers
    • tangent space / binormal export (TEXBINORMAL)
      • the tangent you're going to get from blender is 4 components. The fourth component is a sign +-1. You are supposed to make the binormal like this:
        • B = sign * cross(N,T);      sign is .w and T is .xyz
          
  • long term
    • physics (there is a patch by Phabtar, but that needs upstream addition - also included in the patch upstream patch accepted!)
    • convert calls to blender kernel to RNA API (maybe even C++ RNA API)
    • Exporter settings.
      • Triangulate meshes.
      • <extra> info (also preserving from foreign imports!)
      • selected vs. everything (done)
      • active scene vs. all scenes

Supported COLLADA features

  • light
  • materials (TBD: add what is actually supported, how)
  • textures
    • uv textures: you need an image texture that has in mapping uv coords, any other will fail
  • mesh types
    • triangles
    • triangle fans (since r35406)
    • polygons (with some restrictions)
    • lines
  • instances
    • geometry
  • animation
    • single skin controller, single object to armature
    • object animation
      • location
      • scale
      • rotations.
    • light, camera, material parameter animation
    • armature animations
      • rigified armature animations
      • armatures as objects
      • IK constraint applied animations
  • controller
    • skin controller
    • morph controller


See the tag coverage page for a list of all COLLADA 1.4.1 tags and how they are supported in Blender.