We want every space to offer a smooth and immersive user experience, but in order to achieve this, we need to establish a set of guidelines for content creators.
The guidelines below should be used as a template when creating new spaces. This will allow the space to operate on all devices without performance loss.
Recommended Scene Design Guidelines
- Triangles (overall) - 50,000 or fewer
- Texture Memory (overall) - Maximum of 256 MB
- Textures (size per texture) - 512 x 512px recommended
- All Textures and Images must be 1:1 or 2:1 and "Power of 2" sized
- ex: 64x64, 128x128, 256x256, 512x512, 1024x1024
- 3D Model Size - Under 10 MB each. Recommended 5MB or less per model.
- Materials - See glTF2.0 Materials Documentation.
- PBR Textures (Physics-Based Rendering) is best for large spaces and high performance machines. PBR textures can be UV tiled using 1K textures or below. Commonly used texture maps are:
- Base Color (Albedo)
- Roughness (if necessary)
- Metallic (if necessary)
- Normal Map
- Basic Shader with baked textures and lighting is best for detailed smaller spaces. By baking textures to a single image map, this decreases draw calls and increases performance.
- PBR Textures (Physics-Based Rendering) is best for large spaces and high performance machines. PBR textures can be UV tiled using 1K textures or below. Commonly used texture maps are:
- Meshes - Minimal geometry, join meshes to a single 'object'. glTF format auto-converts quads and n-gons to triangles.
- Collision - Create a separate, highly optimized collision layer for your scene. If your model is over 3,000 triangles, enabling collision physics can decrease performance. Use a separate, extremely low-poly model specifically for user collision.
Device-Specific Performance Limits
The following are the limits for the entire space and all objects within it. While high-powered devices can load very complicated spaces, the majority of users worldwide still enter Vatom Spaces on mobile devices.
Using the Mobile Filter you can create different assets for Desktop, Mobile, and iPhone experiences.
Quality | Low-tier | Mid-Tier | High-Tier | Apple iPhone | Apple M1 MacBook | Chromebook |
---|---|---|---|---|---|---|
Triangles (Total) | 50k | 500k | 1M | 250k | 1,000k | 50k |
Collision Triangles (Total) | 20k | 50k | 80k | 50k | 80k | 20k |
Texture Memory (Total) | 250MB | 800MB | 1.46GB | 250MB* | 1.46GB | 250MB |
* Apple iPhones are known to have critical issues if space texture memory exceeds 250MB.
Testing and Debugging
Watch and test performance as you move around your space using the Debug Menu. Vatom Spaces automatically assigns your device a default graphics quality to ensure a consistent FPS and user experience.
Customize your Graphics Quality in User Profile > Options > Graphics Quality
Press shift + ~ to open the debug menu.
White testing: Move around, look in different directions, and zoom in and out to experience the space from all angles and with the type of movements and actions expected from your guests.
Things to watch and test for:
FPS - Frames Per Second is the immediate indicator of Performance. 30fps or higher is the standard for Vatom Spaces. Anything under 20fps can disturb the experience and cause "lag" in movements and communication. FPS is tied to Graphics Quality in profile settings, and the hardware of the device being used.
Frame Timing - This is a very useful tool for determining the sum total of impact that these various criteria above are having on space performance. Important to note also that it's important to test while moving as well, as more physics/collision calls are more likely to occur while moving
WebGL Draw Calls: A maximum of ~300 "calls" should be made when looking in any direction. Draw calls are only calculated for the current viewing angle, so look around your scene to test different view angles.
- 1 mesh in a glb = draw call
- 1 material in a glb = draw call
- 1 alpha channel in a glb = draw call
Optimization
If your space is loading slowly or your frame rate is low, the following are known to cause performance issues:
1. Oversized and unoptimized images and graphics: All images must be "power-of-two" sized to reduce the need for real-time processing. Use the File > Check for Issues to find and fix non Power-of-two graphics added to your scene. This check will not find or fix textures within 3D models.
- 256 x 256px
- 512 x 512px (recommended for all textures)
- 1024 x 512px
- 1024 x 1024px
- 2048 x 1024px
- 2048 x 2048px (limited use)
- Any images and graphics larger than 2000px should be reduced in size before uploading.
2. In-World iFrames: The "Web Frame" plugin is known to slow down performance, and is not recommended for spaces with large gatherings expected. Use "pop-up" iFrames like the Open In Panel interaction.
3. Oversized Models: Many objects labeled "low-poly" on Sketchfab and other 3d asset libraries are still far too complex for use in Vatom Spaces. Please see the recommendations above for triangle count and file size, and try to find objects that are under 1,000 vertices.
4. MP4 Video Files: While MP4 videos can be added to Spaces, we recommend using Mux Video to convert longer and larger video assets to HLS format. Using large MP4 videos can cause performance drops, as each device needs to download the video in full. Using HLS streams the video, and streams it at a data-rate that works best on the user's specific device.
5. Media Player Proximity: By default, Media Source players are set to 'Everywhere'. If you have more than one or two media screens in your space, set a Proximity radius so that the screen only loads when guests are nearby.
Comments
0 comments
Please sign in to leave a comment.