Wednesday, February 20, 2013

MAX: exporter defaults and docs

Very useful page.
http://sourceforge.net/apps/mediawiki/osgmaxexp/index.php?title=Documentation


 Using the OSG Max Exporter Plugin

From within 3D Studio you can use several ways to start the plugin;

    Select More... on the Utilities pane and choose the OSG Export toolbar. The toolbar will appear and the export function are available through it.
    Choose Export from the File menu and choose OpenSceneGraph Exporter (*.IVE, *.OSGB, *.OSGT, *.OSG) as file type (typing the extension specifies which one will be used). This will open a dialog box with export options.
    The Helpers are available from the Helpers section on the Create pane, by selecting the OpenSceneGraph drop-down item.

The OSG Exporter Toolbar

image:Toolbar.png

image:Toolbar1.png Export the whole scene and preview it in Max
image:Toolbar2.png Export the selected objects and preview in Max
image:Toolbar3.png Export the file as an .OSG-file (to default export-folder)
image:Toolbar4.png Export the file as an .IVE-file (to default export-folder)
image:Toolbar5.png Set the options for exporting
image:Toolbar6.png About the plugin
Exporting files

Warning: When you work with Groups in MAX, make sure they are all closed before you export, otherwise these objects will not appear in the .
Supported Formats

    osgb: The preferred format for newer OSG versions. This is a binary format which means it will load very quickly and supports embedded image data within the file.
    osgt: This is a text based format, which means it will take longer to load. However, the benefit of this format is that it can be opened and modified within a simple text editor.
    ive: The legacy binary format. Only use this format if your version of OSG does not support the newer osgb format.
    osg: The legacy text format. Only use this format if your version of OSG does not support the newer osgt format.

Limitations

Not everything modelled in 3D Studio can be exported flawlessly to an OSG-file. Below is a list of things that might prove impossible to export and some suggesting to make them work anyway.

    Animated modifiers: use an OSG Sequence Helper to make this work. Otherwise the animation behaviour of the objects may be unpredictable.
    Some Space Warps
    Particle Systems?: only simple ones can be exported without a problem. For complex Particle Systems? the use of an OSG Sequence could also be an option.
    The AEC Exteneded geometrical object could pose a problem. So far it turns out that the Foliage-objects (trees, shrubs and other items) are not exported very well, supposedly due to the large number of very small objects which the viewer will cull.

Export options

When you've selected a file type you will be presented with a large scrollable dialog box, with the following panel sections:
(Note: This dialog can be accessed directly form the OSG Exporter Toolbar)
Output

image:Export_output.png

    Save File: If you uncheck this option, no copy of your file will be saved to disk. This can be useful if you only want to Quick View your scene.
    Embed image data in binary files: When exporting to a binary format (i.e. ive/osgb), store the image data within the file. When using this option it is not necessary to save out the texture images. This option will generally help speed up load times. However, if you use the same image across multiple models, then this option will prevent the image to be cached and shared by OSG.
    Save Texture Images: This option should be checked when exporting to a text format (i.e. osg/osgt) or not embedding image data. The texture images will be saved in an “images” directory in the same directory as the exported file.
    Quick View Scene: This will create a small preview window within 3D Studio MAX. Take care when selecting these options, since it might cause some unstability and you might have to reset 3D Studio.

Export Objects

image:Export_objects.png

    Geometry: Export vertices/polygons of geometry objects
    Materials: Export materials as osg::StateSet objects
    Textures: Export material maps as osg::Texture objects
    Cameras: Export camera objects as osg::PositionAttitudeTransform nodes
    Lights: Export light objects as osg::LightSource nodes
    Hidden Nodes: Export hidden nodes
    Animations: Export key frame animations as osg::AnimationPath objects
    Helpers: Export OSG helper nodes
    Point Helpers: Export point helper nodes
    Particles: Export particles as osgParticle::ParticleSystem objects

Geometry State

image:Export_geometry.png

    Texture Coordinates: Export texture coordinates of geometry
    Vertex Normals: Export per-vertex normals of geometry
    Vertex Colors: Export per-vertex colors of geometry
    Use Indices: Render geometry using vertex indices
    Normalize Normals: Normalize vertex normals by enabling GL_NORMALIZE flag
    Turn off Lighting: Turn off lighting by disabling GL_LIGHTING flag

Maps

image:Export_maps.png

    Diffuse: Export diffuse maps of standard materials
    Self-Illumination: Export self-illumination maps of standard materials
    Reflection: Export reflection maps of standard materials
    Opacity: Export opacity maps of standard materials
    Specular: Export specular maps of standard materials
    Bump: Export bump maps of standard materials
    Glossiness: Export glossiness maps of standard materials
    Specular Level: Export specular level maps of standard materials
    Refraction: Export refraction maps of standard materials
    Displacement: Export displacement maps of standard materials
    Ambient: Export ambient maps of standard materials
    Filter Color: Export filter color maps of standard materials

Material State

image:Export_material.png

    Auto alpha blending for textures with alpha: Automatically enabling alpha blending on materials which contain an alpha texture. This will add an osg::BlendFunc attribute to the osg::StateSet and apply the osg::StateSet::TRANSPARENT_BIN rendering hint.
    Automatic 2-sided lighting for 2-sided materials: Applies an osg::LightModel attribute to the osg::StateSet with the two-side flag enabled.
    Set Diffuse color to white when 100% textured: Set the osg::Material diffuse color to white when a diffuse map is present.
    Set Self Illumination on baked shell materials: Disable GL_LIGHTING on shell materials
    Self-Illumination scale: When a self-illumination map is present, apply the given RGB scale to the osg::TexEnvCombine attribute
    Export Unknown Maps: Convert unknown texture maps to standard bitmaps and export them
    Export Material Description: Adds a description string to the root node describing each material in the model. The description string format is as follows:

