Worked on the exporter side, to get data from DCC tools (Maya, MAX, XSI, whatever) to the engine. The main workflow goes like this (tho will be improved): you model your thing in the 3D package of your choice, export the scene/object as a COLLADA (.DAE) file, using the package’s COLLADA exporter (some DCC tools have their own, some can be extended with free COLLADA exporters like ColladaMAX, ColladaMaya, XSI has its Crosswalk thingie; after you have the *.DAE file, you will run The NAC (Nytro Asset Compiler) from command line, like this (it also has options switches not shown here): nac “d:\where my dae at\some.dae” “d:\some\gamedata\output here”, this will generate, depending on COLLADA file contents and given NAC options, a *.mesh or more, or *.material.xml, *.model.xml, *.anim for objects and/or skeletons, and so on. That’s all, from there you setup and use the resulting optimized binary files how you wish.
Materials had a little, yet major modification done to them, now in a .material.xml file you can have a <subMaterials> tag and have <material> children sub-materials, so when you apply a material to some mesh, it will apply submaterials onto the submeshes of that mesh. Example for a model with a mesh containing 3 submeshes:
crate.material.xml:
<material>
<subMaterials>
<material name="frontSide" shader="materials/shaders/generic.shader.xml" shaderPreset="generic">
<textures>
<texture file="textures/some1.png"/>
<texture file="textures/some2_normal.png"/>
</textures>
</material>
<material name="leftSideOfCrate" shader="materials/shaders/ice.shader.xml">
<textures>
<texture file="textures/some2.png"/>
<texture file="textures/some2_normal.png"/>
</textures>
</material>
<material name="topWaterThing" shader="materials/shaders/water.shader.xml" shaderPreset="pool">
<textures>
<texture file="textures/some3.png"/>
<texture file="textures/some3_normal.png"/>
</textures>
</material>
</subMaterials>
</material>
crate.model.xml:
<model>
<lods maxDistance="100">
<lod mesh="meshes/box.mesh" distance="0">
<subMesh material="models/crate/crate.material.xml" subMaterial="0" />
<subMesh material="models/crate/crate.material.xml" subMaterial="1" />
<subMesh material="models/crate/crate.material.xml" subMaterial="2" />
</lod>
</lods>
</model>
In the future I will add a tag to select a material for the entire LOD, so you dont specify a material, same material for each submesh, but the option to override a submesh material with other will remain of course.
Started on writing basic engine usage tutorials/examples, but I’m afraid this milestone for an alpha SDK for 25 dec. will not reach its completeness, but things are going nicely, rushing it would probably do more bad than good. As always, stay tuned.