Skip to main content
Skip table of contents

Introduction to Physically Based Rendering

This guide explains how to override materials to customize the appearance of models in your space.

Using this system, you can change textures, colors, or transparency of any object in the space. In addition to this, you can apply dynamic images from video or cinematic camera components onto any surface. 

To do this, we use a material type inspired by the material type from glTF, known as a PBR or Physically Based Rendering material. 

Physically Based Rendering (PBR) Principles

Let's take a look at the principles of PBR.

Physically Based Rendering (PBR) recreates how light behaves in the real world to produce realistic digital images. Rather than using simplified lighting techniques, PBR follows actual physics – tracking how light reflects, scatters, and absorbs when it hits different materials. By defining standard properties like roughness, metalness, and reflectivity, artists can create authentic-looking surfaces that respond naturally to any lighting environment.

Base Color and Emissive

Base color should be used if you want your surface to be affected by the scene lighting.

Emissive is similar to base color, however, it is not affected by scene lighting. As a result, it appears to be “emitting” light even though it doesn’t. This is best used when you want to ensure the surface is uniformly lit (e.g., a video texture).

To create a purely emissive surface, set the base color factor to (0, 0, 0) and the emissive factor to (1, 1, 1). Otherwise, the emissive color will be added to the base color, which can result in washed-out or unintended colors

Both base color factor and emissive factor work by multiplying their value against the equivalent texture channel. This allows you to easily tint or darken the texture. If a texture is not assigned, it’s assumed to be 1,1,1 (white).

Metallic Roughness

We use the metallic roughness PBR model (the other being specular glossiness). This means that materials are either metallic or not, with the roughness value defining how much light is scattered when hitting the surface, making reflections appear softer. This is important because metallic surfaces reflect light fundamentally differently from non-metallic (e.g., wood) ones.

For shiny metal surfaces, set metalness to 1 and roughness to 0.

The texture is read as an “ORM” texture 

Occlusion -> Red

Roughness -> Green

Metalness -> Blue

Occlusion Texture

This texture – also known as AO or Ambient Occlusion – can add additional pre-baked shadows to the surface. This darkens the corners of a model, giving it more detail. For example, in this stone wall texture, you can see parts in between the stones are dark because they are “occluded”.

Stone wall by ManyTextures.com is licensed under a Creative Commons Attribution 4.0 International License.

Normal Texture

This texture defines the surface normals, which determine how light interacts with the surface. It allows you to simulate fine surface detail without increasing the polygon count.

Transparency, Translucency, Opacity, and Alpha Blending

By default, materials are opaque, which means that they are solid and no blending is performed. However, we also provide support for two other rendering modes – Mask and Blend.

  1. Mask, also known as alpha testing, removes any pixels whose alpha values are below a certain threshold. This is often used for things such as foliage.

  2. Blend, also known as translucency, is where the final output is combined with the color already present at this location, making them appear see-through.

And finally, we have a flag for “DoubleSided”, which disables backface culling, allowing both sides of a surface to be visible.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.