Pipeline 3D Export Tool Requirements

Version 16 (kaetemi, 09/01/2012 05:03 pm) → Version 17/18 (kaetemi, 09/01/2012 05:05 pm)

h1. Pipeline 3D Export Tool Requirements

This page lists the requirements for creating export tools for 3D data which can be used by the pipeline.

An export tool would be either one of the following:
* A console tool that can be executed once per input file
* An interface for inter-process communication that commands a running 3d modeling application process
* A tool that commands a 3d modeling application to process many input files in batch (Not recommended, as it does not provide sufficiently flexible feedback, and is totally annoying when it crashes)

And needs to accept the export modes with their respective input parameters, and output all of the requested files.

h3. Export modes

|shape|1 -> many|shape; anim; tga (lightmap)|
|ig|1 -> many|ig|
|skel|1 -> 1|skel|
|clod|||
|cmb|||
|pacs_prim|||
|swt|||
|veget|||
|zone|||

h2. shape

Exports:
* All shape nodes with lod (shape_with_coarse_mesh/nodename.shape)
** Node metadata contains list of names of LOD mesh nodes
* All shape nodes without lod (shape_not_optimized/nodename.shape)
** Except for the ones that should not export
* Animations per shape if any (shape_anim/nodename.anim)
** When @Automatic Animation@ is checked.
* Generates lightmaps (LM) if required per shape per lightgroup (shape_lightmap_not_optimized/filename_nodename_lightgroupid.tga & filename_nodename.txt (if OptLightmapLog))
** We might want to modify this to export the data required for a lightmap generation tool only to a data file, and run a lightmap generation tool outside of the 3d export process, that uses the exported shape and light information from the data file. See calc_lm*.* files under nel_mesh_lib.

Does not export:
* Accelerators (meshes describing clusters and portals) Accelerator
* Zone quad patch (this is exported to .zone in a different process)
* Particle system (a type of node that refers to a .ps, used in the .ig)
* PACS Primitive (basic cylinder and box shapes used for collision)
* Node properties DONOTEXPORT checked (speaks for itself)
* Node properties COLLISION checked (interior collision meshes)
* Node properties COLLISION_EXTERIOR checked (exterior collision meshes)

Shapes may be:
* Particle system (???)
* Wave maker
* Node properties USE_REMANENCE checked (what is this?)
* Flare
* Triangle object

Triangle object may be:
* Water shape
* Shape with lod
* Shape without lod

Input parameters:
* LogErrorFile
* LogDependFile
* SrcFile
* DstDirectoryWithoutCoarseMesh
* DstDirectoryWithCoarseMesh
* DstDirectoryLightmap
* DstDirectoryAnim
* OptExportLighting
* OptShadow
* OptLightingLimit
* OptLumelSize
* OptOversampling
* OptLightmapLog

h2. ig

Exports:
* All instance groups for IGNAME used in node properties (igname.ig)

Instance groups contain:
* All shapes (by name)
* All lights
* All helpers

h2. skel

Exports:
* One skeleton containing node tree in reference position starting from node Bip01 (filename.skel)