Textures and Materials
The Physically-Based Material

The Physically-Based Material

Use a physically based material to create realistic looking objects in Spark AR Studio. The different properties in this material allow you to add surface roughness, metallic effects, and lighting that mimics real world light.

Physically-based materials work best on modern devices. Spark AR Studio won't show physically-based materials in effects on older devices.

Textures you'll need

For a complete physically-based material, you'll need:

  • A base texture - this will form the base of your material. Use it to add color and details.
  • An ORM texture - this will allow you to define the roughness, metallic details and occlusion strength of the material.
  • A Normal map - to create the appearance of real-world texture like bumps, grooves and rivets without adding extra geometry to your object.

Creating a physically-based material

To create a physically-based material:

  • Select the material in the Assets panel.
  • Set the Shader Type to Physically-Based in the Inspector.

Editing a physically-based material

When you've created a physically-based material you'll be able to edit these properties in the Inspector:


Albedo is the base color and texture of the material. You'll see 2 options here:

  • Color - use this option to choose the base color of your material.
  • Texture - Apply a base texture. The texture will be modulated by the color you've selected.

Below, we've added an Albedo texture:

Surface Parameters and ORM texture

This is where you'll apply an ORM texture, using the dropdown next to ORM Texture. You can then adjust the sliders, to control:

  • Occlusion - this option approximates soft shadows baked into the creased areas of a surface.
  • Roughness - to add rough surface details.
  • Metallic - to add metallic surface details.

Spark AR Studio packs ORM values into the RGB channels in that order.

Here, we've added an ORM texture to a physically-based material:


This is where you'll add a normal map. The normal map lets you create the appearance of bumps, grooves and rivets without adding extra geometry to your object. Representing these details as a texture instead of geometry will increase the performance of your effect.

Check the box next to Normal, then apply your normal map next to Texture.


Check this box to allow your material to illuminate from itself. Light emitted will only affect your material, not other materials in your scene - like a standard light source would.

You can also use the Color option to:

  • Add an emission color.
  • Apply a texture.

The emission texture and color will modulate.


Apply either a preset environment texture, or import your own.

Environment textures use images to provide lighting that mimics lighting in a real-life setting. For example the lighting in an office or outside on the beach.

Below, we've added an environment light, ORM texture and normal map:

Tiling Options


Scale the textures you've applied to your material.


Shift the origin of your textures.

Render Options

Blend mode

Sets the blend mode of the material.

  1. Alpha
  2. Associative Alpha
  3. Subtract
  4. Multiply
  5. Replace
  6. Screen

Cull mode

Back - Discard pieces of the mesh that are facing away from the viewer. Most effects use this mode to improve performance.

Front - Discard pieces of the mesh that are facing the viewer.


Adjust the slider to set transparency.

Alpha Cutoff

Use the slider to make semi transparent areas, below a certain threshold, transparent.

Double Sided

Check this box to render both sides of the mesh.

Alpha Test

Use the slider to make semi-transparent parts of a material transparent.

Advanced Render Options

Use the Write to Depth Buffer and Use Depth Test checkboxes to control certain order parameters for the object the material is applied to.

Both boxes checked

Enable read and write depth buffer. This means that closer objects will obscure far objects.

Write to Depth Buffer box checked

Disable read depth and enable write depth. These objects will always draw over any other object. They will obscure father objects that are drawn after unless these objects have either the Write to Depth Buffer or both boxes checked.

Use Depth Test checked

Enable read depth and disable write depth. These objects will be obscured by nearer objects that have already been drawn that have either the Write to Depth Buffer or both boxes checked.

These objects can be obscured by any objects drawn afterwards, whether they’re nearer or further away.

Uncheck both boxes

Disable read and write depth. These draw on top of any objects of any type already drawn, and in turn will be overdrawn by any later rendered objects, regardless of whether they are nearer or further away.

Color Encoding

Choose the output color encoding of the material.

sRGB will apply the expected gamma correction after shading. Linear will not apply any conversion after shading computation.

Was this article helpful?