Choosing a proper 3D-file (Best Practices)

Goal

The goal of this page is to advise our clients on preferred 3D file formats for Prespective, to enable high quality and efficient modeling.

Table of Contents

Description

We strongly advise you to work with the right quality of 3D files in Prespective. In this article we share some tips and best practices to help you choose the right 3D file types to work with. Taking the proper steps with your 3D data early on in the project will greatly help project management and optimization later on. You will always try to prevent to get back to this step later on. This costs you a lot of time to fix things later on.

Recommendations for cooperative projects

The following table shows recommended file formats to deliver to Unit040:

File Extension

Recommended for Unit040

Type

Tool

File Extension

Recommended for Unit040

Type

Tool

.SLDASM

1

CAD native

SolidWorks

.SLDPRT

1

CAD native

SolidWorks

.STEP AP203

3

CAD exchange

STEP

.STEP AP214

2

CAD exchange

STEP

.STEP AP242

2

CAD exchange

STEP

.GLTF / .GLB

2

CAD exchange

GLTF

.RFA

1

CAD native

Autodesk Revit

.RVT

1

CAD native

Autodesk Revit

.DWG

1

CAD native

AutoCAD 3D

.DXF

1

CAD native

AutoCAD 3D

.IPT

1

CAD native

Autodesk Inventor

.IAM

1

CAD native

Autodesk Inventor

CATIA v4&v5

1

CAD native

Catia

IGES

2

CAD exchange

IGES

.SKP

3

PLY native

Google SketchUp

.Max

1

PLY native

3DsMax

.3ds

1

PLY native

3DsMax

.FBX

2

PLY exchange

Autodesk

.OBJ

3

PLY exchange

OBJ

.DAE

2

PLY exchange

COLLADA

 

The following table describes the different file types in the Type column in above table:

Format

Type

Recommendation

Description

Format

Type

Recommendation

Description

CAD

Native/Raw

Best choice

Must be converted from NURBS to polygons before usage.

Exchange

Depending on export config

Can be okay, but can also have too much data loss.

PLY

Native/Raw

Best choice

Mostly needs to be exported as a supported file format first.

Exchange

Depending on export config

Can be used straight away if Unity supports it. No conversion needed. May be damaged depending on the way it has been exported.

Table Explanation

Note:

  • If a file is in a good condition for use it can save you a lot of work, time and money.

    This means it has a good Hierarchy, Material sets, Meshes, Polyflow and Pivots.

  • When a file needs to be repaired (e.g. because of data loss), in a bad condition it costs more work, time and money to fix everything. In some cases it can’t even be repaired.

    This means it may miss the Hierarchy, Materials, needs to be cut up, Pivots need to be fixed. Polyflow can't be changed and always would look ugly.

Before you decide to use the model. Check it for usability!

To check the CAD file for usability see : Best Practices Cad File Workflow

3D-file Formats

3D-files can come in many different formats- and compressions. When speaking of a proper 3D-file to use in a project it contain a lot more than only a 3D-file. We want to be in control and have a fully functional 3D-file. A 3D-file you want to use has always been created in another program. There are two main types of 3D file formats:

  • PLY file format : A model build up by Polygons. Often used in the gaming industry.

  • CAD file format : A model build up with Nurbs. Often used in the construction industry.

Unity can only handle a certain PLY file formats straight away. Check here which file formats are supported. CAD files can't be used straight away in Unity. and need to be converted with Pixyz first.

To import CAD-files into Unity. We strongly recommend using Pixyz. Pixyz is a third-party plugin supported by Unity3D. You can download Pixyz from the Unity Asset Store, or via their website. When discussing CAD-Files in this article, we are using Pixyz to import them. Pixyz can import several file formats. Here is a List of supported file formats.


Understanding the PLY file formats

A PLY-file you want to use has always been created in another program. For game engines it's recommended to use PLY exchange file formats, since they don't need to be converted (all game engines use polygon instead of Nurb models). There are two different types of PLY file formats:

  • Native file format : The storage format used by the program in which the 3D data was created.

  • Exchange file format : 3D-Files have been exported from a program into a file format meant for data exchange.

