Flexible control is provided on which
type of COLLADA mesh primitive is used: (1) <triangles> (most
commonly implemented in destination COLLADA programs), (2) Explicit n-sided
<polygons> with no holes, (3) Explicit n-sided <polygons>
with optional holes, or (4) <polylist> which outputs the smallest
and most compact COLLADA files in most cases.

If an Okino object definition is instanced
multiple times (which is common from CAD files, such as IGES), then multiple instances
will be output in the <instance_geometry> section of the COLLADA file.

Material Assignments on Mesh Geometry

Okino’s 3d scene graph allows for flexible
assignment of materials to entire objects, to specific polygons of each mesh,
or for inheriting materials from instances of an object down to specific
polygons of a mesh. All of these methods are carefully and properly mapped over
to corresponding COLLADA files (this is one of the more complex parts of the
COLLADA exporter):

1.Materials can be assigned
globally to each instance of a mesh definition (ie. each mesh is assigned only
one material, but those materials can be overridden on an instance-by-instance
basis).

2.One or materials can be
assigned at the polygon level of a mesh definition. These polygon-level
material assignments override the materials assigned global at the instance
level.

3.Inside the Okino scene
graph each polygon of a mesh can be assigned the special
“NUGRAF___SPECIAL_INHERITED_SURFACE_MARKER” material name. This means “please inherit
the final material for this polygon from the instance of this geometry object”.
In the COLLADA file the mapping is done in the<instance_material> definition, as shown below where (for this
example) the Okino inherited material marker is replaced with the “deep red”
material during the instancing of the base mesh. This is also where the uv sets
are associated between the mesh and material definition.

<instance_geometry url="#sphere_object-mesh">

<bind_material>

<technique_common>

<instance_material

symbol="NUGRAF___SPECIAL_INHERITED_SURFACE_MARKER"

target="#paint__deep_red">

<bind_vertex_input semantic="uv0"
input_semantic="TEXCOORD"

input_set="1"/>

</technique_common>

</bind_material>

</instance_geometry>

Cameras

The following camera types and camera
parameters are converted. See also COLLADA Extensionsextensions for extra camera extensions.

COLLADA has a rich set of material attributes
of which most of the standard shading parameters can be exported from the
PolyTrans material database. See also COLLADA Extensionsextensions for extra camera extensions.

Output as <shininess>. The Okino Phong
shininess value is clamped to ‘15’ if less than 15, then divided by 2.0 to
map into the 100.0 unified range. The Okino Blinn shininess value is computed
and output as (100.0 * (1.0 – C3)), then clamped to 100.0

Opacity

Output as <transparency>. The opacity
is inverted depending on the <transparent> mode chosen for output:
RGB_ZERO vs. A_ONE.

Opacity vs. transparency mode

The RGB_ZERO or A_ONE <transparent>
mode will be chosen depending on whether the <transparency> value
should be considered as transparency or opacity. Also controlled via an
explicit user interface option.

Ray traced reflectivity shading coefficient

<reflectivity>

IOR (index of refraction)

<index_of_refraction>

Texture Maps

The following are the various texture
modulation methods supported and their equivalent texture modulation method in
COLLADA.

Okino Texture Map

COLLADA Texture Map

Ambient map

<ambient> color texture map

Diffuse map

<diffuse> color texture map

Specular map

<specular> color texture map

Luminous map

<emission> color texture map

Opacity map

<transparent> texture map

Bump map

fCollada <bump> map

Reflection map

<reflective> reflection map

Cubical environment map

<cubical_environment_map>

See also the COLLADA
Extensionsextensions section for a complete discussion of all the
<extra> tags which define the extended material parameters, texture
repeat + offset values, and other texture related parameters.

Mesh Skinning

Mesh skinning is the deformation of a single
skin mesh by a deformer. Please refer to this page.
Full skinning support is provided during COLLADA export.

Okino is particularly proud of its skinning
conversion pipeline, based on the Okino “Artic” toolkit that allows us to
guarantee numerically accurate skinning conversions between all of the major
animation systems and file formats, in particular for fixing up all the
internal skinning issues associated with 3ds Max and Maya.

NURBS/Spline/Linear Shapes and Curves

The COLLADA exporter allows 2D and 3D
cubic spline curves, NURBS curves and spline shapes to be converted into closed
cubic curves, polylines, meshes or other higher order primitives. How these are
output to COLLADA is controlled via the various drop-down combo boxes on the “Curve
Output Options” panel.

Note: support for spline curves in
other 3D packages doesn’t appear to be too popular, if supported at all.

Okino Curve Type

COLLADA Geometry Type

3D polyline

<linestrips>

Linear spline curve

<spline>, type = LINEAR

Bezier spline curve

<spline>, type = BEZIER

B-spline curve

<spline>, type = BSPLINE

NURBS curve

Converted to a series of bicubic curves,<spline> of LINEAR or BEZIER type