NOTE: While Spatial supports 3D models built with traditional 3D modeling applications like Blender, Maya, 3Ds Max, etc, we recommend you use the Spatial Creator Toolkit powered by Unity.
Visit our toolkit site to learn everything you need to know about the toolkit!
Overview
Understanding Spatial's Texture + Shader Support
- We support glTF integration for models. Models can contain PBR based material properties such as metallic, roughness, normal and emission.
- If you export your model to glTF/glb, it contains those material properties and textures. We load them and compose a material that uses PBR shader, which uses Unity's shader cores.
- You can use normal, metallic, roughness and emission map then the result will be very similar to when you use Unity's Standard shader.
- 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 realtime lighting; all lighting must be baked into the environment.
-
Spatial does not support animated textures such as moving water, but you can replicate transparent textures using the following settings. The reason these textures are supported in pre-set Spatial environments such as your Home lobby is due to Unity shading. We hope to enable Unity plugins for Custom Environments in the future.
Different Material Settings Examples
In Blender
Spatial does not support animated textures such as moving water, but you can replicate transparent textures using the following settings.
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
Example space: Visit this space to see the difference between different textures and colliders.
https://spatial.io/rooms/61fda05b0b8a710001259849?share=623320301207187662
Download link (Blender, glb, url)
https://www.dropbox.com/sh/7ktgicvp61e499f/AABRyEgYGiNJW1j9DjCrczAza?dl=0
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
Additional C4D resources:
In Autodesk Maya
- For users using Maya, we recommend exporting the file from Maya and reimporting to Blender, then changing the material setting ‘Background.’
- Useful documentation :
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 backwards, 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 Spatial?
- 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 the Spatial app 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.
This gif demonstrates the use of transparent meshes acting as colliders. You can build these into your environment as colliders.
- 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 Blender file you can refer to with the proper settings.