Renderer · class

PlumeRenderer

Explained in Hello world.

class PlumeRenderer
import { PlumeRenderer } from '@driftengine/core';

Constructor

new

constructor(gl: WebGL2RenderingContext, plumes: readonly PlumePlacement[], options: PlumeOptions, noiseOctaves: number)
ParameterTypeDescription
glWebGL2RenderingContext
plumesreadonly PlumePlacement[]
optionsPlumeOptions
noiseOctavesnumber

Methods

setScale

setScale(gl: WebGL2RenderingContext, index: number, scale: number): void

Scale one plume, 0 to hide it.

ParameterTypeDescription
glWebGL2RenderingContext
indexnumber
scalenumber
More

Writes only that plume's own vertices — every blade of its cross — so turning a slick's fire on costs a handful of floats rather than a re-upload of the batch. The caller owns when; the renderer has no idea what a slick is.

draw

draw(gl: WebGL2RenderingContext, camera: FrameView, timeSeconds: number, atmosphere: Atmosphere, underwaterEnabled: boolean, atmosphereCameraY: number, clipPlane: Float32Array | null, windX?: number, windZ?: number, originX?: number, originY?: number, originZ?: number): void

Draw the batch. Call after the sky: these blend without writing depth, and the sky at depth 1.0 under LEQUAL would otherwise overwrite anything drawn against open background.

ParameterTypeDescription
glWebGL2RenderingContext
cameraFrameView
timeSecondsnumber
atmosphereAtmosphere
underwaterEnabledboolean
atmosphereCameraYnumber
clipPlaneFloat32Array | null
windX?number
windZ?number
originX?number
originY?number
originZ?number

dispose

dispose(gl: WebGL2RenderingContext): void
ParameterTypeDescription
glWebGL2RenderingContext