Request by sending an email to developer@vatom.com
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 creators.
Below are some guidelines, which should be used as a template when creating new spaces. Also it is recommended to always check the health monitor.
The values below are a maximum for all objects in the Space together, not just a single model.
Triangles - 50 000 or fewer
Texture Memory - Maximum of 256 MB
Model Size - Under 10 MB
Materials - Basic shader with light data baked in
Meshes - Minimal geometry
Textures maximum of 2048x2048 in .jpg
format where possible
Textures should be a power of 2
Power of two is a set of simple criteria ensuring 2D image assets conform to regulated sizes and dimensions, which typically manifest as the width and height being divisible by 2.
A few examples of power of 2 textures are:
512x512
,1024x1024
,2048x1024
etc.
Multiple of the same models can be added into a space. Ideally, they would be spaced far enough apart that the users browser will not need to render everything at once.
Object detail can be achieved in more ways than by just adding extra complexity to a mesh.
Working in a low poly style and using shaders and textures to add detail will allow you to have more objects in the view at any given time without sacrificing performance. Below is an example of the difference that shaders can make.
Remove non-visible geometry from your mesh before importing it into the space.
Removing obscured faces in your mesh will reduce the amount of triangles in the model without having any visual compromise in the space. Be sure to close any holes in the mesh after unwanted faces are removed.
Using the "Background shader" in Blender improves performance inside the Vatom Spaces platform. This is usually the best option for models with baked image textures and simple images in the scene (e.g. planes with a texture).
Lowering the texture resolution for areas that are far away from the user will significantly improve performance. Below is an example of reducing the texture resolution for objects that are further away from the user.
The resolution for a single texture should not exceed 2048x2048
and should be an optimized JPEG image. If the image contains alpha value data, then a 24-bit PNG should be used.
Faces that require more detail should have their UV coordinates take up more space on the texture map than those that do not require as much detail.
For example: the face of a human character should have more detail than the rest of the body, so it should take up more space than any other body part. Below is an example of a human character UV map.
Collidable surfaces must be separated from meshes that do not require physics.
Not all objects in the world need to have collision applied to them. Use this feature sparingly and only where it makes sense (e.g. floors, walls, chairs etc.).
Collidable meshes should be as low poly as possible, because the more complex the model, the more calculations are required to determine collision. Having collision on a complex model can significantly reduce the performance of the space.