Feature Representation

In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format adds the format-specific attributes described in this topic.

3ds features consist of geometry and attributes. The attribute names are defined in the DEF line and there is a value for each attribute in each 3ds feature.

In addition, each 3ds feature contains several special attributes to hold the type of the geometric entity and its display parameters. All 3ds features contain a 3ds_type attribute, which identifies the geometric type. Depending on the geometric type, the feature contains additional attributes specific to the geometric type. These are described in subsequent sections.

Geometries with no Z coordinates (2D geometries) will be assigned 0 as their z values.

The following format-specific attributes are applicable to all geometry types, and these attributes do not appear as user attributes in the output data:

Attribute Name Contents
3ds_mesh_name This is an optional attribute that contains the name of the mesh read from the 3ds file. The name must not contain more than 8 characters.

These attributes may be set on the feature or on the geometry of the feature at any level.

If some of the attributes are not set on a certain geometry, they will take the values set the geometry’s container. If the values are not found, they will take the values set on the feature. If the values are not found at the feature level, they will assume default values.

If a certain geometry and its container has different values for the same attribute, the value on the geometry, not its container, will be used.

Mesh

3ds_type: 3ds_mesh

Meshes are composed of triangular faces. If the input mesh contains faces with more than three distinct vertices, then the face will be converted into multiple triangular faces. The triangular faces of a mesh need not be connected.

Polygons and donuts are treated as meshes. They will be converted into triangular faces that represents the inner area of the polygon or donut.

The name of a mesh read by the reader will be stored in (3ds_mesh_name)as a string. The name of a mesh produced by the writer is a unique number.

Material and Appearance

If the feature being read does not contain a valid 3ds material reference, the appearance on the individual face in the mesh will be set to FME’s default appearance. Any raster referenced as a texture in the 3ds file will be read by FME, as long as the source format is supported by FME.

If the feature being written does not contain a valid appearance reference, the default material will be assigned to the corresponding faces. If the feature contains a valid appearance reference, it will be written as faces referenced to a corresponding 3ds material.

A two-sided surface with matching appearance references will be written out as two-sided faces sharing one material in 3ds. Due to a limitation within 3ds, a two-sided surface with different appearance references will be written out as two one-sided faces with different materials.

If the incoming feature contains deprecated attributes such as material name (3ds_material), color (3ds_ambient_color, 3ds_diffuse_color, or 3ds_specular_color), or texture image (3ds_texture_image) information, a material with these properties will be created and assigned to the mesh corresponding to the feature.

The material name in 3ds is limited to 8 characters; the writer will truncate appearance names longer than 8 characters.