TABLE OF CONTENTS


  1. Introduction
  2. 3D Data Types & Formats
  3. Supported 3D Features
  4. Material Support
  5. DCC Tool Export Guidelines
    1. Autodesk 3ds Max
    2. Autodesk Maya
    3. Blender
    4. Modo
    5. CLO 3D
    6. VStitcher [Browzwear]
  6. Game Engine Import Guidelines
    1. Unreal Engine
    2. Unity 3D
  7. 3D Scan Guidelines


1. Introduction

back to top


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: Unoptimized source data , Right: Optimized with RapidCompact using Atlas Baking (rebaking) method



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

back to top

Supported 3D formats:


FormatInput (Upload)Output (Download)
GLTF/GLB .gltf .glbyesyes
VRM .vrmyesyes (.vrm input data required)
USDZ .usdzyesyes
USD/USDA/USDC .usd .usda .usdcyesyes
FBX .fbx .FBX**yesyes
OBJ .objyesyes
PLY .plyyesyes
STL .stlyesyes
STEP .stp .step*yesno
IGES .igs .iges*yesno
3D Studio Max .maxRapidPBRRapidPBR

* Currently not available in Free Plan

** Material support limitations apply, see material section below 



Supported texture formats (requires reference to or embed in 3D format):


FormatInput (with 3D Format)Output (with 3D Format)
JPEG .jpgyesyes
PNG .pngyesyes
TGA .tgayesno
KTX2 .ktxyesyes


Other supported formats:


FormatUpload (Cloud Platform)Download (Cloud Platform)
ZIP .zipyesyes


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

back to top



FeatureInput (Upload)Output (Download)Preserved during Optimization?
Rigid Animationlimited***limited***yes
Skinned Animationlimited***limited***yes
Morph Targets (Blend Shapes)limited**limited**limited**
Scene Lightslimited*limited*limited*
Cameraslimited****limited****no


* Currently the following scene light is supported (glTF only): KHR_lights_punctual

** Currently morph target support is limited to .gltf for import and export

*** Currently we do not read any animation data from USD(Z) files in the input and do not write any animation into .fbx files in the output (see table below for further information)

**** .glTF and some .fbx cameras only


Animation data is supported for the following file formats:


File formatInputOutput
.fbxyesno
.gltf / .glbyesyes
.usdnoyes



glTF extensions (for material extension please see the section below)

ExtensionSupport
KHR_draco_mesh_compression yes
KHR__lights_punctualyes
KHR_mesh_quantizationlimited*
KHR_texture_basisuyes
KHR_texture_transformyes
KHR_xmp_json_ldno
EXT_texture_webpyes
Other EXT or vendor specific extensionsno

* Import only


USD(Z) Feature Support (Status: Q1 2024)


  • Recognized file containers: usd, usda, usdc, usdz
  • Profiles: arkit, omniverse, generic
  • Stage settings:
    • metersPerUnit
    • Up axis ➝ handling of Z up
  • Nodes:
    • Trafos
    • Meshes
    • Can filter for purpose (render, proxy, guide)
  • Mesh:
    • UsdGeomMesh
      • Triangles. Can triangulate quads and polys.
      • Positions, normals, UVs
    • GeomSubsets (except if the mesh contains polygons)
  • Material:
    • Textures: UVTextures from files
      • texture trafos (UsdTransform2d)
    • PreviewSurface
      • diffuseColor, opacity
        • opacityThreshold
      • metallic, roughness
      • emissiveColor
      • normal
      • occlusion
      • clearcoat, clearcoatRoughness
      • ior
      • displacement
    • Adobe Standard Material (currently only if the input contains ASM)
    • Conversion of mesh sidedness to material sidedness (import) or the other way around (export).

limited support for

  • Node instancing
  • Animation



4. Material Support

back to top


In general RapidCompact supports the following material properties:


Material PropertyImport (Upload)Export (Download)
Material Colorsyesyes
Vertex Colorsyesno
Materials using Texture Maps (PBR)yesyes
Materials using repeating UVs & tiled Texturesyesyes
Materials using procedural nodesRapidPBRno
Materials using render-specific shading nodes (eg. V-Ray)RapidPBRno




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:



MaterialSupportOrigin Software/EntitySupported Format
glTF PBRyesglTF/Khronos Group.glTF/.glb
USD Preview SurfaceyesPixar.usd, .usda, .usdc, .usdz
Adobe Standard MaterialyesAdobe.usd, .usda, .usdc, .usdz
Physical Material yesAutodesk 3ds Max.fbx
PBR Material (Metal/Rough)yesAutodesk 3ds Max.fbx
Standard MateriallimitedAutodesk 3ds Max.fbx
Stingray PBS (Autodesk Maya)yesAutodesk Maya.fbx
VRayRapidPBRChaos Group.max
CoronanoChaos GroupN/A
ArnoldnoAutodeskN/A
Principled BSDF (Blender)limited
.fbx



