3D Model Creation Technical Standards
This document provides detailed guidelines and requirements for technical standards related to 3D models, materials, textures, and animations to ensure smooth performance and maximum compatibility across the Xense AR ecosystem.
I. OVERVIEW
Standardization Objectives
AR experiences on mobile devices require real-time rendering in environments with limited hardware resources and rapid heat generation. Standardizing 3D assets helps to:
- Optimize data loading speed over the network (Network Latency).
- Maintain a stable frame rate of 30–60 FPS, avoiding stuttering and lag during AR interactions.
- Ensure consistency in scale, coordinates, and lighting within the virtual environment.
II. FILE FORMATS & FILE SIZE REQUIREMENTS
1. Supported File Formats
| Resource Type | Supported Formats | Recommended |
|---|---|---|
| Model File | .GLB, .OBJ, .FBX | .GLB |
| Textures | .PNG, .JPG, .JPEG | .PNG / .JPG |
2. Memory Size Limits
| Scope | Maximum Limit | Recommended | Optimization Goal |
|---|---|---|---|
| Single Model | ≤ 5 MB | ≤ 3 MB | Ensure near-instant loading when spawning the object. |
| Entire Scene | ≤ 20 MB | ≤ 10 MB | Keep RAM usage within safe limits, including on lower-end devices. |
Texture Size Optimization:
Textures typically account for 60%–80% of the total 3D file size. Optimizing texture dimensions and removing unused channels is one of the fastest and most effective ways to reduce file size.
Note: The term Scene refers to the entire spatial area and all objects rendered simultaneously on the device screen at a given time.
III. POLYGON TOPOLOGY & GEOMETRY SPECIFICATIONS
1. Node and Triangle Limits
| Technical Parameter | Maximum Limit | Ideal Recommendation |
|---|---|---|
| Number of Nodes (Hierarchy) | ||
| Per Model | ≤ 20 nodes | ≤ 5 nodes |
| Entire Scene | ≤ 200 nodes | ≤ 10 nodes |
| Number of Triangles | ||
| Per Model | ≤ 50,000 tris | 4,000–15,000 tris |
| Entire Scene | ≤ 300,000 tris | ≤ 100,000 tris |
2. Polygon Budget Reference
To allocate resources efficiently, 3D designers should use the following polygon budgets as a reference for different object categories:
| Model Category | Vertices | Triangles | Intended Use |
|---|---|---|---|
| Low-detail character | 2,000–10,000 | 4,000–20,000 | Supporting characters, crowds, or distant NPCs |
| High-detail character | 10,000–20,000 | 20,000–40,000 | Hero characters with close-range interaction |
| Simple prop | 500–1,500 | 1,000–3,000 | Small objects such as books, individual chairs, cups, and boxes |
| Complex prop | 1,500–5,000 | 3,000–10,000 | Complex mechanical objects such as vehicles, machinery, and weapons |
| Basic environment | 5,000–15,000 | 10,000–30,000 | Small rooms or simple booth environments |
| Detailed environment | 15,000–30,000 | 30,000–60,000 | Large architectural spaces or outdoor environments |
3. General Model Requirements
-
Naming Convention:
- Use only English letters without diacritics (
a-z,A-Z), numbers (0-9), and underscores (_). - Prohibited: Spaces, Vietnamese characters with diacritics, and special characters such as
@,#,$,%,&,*.
- Use only English letters without diacritics (
-
Pivot Alignment:
- The Pivot must be positioned precisely at the bottom of the model for characters/objects placed on the ground, or at the geometric center for floating/hanging objects.
- The Pivot coordinates must be precisely at the world origin
(0, 0, 0)before exporting the file.
-
Mesh Topology:
- Prioritize using quad faces (Quads) during modeling and convert them to triangles (Triangles) when exporting the file for the engine.
- Do not leave polygons with more than four sides (N-gons), as they may cause surface deformation during rendering.
-
Transform Setup:
-
Perform Freeze Transformations / Reset XForm in the 3D software before exporting:
- Scale:
(1, 1, 1) - Rotation:
(0, 0, 0) - Position:
(0, 0, 0)
- Scale:
-
-
Real-World Scale:
- Use Meters as the unit of measurement, following Unity and WebXR standards.
- Model dimensions should correspond to real-world dimensions.
- For example: a water bottle is approximately
0.25 mtall, while a person is approximately1.7 mtall.
IV. UV MAPPING STANDARDS
To ensure accurate 3D model rendering and optimal performance in Unity-based AR applications on AR glasses, all models must meet the following UV Mapping requirements:
Requirements
- Each mesh must have UV Channel 0 (UV0) for mapping textures (Base Color, Metallic, Roughness, Normal Map, etc.). Models without UV0 will not be accepted.
- All UVs must remain within the 0–1 coordinate range. UDIM and UV tiles outside this range are not supported.
- UV Islands must not overlap, except when intentional Mirror UV usage is applied without affecting visual quality.
- UVs must be properly unwrapped to minimize UV Stretch and maintain consistent Texel Density across the model, preventing blurry or inconsistent texture quality.
- UV Islands must have sufficient Padding to prevent Texture Bleeding when using Mipmaps.
- Avoid splitting UVs into excessive numbers of islands or creating unnecessary seams to optimize texture quality and reduce rendering issues.
- Flipped UVs must not occur on models using Normal Maps.
- When using a Normal Map, the model must be exported with complete Normal and Tangent data.
- Texture Atlas is recommended so that multiple objects can share the same Material, reducing the number of Draw Calls and improving performance.
- UV Channel 1 (UV1) is only required for models using Baked Lighting / Lightmaps. For AR applications using Realtime Lighting, UV1 is not required.
Recommended Padding
| Texture Resolution | Minimum Padding |
|---|---|
512 × 512 | ≥ 4 px |
1024 × 1024 | ≥ 8 px |
2048 × 2048 | ≥ 16 px |
Acceptance Criteria
A model is considered compliant when it meets all of the following criteria:
- Contains valid UV0.
- UVs are entirely within the 0–1 range.
- No UV Overlap, except for permitted cases.
- No UV Stretch or Flipped UV.
- Consistent Texel Density across the entire model.
- UV Island Padding meets the requirements for the texture resolution.
- Complete Normal and Tangent data is exported when using Normal Maps.
- Meets Unity performance optimization requirements for AR applications on AR glasses.
V. MATERIAL & TEXTURE STANDARDS
| Type | Maximum | Recommended |
|---|---|---|
| Number of Materials | ≤ 10 | ≤ 5 |
| Number of Textures | ≤ 10 | ≤ 5 |
| Resolution | ≤ 2048 × 2048 | Power of 2 |
Technical Requirements
-
Shader: Use the default URP (Unity Universal Render Pipeline) shader set.
-
Texture: Do not embed textures in FBX files. Keep textures as separate files for import into Unity.
-
PBR Materials:
- Metallic-Roughness.
- Specular-Glossiness.
-
Unlit Materials: Supported when necessary.
VI. ANIMATION STANDARDS
1. Bone and Animation Limits
| Parameter | Maximum Limit | Recommended | Notes |
|---|---|---|---|
| Bone Count / Joint Count | ≤ 80 bones | ≤ 60 bones | Applies to the entire skeleton of a single model. |
| Number of Animation Clips | ≤ 10 clips | ≤ 5 clips | Export only the clips actually required by the experience. |
| Bone Influence | ≤ 4 bones | ≤ 4 bones | Each vertex may be influenced by a maximum of 4 bones (skinning weights). |
2. Technical Requirements for Animation Export
- Frame Rate: Standardize at 30 FPS.
- Start Frame: Animations must start at Frame 0.
- Motion Coordinate System: All motion must use Relative Transform relative to the model’s root node. Do not use absolute positions in World Space.
- Looping: Continuous animations such as idle, walking, and rotation must have smoothly matched start and end frames (seamless loop).