Asset Guidelines
This page is legacy content (RapidCompact) and might be outdated soon. Please refer to our new RapidPipeline Asset Guidelines for most up to date content - Coming Soon.
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: 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:
3D Data Types & Formats
Supported 3D formats:
Format | Input (Upload) | Output (Download) |
---|---|---|
GLTF/GLB .gltf .glb | yes | yes |
VRM .vrm | yes | yes (.vrm input data required) |
USDZ .usdz | yes | yes |
USD/USDA/USDC .usd .usda .usdc | yes | yes |
FBX .fbx .FBX** | yes | yes |
OBJ .obj | yes | yes |
PLY .ply | yes | yes |
STL .stl | yes | yes |
STEP .stp .step* | yes | no |
IGES .igs .iges* | yes | no |
3D Studio Max .max | DCC Importer | DCC Importer |
* 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):
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.
Supported 3D Features
Feature | Input (Upload) | Output (Download) | Preserved during Optimization? |
---|---|---|---|
Rigid Animation | limited*** | limited*** | yes |
Skinned Animation | limited*** | limited*** | yes |
Morph Targets (Blend Shapes) | limited** | limited** | limited** |
Scene Lights | limited* | limited* | limited* |
Cameras | limited**** | 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 format | Input | Output |
---|---|---|
.fbx | yes | no |
.gltf / .glb | yes | yes |
.usd | no | yes |
glTF extensions (for material extension please see the section below)
Extension | Support |
---|---|
KHR_draco_mesh_compression | yes |
KHR__lights_punctual | yes |
KHR_mesh_quantization | limited* |
KHR_texture_basisu | yes |
KHR_texture_transform | yes |
KHR_xmp_json_ld | no |
EXT_texture_webp | yes |
Other EXT or vendor specific extensions | no |
* 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)
- UsdGeomMesh
- 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).
- Textures: UVTextures from files
Limited support for:
- Node instancing
- Animation
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 | DCC Importer | no |
Materials using render-specific shading nodes (eg. V-Ray) | DCC Importer | 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 | Origin Software/Entity | Supported Format |
---|---|---|---|
glTF PBR | yes | glTF/Khronos Group | .glTF/.glb |
USD Preview Surface | yes | Pixar | .usd, .usda, .usdc, .usdz |
Adobe Standard Material | yes | Adobe | .usd, .usda, .usdc, .usdz |
Physical Material | yes | Autodesk 3ds Max | .fbx |
PBR Material (Metal/Rough) | yes | Autodesk 3ds Max | .fbx |
Standard Material | limited | Autodesk 3ds Max | .fbx |
Stingray PBS (Autodesk Maya) | yes | Autodesk Maya | .fbx |
VRay | DCC Importer | Chaos Group | .max |
Corona | no | Chaos Group | N/A |
Arnold | no | Autodesk | N/A |
Principled BSDF (Blender) | limited | .fbx |
glTF Material Extensions
Material Extension | Support |
---|---|
KHR_materials_unlit | yes |
KHR_materials_clearcoat | yes |
KHR_materials_sheen | yes |
KHR_materials_specular | yes |
KHR_materials_transmission | yes |
KHR_materials_volume | yes |
KHR_materials_ior | yes |
KHR_materials_iridescence | yes |
KHR_materials_emission_strength | no |
KHR_materials_anisotropy | no |
KHR_materials_variants | no |
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_specularNo 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_transmissionIn 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_dispersionNeeds 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 conversionNot 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:
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 |
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)
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 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:
- 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.
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