Taos API Reference
    Preparing search index...

    Interface ForwardLitFeatureOptions

    interface ForwardLitFeatureOptions {
        ibl?: IblTextures;
        directional?: () => DirectionalLight;
        pointLights?: () => readonly PointLight[];
        spotLights?: () => readonly RenderSpotLight[];
        areaLights?: () => readonly AreaLight[];
        skinnedDrawItems?: () => readonly SkinnedForwardDrawItem[];
        useSphericalHarmonics?: boolean;
        areaLightLtc?: boolean;
        sampleCount?: number;
        skinnedOnly?: boolean;
    }
    Index

    Properties

    ibl?: IblTextures

    IBL texture set for ambient + specular indirect lighting.

    directional?: () => DirectionalLight

    When omitted the feature reads the first DirectionalLight on a root GameObject each frame. Pass a renderer-level light here to override (e.g. for samples that don't use the GameObject lighting system).

    pointLights?: () => readonly PointLight[]

    Renderer-level point lights to forward to ForwardPass.updateLights.

    spotLights?: () => readonly RenderSpotLight[]

    Renderer-level spot lights to forward to ForwardPass.updateLights.

    areaLights?: () => readonly AreaLight[]

    Representative-point area lights (sphere / tube / rect).

    skinnedDrawItems?: () => readonly SkinnedForwardDrawItem[]

    Optional skinned-mesh draws. The engine doesn't bucket SkinnedMeshes from the scene graph yet, so callers wire them in directly. Items are GPU-skinned in the vertex shader and shaded with the same forward PBR lighting as un-skinned meshes.

    useSphericalHarmonics?: boolean

    When true, the diffuse IBL term is read from order-3 spherical-harmonic coefficients (IblTextures.shBuffer) instead of the irradiance cube — the IBL_DIFFUSE_SH shader variant. Set at construction (it selects the pipeline + bind-group layout); default false keeps the irradiance cube.

    areaLightLtc?: boolean

    When true, rect area lights are shaded with reference-quality Linearly Transformed Cosines (Heitz et al. 2016) instead of the table-free representative-point approximation — the specular highlight becomes the correctly-shaped reflection of the light quad at any roughness, with a correct diffuse form factor. Sphere/tube area lights are unaffected.

    Opt-in (default false): it adds two small vendored fit tables + a sampler to the lighting bind group and uploads them once. Set at construction (it selects the pipeline + bind-group layout). Note the LTC rect interprets intensity as panel radiance (no inverse-square falloff) and honors AreaLight.twoSided. See TODO/ltc-area-lights.md.

    sampleCount?: number

    Hardware MSAA sample count (1 / 2 / 4). Default 1 (off). When > 1 the forward pass renders into a multisampled color+depth target and resolves color to a single-sample HDR. The pass then owns the whole color lifecycle, so it cannot load a pre-existing HDR (e.g. a sky feature's output) — combine MSAA with sky: undefined. frame.depth becomes multisampled and is not sampleable by depth-based post (DoF / SSR); those should stay disabled.

    skinnedOnly?: boolean

    Render ONLY skinnedDrawItems, ignoring frame.opaque/frame.transparent. Use to overlay forward-lit (e.g. transparent) skinned geometry on top of a scene already drawn by another path (e.g. the deferred pipeline) — the pass loads the existing HDR + depth instead of re-rendering the scene's meshes.