This section describes which Okino scene graph entities are exported to
the COLLADA file
This section describes which Okino scene graph
entities are exported to the COLLADA file.
Polygon Geometry
All main Okino 3D primitives will be converted and
output as COLLADA meshes with optional vertex
normals, vertex (u,v) texture coordinates, vertex colors, vertex bone
deformation skinning weights and/or vertex tangent vectors (if available). 2 or
more sets of vertex normals, texture coordinates and vertex colors are also
fully supported (such as when exporting from 3ds Max and Maya).
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.
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.
Okino Material Parameter
COLLADA Material Parameter
Ambient color
Converted to normalized <ambient> color
and weighted ambient shading coefficient.
Diffuse color
Converted to normalized <diffuse> color
and weighted diffuse shading coefficient.
Specular color
Converted to normalized <specular>
color and weighted specular shading coefficient.
Luminous color
Converted to normalized <emission>
color and weighted luminous shading coefficient.
Shading model
Okino Phong output as <phong> template,
else Okino Blinn output as <blinn>
Shininess strength
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 http://www.okino.com/conv/skinning.htm.
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
Animation Conversion
Exported Object Animation
Channels
Scale as explicit X,Y, Z animation channels
Euler rotations as explicit X,Y, Z animation
channels.
Translation as explicit X,Y, Z animation
channels
Object pivot points
Constant, Linear and Bezier keyframe
interpolation methods are supported in exporting to COLLADA animation curves.