glTF Material Extensions 


Material ExtensionSupport
KHR_materials_unlityes
KHR_materials_clearcoatyes
KHR_materials_sheenyes
KHR_materials_specularyes
KHR_materials_transmissionyes
KHR_materials_volumeyes
KHR_materials_ioryes
KHR_materials_iridescenceyes
KHR_materials_emission_strengthno
KHR_materials_anisotropyno
KHR_materials_variantsno




Adobe Standard Material Support (Status: Q1 2024) 


Supported ASM Property
converted glTF PBR Property
Notes
Base Color
Base Color
Roughness
Roughness
Metallic
Metallic
Opacity
Opacity
Alpha Component in glTF Base Color.
Specular Level
Specular
KHR_materials_specular
No direct conversion - current results may not be accurate
Specular Edge Color
Specular Color
Normal
Normal map
Normal Scale
Normal map scale
Combine Normal and Height
N/A
No conversion possible
Height
N/A
No conversion possible
Height Scale
N/A
No conversion possible
Height Level
N/A
No conversion possible
Anisotropy
Not yet supported
Needs KHR_materials_anisotropy
Anisotropy Angle
Not yet supported
Needs KHR_materials_anisotropy
Emission
Not yet supported
Needs KHR_materials_emissive_strength
Emission Color
Emissive
Sheen Opacity
N/A
No conversion possible
Sheen Color
Sheen Color
Needs validation on compatibility
Sheen Roughness
Sheen Roughness
Translucency
Transmission
Uses KHR_materials_transmission
In glTF, Base Color tints translucent materials. This is not the case in ASM. Translucent materials may look different. 
IOR
IOR
Uses KHR_materials_ior
Dispersion
Not yet supported
Needs KHR_materials_dispersion
Needs validation on compatibility
Absorption Color
Attenuation Color
In glTF, Attenuation Color cannot be a texture. If Absorption Color is present, it is currently ignored in the conversion
Absorption Distance
Attenuation Distance
Scattening Color
N/A
No conversion possible
Scattening Distance
N/A
No conversion possible
Scattering Distance Scale
N/A
No conversion possible
Red Shift
N/A
No conversion possible
Rayleigh Scattering
N/A
No conversion possible
Coat Opacity
Clearcoat
Coat Color
N/A
No conversion possible
Coat Roughness
Clearcoat Roughness
Coat IOR
N/A
No conversion possible
Coat Specular Level
N/A
No conversion possible
Coat Normal
Clearcoat normal map
Coat Normal Scale
Clearcoat normal map scale
Ambient Occlusion
Occlusion
Volume Thickness
Thickness (texture)
Volume Thickness Scale
Thickness (factor)
In ASM, Thickness Scale seems to apply only to the thickness texture. In glTF, Thickness factor defines a constant thickness.
Thin Walled
N/A
No conversion
Not part of the ASM Material Model 4.0


When loading ASM (and USDPreviewSurface) materials from USD, if opacity is present and different from 1.0, the material is set to Alpha Blending or Alpha Masking - if opacityThreshold > 0.0 or opacityThreshold == 0.0, respectively



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:


TextureSingle ValueMap Inputexample
basecolorKdmap_Kdmap_kd material0_albedo.jpg
normal/normnorm material0_normal.png
occlusion/occlusionocclusion material0_occlusion.jpg
metallicPmmap_Pmmap_Pm material0_metallic.jpg
roughnessPrmap_Prmap_Pr material0_roughness.jpg
emissionKemap_kemap_Ke material0_emission.jpg





5. DCC Tool Export Guidelines

back to top


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

back to top


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 5


With Unreal Engine 5, we recommend utilizing the glTF/glb formats for export from RapidCompact and import into the engine. Please find the official section in the Unreal Engine 5 Documentation here: https://docs.unrealengine.com/5.3/en-US/importing-gltf-files-into-unreal-engine/



Fixing issues with tangent computation after glTF import in Unreal Engine 5.1.1, 5.2.1 and 5.3.x:

Usually RapidCompact saves computed tangents and normal information within a glTF or glb file. However, some tools and game engine recalculate normals and tangents on import. This is usually a good idea and in general a very default operation.

However, in case of RapidCompact optimized models this can lead to artifacts similar to "UV-seam" issues, especially if a tangent boarder is running over a large surface.

In order to avoid this, during glTF import within the Static Meshes section, we recommend to not check the following settings, as seen below:


  • Recompute Normals
  • Recompute Tangents
  • Compute Weighted Normals



Unreal Engine 4 [outdated]


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:

  1. Set the map in the texture editor's compression settings to Normalmap and flip the green channel.
  2. 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:


  1. 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.
  2. Go to Window -> Developer Tools -> Merge Actors
  3. Accept (usually default settings are reasonable) and save into a new directory
  4. Delete the original assets in the scene
  5. 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

back to top


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