TABLE OF CONTENTS
- Introduction
- 3D Data Types & Formats
- Supported 3D Features
- Material Support
- DCC Tool Export Guidelines
- Autodesk 3ds Max
- Autodesk Maya
- Blender
- Modo
- CLO 3D
- VStitcher [Browzwear]
- Game Engine Import Guidelines
- Unreal Engine
- Unity 3D
- 3D Scan Guidelines
1. Introduction
As a 3D Data Optimization Solution, RapidCompact relies on clean and functional input data. This applies mostly to Materials & Shading, but also to a certain extend to Texture Mapping and Geometry data.
RapidCompact is not a only a LOD Generation tool, but instead a 3D Data Simplifier. It is capable of preserving and simplifying PBR material information in addition to simplifying meshes, node structures and input textures as well as baking material information from input such as vertex/material colors and mesh/texture data. Therefore properly set-up input data is key for a smooth optimization process.
Left: Optimized with RapidCompact using Atlas Baking (rebaking) method; Right: Unoptimized source data
Here are some good rules of thumb of verifying the integrity of your input data:
- Can the asset be loaded into DCC tools such as Blender?
- Does the rendering result look correct?
- Does it consist of polygonal data?
- Are textures and materials correctly assigned?
- Does the file contains one asset or multiple assets*? The latter should be avoided
- In case of 3D scanning. Is the pointcloud data already converted into a mesh?
- Are the mesh normals pointing in the right direction? (RapidCompact can handle outliers)
- Does the input dataset make heavy use of procedural generated materials & nodes? (see Material Support section below)
*Asset definition: Coherent dataset which is set-up for deployment or further optimization, this can be one mesh, multiple meshes or a whole scene.
We also recommend some general guidelines for creating or converting to real-time assets:
2. 3D Data Types & Formats
Supported 3D formats:
Format | Input (Upload) | Output (Download) |
GLTF/GLB .gltf .glb | yes | yes |
USDZ .usdz | yes | yes |
USD/USDA/USDC .usd .usda .usdc | yes | yes (currently only .usdc, .usda) |
FBX .fbx .FBX | yes (PBR conform materials only) | yes (3DsMax Physical Mtl only) |
OBJ .obj | yes | yes |
PLY .ply | yes | yes |
STL .stl | yes | yes |
STEP .stp .step* | yes | no |
IGES .igs .iges* | yes | no |
* Requires a RapidCompact Enterprise Plan
Supported 2D formats:
Format | Input (with 3D Format) | Output (with 3D Format) |
JPEG .jpg | yes | yes |
PNG .png | yes | yes |
TGA .tga | yes | no |
KTX2 .ktx | yes | yes |
Other supported formats:
Format | Upload (Cloud Platform) | Download (Cloud Platform) |
ZIP .zip | yes | yes |
Note: RapidCompact's ZIP importer only supports single 3D file in root folder , sub-directories containing textures are supported as long as referenced in 3D file.
3. Supported 3D Features
Feature | Input (Upload) | Output (Download) | Preserved during Optimization? |
Rigid Animation | yes | yes | yes |
Skinned Animation | yes | yes | no |
Morph Targets (Blend Shapes) | no | no | no |
Scene Lights | limited* | limited* | limited* |
Mesh Compression (draco) | yes | yes | yes |
Texture Compression (basis) | yes | yes | yes |
* Currently the following scene light is supported (glTF only): KHR_light_punctual
4. Material Support
In general RapidCompact supports the following material properties:
Material Property | Import (Upload) | Export (Download) |
Material Colors | yes | yes |
Vertex Colors | yes | no |
Materials using Texture Maps (PBR) | yes | yes |
Materials using repeating UVs & tiled Textures | yes | yes |
Materials using procedural nodes | no | no |
Materials using render-specific shading nodes (eg. V-Ray) | no | no |
RapidCompact supports PBR Material systems such as the one supported by glTF 2.0, physical material for 3D Studio Max or Stingray PBS for Maya.
This means that all glTF/glb datasets exported by any DCC tool will work flawlessly with RapidCompact (if no custom extensions are used).
However the most commonly used exchange format is FBX. In the following we listed the most commonly used shader/material systems and the most common format these are saved in as well as the RapidCompact support for those:
Material | Support | Common Format |
PBR | yes | glTF (usdz) |
Physical Material (3DsMax) | yes | fbx |
Stingray PBS | yes | fbx |
VRay | no | max, mb, ma, (fbx) |
Corona | no | max, mb, ma, (fbx) |
Arnold | no | max, mb, ma, (fbx) |
3DsMax Standard Material | limited | max, fbx |
Principled BSDF (Blender) | limited | blend, glTF/glb, fbx |
OBJ .mtl syntax
A very commonly used, yet very much aged, exchange format is obj. RapidCompact only supports loading textures with an .obj file if these are properly referenced in a .mtl file (this file will be written out by default with any .obj file from most DCCs).
As the PBR material standard is not streamlined with .obj and .mtl files, we recommend using the following syntax, in order to make RapidCompact find the respective texture files:
Texture | Single Value | Map Input | example |
basecolor | Kd | map_Kd | map_kd material0_albedo.jpg |
normal | / | norm | norm material0_normal.png |
occlusion | / | occlusion | occlusion material0_occlusion.jpg |
metallic | Pm | map_Pm | map_Pm material0_metallic.jpg |
roughness | Pr | map_Pr | map_Pr material0_roughness.jpg |
emission | Ke | map_ke | map_Ke material0_emission.jpg |
5. DCC Tool Export Guidelines
The following section introduces best practises for exporting data from various DCC tools. As the tools can be quite different in usability, use-case and functionality we will go into detail with each tool and highlight the steps for creating valid input data for further processing and optimization towards real-time content.
Autodesk 3ds Max
For the best possible outcome we recommend using the editable poly surface modifier for all 3D data. Subdivide and other modifiers operating and/or altering the meshes raw geometry data as well as render-specific modifiers (eg. VrayDisplacementMod etc.) should be merged with the editable poly if they are supported or get ignored if they are not supported.
Concerning materials there are similar roadblocks when going from offline-render-specific material systems (see section above) to real-time representations. Thus we would recommend using the 3D Studio Max Scene Converter feature:
Left: Rendering->Scene Converter; Right: Select the material/render model the scene was initially set-up with, to convert it to physical material
For exporting the data we recommend using fbx 2020 with the embed media option checked. The resulting fbx are then supported by RapidCompact.
Alternatively tools such as the Babylon glTF Exporter can be used (It's the same approach but uses glTF as export format).
Autodesk Maya
The recommended export steps for Autodesk Maya are the following:
- Stingray PBS Materials
- Export fbx 2020 with embed media option (similar to 3ds Max export settings above)
Stingray PBS Material can be found in the Hypershade Editor
Blender
As stated in “4. Material Support” Principled BSDF shader’s supported channels are:
Base Color / Metallic / Roughness / Normal / Ambient Occlusion / Emission
If exported as glb/glTF the properties of those channels will be readable in Rapid Compact.
With other supported file formats please make sure there are textures connected to and exported with the PBR supported channels.
Supported channels highlighted in green
Modo
Materials that support the PBR model in Modo are the Principled Shader, gltF Material, Unity Material & Unreal Materials.
The Modo PBR Loader can help with importing PBR textures into Modo within your texturing workflow.
Left: PBR loader can be found in Texture/PBR; Right: Materials with supported textures
CLO 3D
If the starting point of the 3D workflow is in 3D apparel software such as CLO 3D we recommend the following export settings:
- .glTF/.glb format
- Object options "Thin" and "Single Object" have to be ticked
- File settings: "Save Colorway" + "Maintain Individual Texture Image Coordinates"
Left: Navigation inside CLO 3D to glTF/GLB export; Right: Recommended GLB export settings
For further export options see the CLO 3D Export Options Documentation.
VStitcher [Browzwear]
Avatar:
do not include it
Geometry:
Include Garment outside
Scale: x1
Textures:
Baked Textures in PNG (DPI depends on needs)
UV:
Single UV for all Pieces (Square)
glTF Settings:
Alpha Mode: Blend
PBR Model: Metallic/Roughness
Advanced Settings:
Not needed
Colorways:
Select All (or select the ones you need)
6. Game Engine Import Guidelines
Often, assets optimized with RapidCompact are not directly deployed on the web or in app-less (AR) functionalities, but are also being used in Game Engines and other platforms building real-time interactive experiences.
In this section we highlight general best practises of getting the optimized data into Editors such as Unreal and Unity 3D.
Unreal Engine 4
For Unreal Engine we recommend the following import options:
- Import .glb files (advantage: PBR materials are automatically set-up, assets are matching RapidCompact Output)
- Scale factor should be 100 by default (coming from meters in glTF/glb going to centimeters in unreal)
- The flip from Y-Up to Z-Up is handeled automatically when importing gltf/glb
Unreal Engine glTF Import Options, generate Lightmap UVs is recommended
By default unreal engine imports gltf normal maps without flagging them as those leading to visual errors.
Solution:
- Set the map in the texture editor's compression settings to Normalmap and flip the green channel.
- Go into the respective materials fixing the map channel of the normal map node to "Normal" and hook up the normal map node directly into the normal slot of the material, ignore the shader network which was set-up in the first place.
Correct Material set-up for glTF normal maps as described above (subject to change depending on unreal improvements).
Left: FlightHelmet asset from glTF with wrong normals; Right: After applying the steps above
As you will realise with multi-part assets (such as unoptimized data, complex multi mesh node objects or assets with opacque vs transparent materials and nodes) these have to be combined into a single in-game "actor". In Unreal this works a bit different compared to the "prefab" system in Unity (see section below).
To merge parts of multi-part assets into a single actor use the following guidelines:
- Put the parts into the scene, zero their translations so they are in the origin of the scene. Select all parts which should be merged.
- Go to Window -> Developer Tools -> Merge Actors
- Accept (usually default settings are reasonable) and save into a new directory
- Delete the original assets in the scene
- New merged actor can be placed (settings, materials & LODs should be merged as well)
Left: Merge Actors Setting; Right: Select actors to merge
Unity 3D
Similar to the workflow with unreal we would recommend using the .glTF/.glb format for importing your assets from RapidCompact. OBJ is possible too, but forces the recreation of materials, texture import and assignments inside Unity.
Other than Unreal, Unity 3D has no official glTF support and thus relies on plugins/packages by the developer community.
There are alot of glTF importers for Unity out there.
We would recommend glTFast as we have a very positive experience with the developers and the tool itself. The following features come with this import tool:
- Runtime import
- Fast and small footprint JSON parsing
- Multi-threading via C# job system
- Editor import
- Core glTF features
- full list here
Simply install the package of your choice and start importing glTF/glb files.
7. 3D Scan Guidelines
RapidCompact is especially efficient in simplifying 3D scanned data due to the strong research background of DGG in this area. Whichever scan method or software is used, the following points should communicate some important guidelines:
- Please calculate mesh/ tesselate before exporting. No point clouds, only mesh data
- If exported in PLY format make sure the vertex colors are correctly exported
- If exported in OBJ format make sure the .mtl file is correctly exported and later part of the (zipped) upload data
- Please take the upload limit of RapidCompact (free plan 500MB) into account when exporting data