light types

In the specification there is a limit to the types of light that are available and these are AMBIENT, DIRECTIONAL, POINT and SPOT.

Any chance that this could be changed for a future specification?

It would be nice to have the flexibility to include game specific lights, and types which the spec doesn’t include yet (e.g. area lights like those in Maya).

One idea is that the light stucture should be changed to be like the material structure so that a a technique was used with pre-defined profiles of AMBIENT, DIRECTIONAL etc. But this now gives the flexibility to define our own profiles for other light types and game lights.

Of course there are not so many light types as material types, but I was thinking that game lights may work differently to lights used by the content creation tools, and it would be nice to be able to output these in the Collada file.

Looking through the remainder of the specification I am pleased with the design that has gone into it, for example, the material and geometry are very flexible and able to express many ideas.

Changing the COLLADA specification is the result of the work of the partners. So there is always a chance it will change.

The best way to push through changes that you want is to become a partner and actively push your agenda items into upcoming releases.

Thanks for the positive feedback on the design. There are alot of people who have contributed to COLLADA that appreciate it. :slight_smile:

Also, <light> should allow for an unlimited list of <extra> elements as childs, so you can export app-specific data.
I can’t see this in the schema, so I’m guessing it’s a bug / missing feature.

I’m using it to represent some specialized light information (hemisphere light for ambient occlusion):

    <light id="light" name="light">
      <param name="COLOR" type="float4" flow="IN">1.000000 1.000000 1.000000 1.000000</param>
      <extra type="GI light sphere">
        <technique profile="EQUINOX-3D">
          <param name="LMapFile" type="Name"/>
          <param name="NumOfSamples" type="int">1296</param>
          <param name="Bands" type="int">3</param>
          <param name="NumOfCoefficients" type="int">16</param>
          <param name="CoeffsR" count="16" type="float">