Taos API Reference
    Preparing search index...

    Interface ForwardPlusPresetOptions

    interface ForwardPlusPresetOptions {
        pointLights: () => readonly PointLight[];
        sky?: SkyOption;
        shadow?: false | ShadowFeatureOptions;
        cull?: ForwardPlusCullMode;
        ibl?: IblTextures;
        lighting?: { useSphericalHarmonics?: boolean };
        shadowFilter?: "pcss" | "vsm";
        shadowVsmPrecision?: "auto" | "fp32" | "fp16";
        directional?: () => DirectionalLight;
        taa?: boolean;
        aa?: false | "taa" | "smaa" | "fxaa" | "cmaa2" | "msaa" | "taau";
        msaa?: 4 | 2;
        smaa?: SMAAOptions;
        fxaa?: FXAAOptions;
        cmaa2?: CMAA2Options;
        taau?: TemporalUpscaleFeatureOptions;
        motionBlur?: boolean | MotionBlurFeatureOptions;
        dof?: boolean | DofFeatureOptions;
        bloom?: boolean | BloomFeatureOptions;
        exposure?: number;
        aces?: boolean;
        hdrCanvas?: boolean;
    }
    Index

    Properties

    pointLights: () => readonly PointLight[]

    Live point-light list. Read each frame by the tiled cull, so the callback should return the current set (mutating positions/colors on the returned objects is fine — the buffer is re-uploaded every frame).

    sky?: SkyOption

    Sky source — see SkyOption for the union. Default: no sky.

    shadow?: false | ShadowFeatureOptions

    Cascaded directional shadow map. false skips the feature; a config object is forwarded to ShadowFeature. Default: enabled.

    Light-culling strategy — 'clustered' (default; 3D froxel grid with projection-only bounds, no depth pre-pass, correct on transparents) or 'tiled' (16×16 screen tiles + depth pre-pass). See ForwardPlusPass.cullMode.

    ibl?: IblTextures

    IBL texture set passed to the forward+ pass for indirect lighting.

    lighting?: { useSphericalHarmonics?: boolean }

    Forward+ lighting tuning. useSphericalHarmonics selects the IBL_DIFFUSE_SH variant (diffuse IBL from order-3 SH coefficients instead of the irradiance cube); it's a pipeline-build-time choice, so set it here.

    shadowFilter?: "pcss" | "vsm"

    Directional shadow filtering — 'pcss' (default) or 'vsm' (EVSM2). A pipeline-build-time choice, so set it here.

    shadowVsmPrecision?: "auto" | "fp32" | "fp16"

    EVSM2 moment precision when shadowFilter:'vsm' — 'auto' (default), 'fp32' (best quality), or 'fp16' (half memory, ≈ plain VSM).

    directional?: () => DirectionalLight

    Override the directional light supplied to the forward+ pass; otherwise the scene's first DirectionalLight component is used.

    taa?: boolean

    Temporal anti-aliasing. Default: false. Ignored when aa is set.

    aa?: false | "taa" | "smaa" | "fxaa" | "cmaa2" | "msaa" | "taau"

    Anti-aliasing method, a superset of taa that also selects SMAA:

    • 'taa' — temporal AA (TAAFeature).
    • 'smaa' — spatial SMAA 1x (SMAAFeature); no jitter/history/ghosting.
    • 'fxaa' — FXAA 3.11 (FXAAFeature); cheapest spatial option.
    • 'cmaa2' — CMAA2 (CMAA2Feature); compute-based conservative morphological AA, no jitter/history/ghosting.
    • 'msaa' — hardware MSAA in the forward+ shading pass (see msaa). Highest geometric-edge quality; smooths geometry edges only, costs bandwidth, requires no pre-HDR sky (sky: undefined), and makes frame.depth multisampled (disables depth-based post like DoF).
    • 'taau' — temporal upscaler (TemporalUpscaleFeature, FSR2-style); renders sub-native and resolves to display res. Tune via taau.
    • false — no anti-aliasing. When omitted, falls back to taa (default off).
    msaa?: 4 | 2

    MSAA sample count when aa: 'msaa' — 2 or 4. Default 4.

    Tuning forwarded to SMAAFeature when aa: 'smaa'.

    Tuning forwarded to FXAAFeature when aa: 'fxaa'.

    cmaa2?: CMAA2Options

    Tuning forwarded to CMAA2Feature when aa: 'cmaa2'.

    Tuning forwarded to TemporalUpscaleFeature when aa: 'taau'.

    motionBlur?: boolean | MotionBlurFeatureOptions

    Motion blur. Camera-only by default; pass { useVelocityBuffer: true } to add per-object motion blur via an extra velocity-buffer pass. Slotted after TAA and before DoF / bloom. Default: disabled.

    dof?: boolean | DofFeatureOptions
    bloom?: boolean | BloomFeatureOptions
    exposure?: number
    aces?: boolean
    hdrCanvas?: boolean