# osgmaxexp material data
Name <MaterialName>
Map <MapTypeName> <Unit> <BlendAmount> <Filename> <UVMapping>
Normal <Unit> <Amount> <MethodName> <FlipRed> <FlipGreen> <SwapRedGreen>
Cube <Unit>

    Note: All fields are separated by a tab character, \t

        Name:
            <MaterialName> - Name of the material, which is also assigned to the name of the corresponding osg::StateSet object
        Map:
            <MapTypeName> - Name of the map type. One of the following:
                Ambient
                Diffuse
                Specular
                Glossiness
                Specular Level
                Self-Illumination
                Opacity
                Filter Color
                Bump
                Reflection
                Refraction
                Displacement
            <Unit> - The texture unit of the map in the osg::StateSet object
            <BlendAmount> - The blend amount specified in standard material
            <Filename> - The filename associated with the texture map
            <UVMapping> - The UV mapping mode. One of the following:
                UVMAP_EXPLICIT
                UVMAP_SPHERE_ENV
                UVMAP_CYL_ENV
                UVMAP_SHRINK_ENV
                UVMAP_SCREEN_ENV
        Normal
            <Unit> - The texture unit of the normal map in the osg::StateSet object
            <Amount> - The bump amount
            <MethodName> - The normal map method: One of the following:
                Tangent
                Local XYZ
                Screen
                World
            <FlipRed> - 0 or 1 indicating whether the red channel is flipped
            <FlipGreen> - 0 or 1 indicating whether the green channel is flipped
            <SwapRedGreen> - 0 or 1 indicating whether the red and green channels are swapped
        Cube
            <Unit> - The texture unit of the cube map in the osg::StateSet object

Texture State

image:Export_texture.png

    Use Original Texture Files: This option can be used to let the exported file reference the original textures used in the model instead of exporting the textures to the predetermined format. You must also disable the Save Texture Images option.
    Allow non-power-of-two: Allow OSG to load non-power-of-two sized images
    Free image memory after load: Tells OSG to release the image data after uploading it to the GPU. This will help reduce memory usage of your application. However, if you need to access the image data during runtime, then disable this option.
    Preserve DDS image contents: If the original texture file is a DDS image, then preserve the entire contents of the image when exporting. This allows exporting images with custom mipmaps or non-standard pixel formats.
    Texture format: The file format to use when writing out textures. If jpg format is used and the texture contains alpha, then the png format will be used instead.
    Texture compression: The texture compression format to use. Enabling texture compression can save GPU memory. However, the compression is lossy, so it will introduce some compression artifacts. When compression is enabled and images are being embedded within binary files, the exporter will pre-compress the image and save the compressed data within the file. This will reduce the exported file size and speed up load time of the texture.
    Anisotropic Filtering: The anisotropic filtering level to apply to textures. Anisotropic filtering enhances the quality of textures when viewed at oblique angles. Higher anisotropic levels will give better image quality, but will require more computation power.
    Texture clamp mode: The wrap mode to use for clamped textures. Can be CLAMP_TO_BORDER, CLAMP_TO_EDGE, or CLAMP.

Optimize

image:Export_optimize.png

    Tri Strip Geometry: Convert Geometry surface primitives into tri strips.
    Merge Geometry:
    Check Geometry:
    Make Fast Geometry:
    Merge Geodes: Combine geodes
    Index Mesh: Convert geometry that uses DrawArrays to DrawElements i.e., construct a real mesh. This removes duplicate vertices.
    Vertex Post Transform: Optimize the triangle order in a mesh for best use of the GPU's post-transform cache.
    Vertex Pre Transform: Optimize the use of the GPU pre-transform cache by arranging vertex attributes in the order they are used.
    Flatten Static Transform: Flatten Static Transform nodes by applying their transform to the geometry on the leaves of the scene graph, then removing the now redundant transforms. Static transformed Subgraphs that have multiple parental paths above them are not flattened.
    Share Duplicate States: Optimize State in the scene graph by removing duplicate state, replacing it with shared instances, both for StateAttributes, and whole StateSets.
    Spatialize Groups: Spatialize scene into a balanced quad/oct tree.
    Remove Redundant Nodes: Remove rendundant nodes, such as groups with one single child.
    Copy Shared Nodes: Copy any shared subgraphs, enabling flattening of static transforms.
    Static Object Detection: Optimize the setting of StateSet and Geometry objects in scene so that they have a STATIC DataVariance when they don't have any callbacks associated with them.
    Combine Adjacent LODs: Optimize the LOD groups, by combining adjacent LOD's which have complementary ranges.
    Flatten Billboards: Flatten MatrixTransform/Billboard pairs.

Miscellaneous

image:Export_misc.png

    Show Error Messages: Turn this on to get some feedback about the conversion progress.
    Use Default Node Mask: The default node mask value will be applied to all nodes for which no value is specified (for instance in a OSG NodeMask Helper).
    Convert units to: The units to convert the model to before saving, or No Conversion to use the units specified in Max.
    Export animations over individual time range: When enabled, animation paths will be exported over their individual time ranges, instead of the overall time range of the model. This allows exporting animations with different durations.

Using the OSG Helpers

The OSG Exporter comes with 11 Helper objects:
image:helpers.png

    Billboard
    DOF Transform
    Sequence
    Switch
    Occluder
    Group
    StateSet
    LOD
    NodeMask
    Imposter
    Visibility Group

No comments:

Post a Comment