@gltf-transform/extensions
Version:
Adds extension support to @gltf-transform/core
52 lines (51 loc) • 2.01 kB
TypeScript
import { Extension, PropertyType, type ReaderContext, type WriterContext } from '@gltf-transform/core';
import { KHR_MATERIALS_CLEARCOAT } from '../constants.js';
import { Clearcoat } from './clearcoat.js';
/**
* [KHR_materials_clearcoat](https://github.com/KhronosGroup/gltf/blob/main/extensions/2.0/Khronos/KHR_materials_clearcoat/)
* defines a clear coating on a glTF PBR material.
*
* 
*
* > _**Figure:** Comparison of a carbon-fiber material without clearcoat (left) and with clearcoat
* > (right). Source: [Filament](https://google.github.io/filament/Materials.html)._
*
* A clear coat is a common technique used in Physically-Based
* Rendering for a protective layer applied to a base material.
* Commonly used to represent car paint, carbon fiber, or thin lacquers.
*
* Properties:
* - {@link Clearcoat}
*
* ### Example
*
* ```typescript
* import { KHRMaterialsClearcoat, Clearcoat } from '@gltf-transform/extensions';
*
* // Create an Extension attached to the Document.
* const clearcoatExtension = document.createExtension(KHRMaterialsClearcoat);
*
* // Create Clearcoat property.
* const clearcoat = clearcoatExtension.createClearcoat()
* .setClearcoatFactor(1.0);
*
* // Assign to a Material.
* material.setExtension('KHR_materials_clearcoat', clearcoat);
* ```
*/
export declare class KHRMaterialsClearcoat extends Extension {
static readonly EXTENSION_NAME: typeof KHR_MATERIALS_CLEARCOAT;
readonly extensionName: typeof KHR_MATERIALS_CLEARCOAT;
readonly prereadTypes: PropertyType[];
readonly prewriteTypes: PropertyType[];
/** Creates a new Clearcoat property for use on a {@link Material}. */
createClearcoat(): Clearcoat;
/** @hidden */
read(_context: ReaderContext): this;
/** @hidden */
write(_context: WriterContext): this;
/** @hidden */
preread(context: ReaderContext): this;
/** @hidden */
prewrite(context: WriterContext): this;
}