⚙️ Content & 3D Model Support
Last updated
Last updated
Why aren't characters landing on the ground in the created space?
To accommodate different user scenarios, Shareverse calculates the initial landing point for characters by creating a cube that completely encloses the model based on its maximum and minimum coordinates. The center point of this cube corresponds to the center point of the uploaded model, which serves as the initial landing point for characters. Therefore, when creating a model, users need to elevate the center point of the model above the model's surface so that characters can descend onto the model during initialization.
If the scene is too dispersed, it is recommended to add a transparent ground and place the main structures in the center, aligning the transparent ground with the model's surface.
How can I adjust the frame size of NFTs in the scene?
Click on the NFT editing page to access the "Edit Size" function.
How can I view and adjust the card display effect for NFTs outside of them?
The system resizes NFTs according to the original proportions and uses the cropped image as the final NFT size.
Size & time conditions when creating NFTs
To maintain image quality, it is recommended to minimize the size of uploaded images. For example, creating a 100MB NFT may require a minimum waiting time of two minutes. During uploading, simultaneous clicking of "Create NFT" and other asynchronous operations may result in image loss.
Why can't I see delisted NFTs in the list?
The on-chain interaction process takes some time, and once an NFT is on the blockchain, it cannot be deleted.
Additionally, we provide an HDR reference for your convenience in comparing before the final upload.
After upload, the brightness of the HDR cannot be changed.
There are 2 ways to get your content into Shareverse:
Publishing a space from the Home page, uploading directly to Shareverse.
Go to IMart, click the "Create" button, and choose “Create Collection/Item”.
3D Files - texture size
2048x2048
1024x1024
FBX
100 MB
50 MB
GLTF
100 MB
50 MB
GLB
100 MB
50 MB
Images
JPG
10 MB
PNG
10 MB
GIF
10 MB
SVG
10 MB
JPEG
10 MB
Videos
MP4
50 MB
MOV
50 MB
Music
MP3
100MB
Shareverse supports a wide array of file formats (see table below for more info):
3D: GLB, GlTF, FBX
Images: PNG, JPG, GIF, SVG, JPEG
Videos: MP4, MOV
Music: MP3
Shareverse 3D Model Preparation Guide
Target file metrics
Textures:
Recommended: 1024px x 1024px, and a maximum of 8 textures per file.Maximum: 1024px x 1024 px, up to 16 textures OR 2048px x 2048px, max of 4 textures per file.
Object Count:
Recommended:
For environment object: Less than 10
For single object: Less than 3
Maximum:
For environment object: 20
For single object: 5
Vertex Count:
Recommended:
For environment object: Less than 100k
For single object: Less than 30k
Maximum:
For environment object: 300k
For single object: 50k
Triangles:
Recommended:
For environment object: Less than 80k
For single object: Less than 30k
Shaders:
Recommended:
UnlitSupported: Unlit, Metallic/Roughness, and Specular/Glossiness PBR
Shadows:
We recommend baking lighting into textures for a more impressive mode.
Tips:
Minimize the internal useless overlapping surface. Leaves, hair, grass, and other models are handled differently by different modeling software that the engine cannot support them. Hair types need to be made using trans-paste. Some special effects try to use baking, Cycles mode is recommended.
Avatars: FBX Model, Less than 5M、default Tpose、binding bones、action model contains only bone action.
Landing on the center point: In order to adapt the scene to all users and to improve the user experience, Shareverse calculates the initial landing point of the character by taking the maximum and minimum coordinates of the model and calculating a square that will fit the model completely, at which point the center of the square is the center of the currently uploaded model, i.e. the initial landing point of the character. Therefore, when creating the model, you need to move the center point of the model up to the top of the model so that the character can fall onto the model during initialization
3D Models: Adding Special Textures, Colliders, and Seating Hotspots
Overview
Understanding Shareverse's Texture + Shader Support
We support glTF integration for models. Models can contain PBR-based material properties such as metallic, roughness, normal, and emission.
You can use normal, metallic, roughness, and emission maps.
We are supporting unlit shader so if you have unlit material in your model file, it will use unlit shader so you can optimize your model and environment.
We don’t support real-time lighting; all lighting must be baked into the environment.
Shareverse does not support animated textures such as moving water, but you can replicate transparent textures using the following settings.
Different Material Settings Examples
In Blender
Set the following settings in Blender to achieve water, mirror, or glass textures:
Metallic: 1
Roughness: almost 0
Blend mode: Alpha-blend
Alpha: 0-0.5
In Cinema 4D
For Objects in Cinema, after you’ve baked lighting, make sure to bake to luminance, and apply the texture to “Color” as well. Here's how it'll look in the Material Editor.
Different Material Settings Examples: Cinema 4D
In Autodesk Maya
For users using Maya, we recommend exporting the file from Maya and reimporting it to Blender, then changing the material setting to ‘Background.’
Useful documentation: https://doc.babylonjs.com/extensions/Exporters/Maya_to_glTF
Adding a Glow Effect: Blender
Above is an example of a glow emission effect. Keep in mind, we don't support real-time lighting, so all lighting must be baked into the surrounding environment or the model's wall textures.
For a glow effect, you should:
Use unlit shader
Bake a glow effect into the wall's texture around the object.
Check out the below examples of what this looks like in Blender and baked into a glTF file.
How to add Teleport Hotspots
Take a seat, any seat. Follow these steps to turn any 3D model into a seating hotspot by using Blender.
Tutorial:
Open your model in Blender.
In Object Mode, select Add > Empty> Sphere. Center the sphere on your model where you’d like to place a hotspot.
Under Transform, set the X, Y, and Z scales of the sphere to an equal value. For this example, we’re setting each value to 35.
Create an empty object and rename it "RootNode".
Next, create another empty object, and rename it select "3DSMeshMatrix"
Place and select 3DSMeshMatrix under RootNode.
Right-click your model and Set Parent To “Object”
Rename your object. In this example, we’ve named it "chair -hotspot".
Note: Your sphere node should have the suffix hotspot, which ensures the hotspot is attached to the glb model in Spatial.
Note: The hotspot should point in Y-negative when using blender for a forward teleportation result.
If you notice your teleportation direction is backward, just rotate the node 180 degrees.
Click the down arrow on 3DSMeshMatrix and select the named object.
Click File, Export, and Export as a glTF file.
Note: Make sure to export the file as Local instead of Global. See below.
Environment boundaries
How are bounding boxes for environments determined in Shareverse?
We generate it in runtime, and it's based on meshes boundary.
If the user wants to widen the navigable area in a custom environment, one hack is to add a tiny small box outside of the environment, so that Shareverse will include it in the room boundary.
How to add Colliders
You can add Colliders to your custom environment in Blender by using the following techniques.
In Blender, add a mesh and make it invisible in the Material setting.
Attached here is a GLB file you can refer to with the proper visual settings.
Attached here is a Blender file you can refer to with the proper settings.
Optimizing 3D Models
Decimation (reducing polygons)
Decimating a model means reducing its size by reducing the number of polygons in its mesh. This makes the 3D model file size smaller as well as reduces the amount of work that your GPU needs to do to render the model, improving performance.
How to Decimate a 3D Model
Method 1: gltfpack (meshoptimizer)
Download the open-source program gltfpack
Run it on the command line like so:
The number after -si is how much it tries to reduce it by (i.e. 0.2 = 20% of the original, i.e. an 80% reduction). Try a few different values and evaluate the resulting models.
This method is usually the fastest and most automated way to decimate a model but does not give you a lot of control over the results.
Method 2: Blender
In Blender:
Open your GLB in Blender (delete the default cube first)
Click through the model hierarchy on the right till you see a green mesh icon, select the "parent" (one above the green), go to object mode & select all, CTRL J (while mouse in the 3d View) to join all the bits
Below the green icon push CTRL B to select the rest of the hierarchy and click Delete hierarchy
Then Go to Edit mode > Mesh > Merge by distance - the larger the distance the smaller you are making the model but watch out for distortion
Zoom in on detailed areas and merge there to simplify further
Export as GLB
(Blender is a free 3D computer graphics software)
Removing unnecessary objects or vertices manually is another good way of reducing polygons.
Reduce object count
This is the most important for performance.
Import your model in Blender.
Press F3 and type ‘select linked material’ and click. (Keyboard shortcut is Shift+L)
Objects that have the same material are selected.
Press F3 and type ‘join’ and click. (Keyboard shortcut is Control+J)
Repeat 2~4 until the objects are merged by material.
Reduce vertex count
This is important to reduce file size and improve performance.
Select an object that you want to reduce vertex count.
Merge vertices. (This could cause smoothen edges)2-1. Go to ‘Edit Mode’ by pressing the ‘tab’ key. (Or click the ‘Object Mode’ box on the left-top)2-2. Press ‘1’ to vertex mode and ‘A’ to select all vertices.2-3. Press F3 and type ‘merge by distance’ and click. (Keyboard shortcut is M and select ‘By Distance’)2-3. Press ‘tab’ again to go back to the ‘Object Mode’.
Reduce vertex count using Decimate Modifier.3-1. Go to ‘Modifier Property’ on the right menu.3-2. Click ‘Add Modifier’ and select ‘Decimate’.3-3. Change the ‘Ratio’ number to 0.5.3-4. Hover your mouse cursor on the modifier and press ‘Ctrl+A’ to apply it.
Repeat 1~3 until you reduce the vertices of all objects.
Method 1: gltf-transform (command line)
Download the open-source program gltf-transform.
Reduce the size of the textures by running:
Method 2: Manual resizing
First use Photoshop or gimp, to reduce your file size.
Go into textures - reduce the size of the images one by one (don't go too small)
After you scale down, override for each image.
If you can use Blender, save textures .jpg instead of png, tiff or tga to reduce the size and replace textures.
Use GLtf to GLB Packer https://glb-packer.glitch.me/ - which compresses all the things into one file
Supplemental information to expand your Shareverse knowledge.
When you first join a space, if necessary, Shareverse will load the environment model and skybox at a lower resolution initially until you fully load the space. Then the model and skybox will appear in its full resolution. This often happens very fast at the beginning when you join a space. You would only see lower resolution for the first few seconds of joining a space. This tradeoff helps people join your space faster.