Creating with Vircadia
Objects using draco compression will not be rendered in the Native Developer Client but can still be positioned by selecting them in the entity list.
For best performance:
- Use less materials by combining textures when applicable
- Combine model clusters to lower the mesh count
- Consider using instances (linked duplicates in Blender) for repeat assets placed far from each other, but keep in mind a large number of objects in a scene will burden the CPU.
- Use multiple levels of detail (LOD) to lower polygon count
When using instances and LOD together, be sure to duplicate only
LOD0 when placing throughout the scene, otherwise additional meshes will be created and stacked.
Vircadia officially supports glTF 2.0 models.
Binary (.glb): A single file making it efficient and easy for sharing, with one network request needed.
Separate (.gltf, .bin, + textures): Multiple files requiring multiple network requests, useful if several models share resources like textures.
Embedded (.gltf): One file with a Data URI payload, making it easy to edit manually, but increases file size by 20-30%. This format is not typically preferred over the Binary format.
For most puproses a
.glb file is adequate, however if you wish to re-use textures and materials in other projects and enviroments you may decide to use the second option, though this is more complicated.
Take advantage of LOD (by appending the following suffixes to your meshes' name:
_LOD0required, highest detail
LODs are a great way to lower the onscreen polygon count as objects get farther from the camera. This is done by switching to simplified models at a specified distance or size. While this does increase the filesize somewhat, this can be mitigated by using draco compression.
You can use as few LODs as you like, or none at all, but keep in mind certain properties require
LOD0 at minimum, such as
Draco Compression shrinks the size of 3D models and make them faster to share or download, without obvious visual quality loss. This can typically be enabled during the GLTF export process in your 3D editor.
In your glTF extras properties, use the properties to configure LOD settings, overriding the defaults.
Distance mode switches between objects based on their distance from the camera Size mode switches between object depending their size on screen. As a natural result larger objects will maintain their detail at a greater distance.
With billboarding an object will always face the specified direction. This is especially useful on low detail LODs to create a "cardboard cutout" that always faces the camera. This is often used on the highest numbered LOD on trees and other foliage, but is not required.
Specifies the distance at which the object is culled completely (optional).
This property must be added to
LOD0 to take effect.
It is highly recommended to make your own simplified collision meshes rather than using the fully detailed models, as this uses significant computing power. Collisions can be enable/disabled on a model via the Collision tab of the Properties panel within the Create Tools of the Native Developer Client.
Remember to "hide" your collision mesh to keep it from being rendered.
Configuring CORS on your hosting provider enables assets to be loaded into the world from URLs that are not on the same domain as the web client.
- CORS on AWS S3 - Cloud