Native file formats

3DsMax for example is a raw file format and will be saved as: .Max and .3ds. These files cannot always be used straight away in gaming engines. However there is no data loss and there was no point of decision to compress or flat out the file due to saving the file. The properties of these file formats are:

  • Bigger file size

  • Cannot always be used straight away into Unity

  • Untouched relations to other objects

  • Fully structured hierarchy when made

  • All parts can have different materials

  • All parts can be individually moved & rotated

  • Smooth meshes

  • Free to edit and export in a good way if you master the program.

Exchange file formats

These files are .FBX .OBJ .DAE for example. It's possible to use these directly in game engines such as Unity. Creating an exchange file means there was a point of decision how to save or compress the file. While saving and compressing in a proper way this is the best way for a clean and optimized file. Here can be chosen to keep the file as raw as possible or compress the file (means there is data loss). This compression can reduce the file size and can affect the 3D-Model in a good or a bad way to use later on. Depending on export settings the properties of these files may be:

  • Smaller file size

  • Optimized for usage in game engines

  • Collapsed parts into one object

  • Destroyed relations with other objects

  • Merged hierarchy into one equal set of models

  • Missing materials and textures

  • Merged materials into one material used for everything

  • Faces can have back face culling

  • Missing animations

  • Damaged smoothing groups


Understanding the CAD file formats

A CAD-file you want to use has always been created in an other program. There are two different types of CAD file formats:

  • Native file format : The storage format used by the program in which the 3D-CAD data was created.

  • Exchange file format : 3D-Files have been exported from a program into a file format meant for data exchange.

Native file formats

SolidWorks for example is a raw file format and will be saved as: .SLDASM and .SLDPRT. This is the most safe solution because there is no data loss and there was no point of decision to compress or flat out the file due to saving the file. The properties of these file formats are:

  • Bigger file size

  • File contains Nurbs

  • Untouched relations to other objects

  • Fully structured hierarchy when made

  • All parts can have different materials

  • All parts can be individually moved & rotated

  • Smooth meshes

Exchange file formats

These files are .STP .STEP for example. Creating an exchange file means there was point of decision how to save or compress the file. At this point you can chose to keep the file as raw as possible or compress the file (means there is data loss). This compression can reduce the file size and can affect the 3D-Model. Depending on export settings the properties of these files may be:

  • Smaller file size

  • Converted Nurbs to Polygons. (when working with CAD files)

  • Destroyed relations with other objects

  • Merged hierarchy into one equal set of models

  • Condensed materials into one material used for everything

  • All the parts are welded into one object

  • All faces are separate objects

  • Crunched meshes (no choice for optimizing poly flow)

 

To check your CAD file format for usage in Unity with Prespective you can use this document to validate the file: Best Practices Cad File Workflow

Scoping the difference between Native and Exchange files

Note: This is mostly happening when speaking about CAD files.

When speaking about PLY files it's almost never this bad. They can only turn out with missing materials, condensed materials, missing textures and removed smoothing groups (worst case).

In the comparing images below you can see the results between a converted Native and Exchange file format into polygons for unity.

Native in its best case:

  • Nurbs are converted to polygons with edge detection. (Not crunched or open spaces on edges).

  • Every object is a separated mesh and not a combined mesh. (The Rim, Valve and Tire).

  • Faces form one object are not detached into multiple meshes. (Polys are welded together).

  • Materials are not flattened. (each object can handle its own material set).

  • Correct polyflow. (Edges are looping around the object and do not create Ngons).

  • Correct smoothing groups.

 

Exchange in the worst case:

  • Crunched objects with open spaces.

  • The Rim mesh has been combined with other parts like the Tire.

  • Faces from the front of the rim are detatched from the back of the Rim.

  • Materials are condensed, so the object can only use 1 material.

  • Due to the crunching and open spaces there is no correct polyflow.

  • Smoothing groups are broken and create sharp edges due to the openings.

  • No consistent roundings.