Difference between revisions of "Extension"

From COLLADA Public Wiki
Jump to navigation Jump to search
m (pluralize)
Line 1: Line 1:
[[COLLADA]] provides flexibility by allowing applications to define '''extensions''' to existing COLLADA elements. These take the form of <extra> elements and of  <technique> elements with the argument ''profile'' indicating the platform (product name or similar) to which the extension applies.
+
[[COLLADA]] provides flexibility by allowing applications to define '''extensions''' to existing COLLADA elements. These take the form of alternative <technique> elements, additive <extra> elements, and scalable <input> elements.
 +
 
 +
<extra> elements and of  <technique> elements with the argument ''profile'' indicating the platform (product name or similar) to which the extension applies.
 +
 
 +
= Extension by Alternative =
 +
[[COLLADA]] enables multi-representation of many elements. In such cases, the element is defined using one <technique_common> and zero or more <technique> elements. The common technique is a representation of the element that is strongly typed in the schema and is required.
 +
 
 +
Other techniques are defined by the vendor supplying the alternative representation. Each <technique> has a ''profile'' attribute indicating the platform (product name or similar) to which the extension applies.
 +
 
 +
Each alternative representation of an extensible element should contain values that describe the element for that profile. The representations may have coherency between profiles although that is not required. In other words, if <technique_common> describes an ambient light it is okay if a <technique> for that light describes something else like an area light for that profile.
 +
 
 +
== Using <technique> to choose profiles ==
 +
 
 +
A COLLADA processor will choose either one, and only one, of the available alternatives. It will choose the <technique_common> '''or''' one of the <technique> elements. Where alternative choices are possible within the schema, the <technique> element models the alternative extensions. For example:
 +
 
 +
  <light>
 +
  <technique_common>
 +
    <ambient>
 +
    <color/>
 +
    </ambient>
 +
  </technique_common>
 +
  <technique profile="alternative_1"/>
 +
  <technique profile="alternative_2"/>
 +
  </list>
 +
 
 +
= Extension by Addition =
 +
== Using <extra> to add data ==
 +
= Scalable Vertex Attributes =
 +
== Using <input> to add attribute streams ==
 +
 
  
 
==See also==
 
==See also==

Revision as of 01:00, 26 October 2007

COLLADA provides flexibility by allowing applications to define extensions to existing COLLADA elements. These take the form of alternative <technique> elements, additive <extra> elements, and scalable <input> elements.

<extra> elements and of <technique> elements with the argument profile indicating the platform (product name or similar) to which the extension applies.

Extension by Alternative

COLLADA enables multi-representation of many elements. In such cases, the element is defined using one <technique_common> and zero or more <technique> elements. The common technique is a representation of the element that is strongly typed in the schema and is required.

Other techniques are defined by the vendor supplying the alternative representation. Each <technique> has a profile attribute indicating the platform (product name or similar) to which the extension applies.

Each alternative representation of an extensible element should contain values that describe the element for that profile. The representations may have coherency between profiles although that is not required. In other words, if <technique_common> describes an ambient light it is okay if a <technique> for that light describes something else like an area light for that profile.

Using <technique> to choose profiles

A COLLADA processor will choose either one, and only one, of the available alternatives. It will choose the <technique_common> or one of the <technique> elements. Where alternative choices are possible within the schema, the <technique> element models the alternative extensions. For example:

 <light>
  <technique_common>
   <ambient>
    <color/>
   </ambient>
  </technique_common>
  <technique profile="alternative_1"/>
  <technique profile="alternative_2"/>
 </list>

Extension by Addition

Using <extra> to add data

Scalable Vertex Attributes

Using <input> to add attribute streams

See also