APIDOCUMENTATION
GENERAL
Home
Testing Link
Vatom CLI
SPACES
Overview
Release notes

World Creation

Introduction
Creating Models
Importing Objects
Adjusting Looks
Scene Limitations
Health Monitor
Recommended external tools

Using Plugins

Media: Audio
Places
PLUGINS IN SPACES
Overview
Publishing
Support & Feedback

Guides

Creating a Plugin
Creating a Component
Custom Avatars

Building & Publishing

Examples

API Reference

Globals
Audio
Hooks
Menus
Messages
Objects
Paths
User
World
SMART NFT DESIGNS
Overview

Designs

Create a New NFT Design

Views

Create a New View
Developing Your View
Publishing a View
Change LogForum

Creating Models

We recommend the following software because it allows creators to build models and create textures that can be used directly inside the Vatom Spaces platform:

  • Blender v2.93 for 3D modelling and animation because it will be officially supported until 2023.
  • Adobe Photoshop CC (or Photopea as a free alternative) for creating and optimizing texture files.

Starting a new Blender project

When starting a new project in Blender, it is recommended to delete all objects from the scene (cube, camera and any lights).

Be careful not to adjust your meshes transform values (rotation, scale, etc) in "Object" mode, as this could lead to unexpected results when importing into the Vatom Spaces platform. Always adjust your meshes in "Edit" mode.

Optimization

Below are a few things to keep in mind when making models and textures:

  • Keep the poly count as low as possible and make sure to stick to quadrilaterals and triangles for the model faces
  • Not all meshes need high resolution textures applied to them, when a basic color will do
  • Use high resolution textures for areas that you know the user will be focusing on, and not for background or filler objects
  • A basic 8x8 color palette can be used for a lot of the texture work and goes a very long way in keeping the file sizes low
  • Using an 8x8 palette allows you to have the same material assigned to multiple objects in the scene. Make sure to adjust the UV positions to match the color you are looking for

An example of an 8x8 color palette can be seen below:

color-palette

UV Unwrapping

Unwrapping the mesh allows Blender to assign a 2D texture to an otherwise 3D object. It flattens out the faces and makes it easier to achieve the desired texturing results.

image

Image textures in Blender are usually in a 1:1 ratio (e.g: 1024x1024), but using power-of-2 for texture maps is also fine (e.g: 1024x512 or 4096x1024 etc).

Note: It is advised to stay away from image maps of dimensions that are not 1:1 or power-of-2, as they will negatively affect performance.

General guidelines for texture sizes:

  • Large objects that need high quality textures (e.g: floors, walls, roof, landscapes etc.): 4096x4096 for desktop and 2048x2048 for mobile
  • Medium sized objects that need to appear in decent quality when being viewed

as a part of the environment (e.g: furniture etc): 1024x1024 for desktop and mobile

  • Small objects: Recommended to use colors from the 8x8 color

palette seen here, but if an image texture is required, then use 512x512 for both desktop and mobile

  • Faces that require more detail should take up more space in the UV map than faces of a single color.

To unwrap an object in Blender go into Edit mode, select the faces you want to unwrap and then click UV > unwrap in the menu bar (or use shortcut U).

Lighting

Once you are happy with the scene and objects you have created, you can move onto baking in the light and shadow data for the scene. Doing this will give the scene a realistic look inside the Vatom Spaces platform, while avoiding heavy rendering tasks such as real-time lighting and shadows.

To achieve a good result inside Blender, we recommended using the "Cycles" renderer to handle the material baking. Cycles baking options can be found under the "Render Properties" panel.

image

It is advised to create a new image map for each object you will be baking and only bake in the light and shadow data where it will enhance the scene. This is usually just the floor and walls. Small objects in the scene usually do not need baking.

Once the material has been baked, it can be taken into your image editor of choice and should be color adjusted to your preference. When you are happy with the color of the material, it should be exported as a .jpeg file. This material file can then be assigned to the mesh in Blender and will then contain all of the light and shadow data.

Baked materials should be applied as a "basic" shader inside Blender, which can be done by setting the shader node in the Shader Editor to "Background" and connecting the image texture node to it. Doing this should show the most accurate result when imported into the Vatom Spaces platform.

image

Mesh Normals

When creating a large interior space with walls and a ceiling, it is recommended to setup the face normals in such a way that you will be able to see through them when viewed from outside the mesh.

An example can be seen below:

image

To achieve this in Blender, you need to make sure the roof and walls are planes, instead of boxes, otherwise this technique will not work.

Normals tell the renderer which direction a material or texture should be visible from.

image

In the image above, the vertex and face normals are pointing outwards, which means that the sphere will be viewable from the outside. However, if a user were to go inside, the sphere would disappear. For room models, this is usually the opposite of what we want, so we would need to flip the normals around.

To do this:

  • In Blender, with your object selected, select "Edit Mode"
  • Select Mesh > Normals > Flip Normals

Now you will be able to see inside your object while not having your view obstructed from the outside.

Exporting to GLB

Exporting a scene from Blender is arguably the most important step in having a performant world in the Vatom Spaces platform. It can be tempting to export the entire scene in one file, ready to be dropped in, but breaking the scene down logically can increase performance, especially when adding collisions to the scene later on.

We recommended exporting the floors, walls and ceilings as separate .glb files, which can be imported and tweaked inside the space. These objects are usually quite low-poly and can have collision applied solely to these objects.

Preferred Blender export settings:

  • Vatom Spaces requires bundled .glb files, which means the file contains all vertex and texture data.

  • To export individual groups of objects from the scene, select those objects and click File > Export > glTF 2.0

  • A window should open with some options, such as the following:

    image

  • Make sure the export is limited to "Selected Objects" only, to avoid unwanted objects from being exported (lights, cameras etc)

  • Make sure to select "Apply Modifiers" to ensure the position, scale and rotation of the objects are preserved when being imported.

  • Once exported, you will have a .glb file ready to be added in to your space.