KHRMaterialsEmissiveStrength

KHR_materials_emissive_strength defines emissive strength and enables high-dynamic-range (HDR) emissive materials.

Illustration

Figure: Cubes with emissive color #59BCF3 and emissive strength increasing from 1 to 256 nits, left to right. Rendered in three.js, with independent point lighting and a bloom effect. Source: Don McCurdy.

The core glTF 2.0 material model includes emissiveFactor and emissiveTexture to control the color and intensity of the light being emitted by the material, clamped to the range [0.0, 1.0]. However, in PBR environments with HDR reflections and lighting, stronger emission effects may be desirable.

In this extension, a new emissiveStrength scalar factor is supplied, which governs the upper limit of emissive strength per material and may be given arbitrarily high values.

For implementations where a physical light unit is needed, the units for the multiplicative product of the emissive texture and factor are candela per square meter (cd / m2), sometimes called nits. Many realtime rendering engines simplify this calculation by assuming that an emissive factor of 1.0 results in a fully exposed pixel.

Properties:

Example

import { KHRMaterialsEmissiveStrength, EmissiveStrength } from '@gltf-transform/extensions';

// Create an Extension attached to the Document.
const emissiveStrengthExtension = document.createExtension(KHRMaterialsEmissiveStrength);

// Create EmissiveStrength property.
const emissiveStrength = emissiveStrengthExtension
    .createEmissiveStrength().setEmissiveStrength(5.0);

// Assign to a Material.
material.setExtension('KHR_materials_emissive_strength', emissiveStrength);

Hierarchy

Static properties

EXTENSION_NAME: "KHR_materials_emissive_strength"

Properties

extensionName: "KHR_materials_emissive_strength"
prereadTypes: import("/Users/donmccurdy/Documents/Projects/glTF-Transform/packages/core/src/constants").PropertyType[]
prewriteTypes: import("/Users/donmccurdy/Documents/Projects/glTF-Transform/packages/core/src/constants").PropertyType[]

Methods

  • dispose(): void
  • isRequired(): boolean
  • Indicates to the client whether it is OK to load the asset when this extension is not recognized. Optional extensions are generally preferred, if there is not a good reason to require a client to completely fail when an extension isn't known.

  • listProperties(): ExtensionProperty[]
  • Indicates to the client whether it is OK to load the asset when this extension is not recognized. Optional extensions are generally preferred, if there is not a good reason to require a client to completely fail when an extension isn't known.

Function symbol, where the argument and output are a box labeled 'glTF'.

Made by Don McCurdy. Documentation built with greendoc and published under Creative Commons Attribution 3.0.