---
title: "Materials"
description: "Gessa default materials are physically based. Use material presets for common looks, then adjust material fields when a specific surface needs more detail."
engineVersion: v1.0.234
date: 2026-09-28
license: "(c) Gessa, proprietary. Cite with attribution to https://gessa.ai/docs/. Terms: https://gessa.ai/terms/."
canonical: https://gessa.ai/docs/creator/graphics/materials/
---
# Materials

Gessa default materials are physically based. Use material presets for common looks, then adjust material fields when a specific surface needs more detail.

## Presets

The v1 preset set covers:

- Matte diffuse
- Polished metal
- Rough metal
- Glass or translucent
- Masked cutout
- Emissive
- Unlit

## PBR Fields

Core PBR fields include base color, opacity, metallic, roughness, normal, occlusion, emissive, emissive intensity, and alpha mode.

Advanced physical fields include:

- Clearcoat and clearcoat roughness
- Clearcoat normal map
- Sheen, sheen color, and sheen roughness
- Transmission and transmission roughness
- IOR
- Attenuation color and distance
- Anisotropy and anisotropy rotation

Materials can declare variants for quality tiers. Runtime selects the best variant for the effective quality policy and falls back to the base material when no variant exists.

## Alpha Modes

- `OPAQUE` is the default and writes depth.
- `MASK` uses `alphaCutoff` and stays in the opaque pass.
- `BLEND` is sorted back-to-front and does not write depth.

Prefer `MASK` for fences, leaves, and decals that do not need soft transparency. Use `BLEND` for glass, mist, and translucent VFX.

## Texture Formats

KTX2/Basis is the canonical compressed runtime texture format. Upload and publish flows generate or require compressed variants for large renderable textures. Runtime selects compressed variants when the backend and device support them, and falls back to uncompressed variants otherwise.

## Script Access

Scripts patch `MaterialInstanceOverrideComponent` with
`ctx.entity.patchComponent` for per-instance changes. Full material authoring
remains asset/component data so the renderer can select variants, apply budgets,
and keep WebGL/WebGPU parity.
