Skip to content

Documentation / scene / FFTWaveGenerator

Class: FFTWaveGenerator

Defined in: libs/scene/src/render/fft_wavegenerator.ts:140

This class generates a 2D ocean field using the Fast Fourier Transform (FFT) algorithm.

Extends

  • Disposable

Implements

Constructors

Constructor

new FFTWaveGenerator(params?): FFTWaveGenerator

Defined in: libs/scene/src/render/fft_wavegenerator.ts:178

Create a new instance of the FFTWaveGenerator class.

Parameters

params?

OceanFieldBuildParams

Ocean field build parameters. If not provided, default parameters will be used.

Returns

FFTWaveGenerator

Overrides

Disposable.constructor

Accessors

disposed

Get Signature

get disposed(): boolean

Defined in: libs/base/dist/index.d.ts:6065

Returns

boolean

Implementation of

WaveGenerator.disposed

Inherited from

Disposable.disposed


alignment

Get Signature

get alignment(): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:305

Gets the wave alighment

Returns

number

Set Signature

set alignment(val): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:308

Parameters
val

number

Returns

void


wind

Get Signature

get wind(): Immutable<Vector2>

Defined in: libs/scene/src/render/fft_wavegenerator.ts:315

Gets the wind vector

Returns

Immutable<Vector2>

Set Signature

set wind(val): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:318

Parameters
val

Immutable<Vector2>

Returns

void


foamWidth

Get Signature

get foamWidth(): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:326

Gets the foam width

Returns

number

Set Signature

set foamWidth(val): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:329

Parameters
val

number

Returns

void


foamContrast

Get Signature

get foamContrast(): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:336

Gets the foam contrast

Returns

number

Set Signature

set foamContrast(val): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:339

Parameters
val

number

Returns

void

Methods

on()

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:594

IEventTarget.on

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener

EventListener<{ dispose: []; }, K>

context?

unknown

Returns

void

Implementation of

WaveGenerator.on

Inherited from

Disposable.on


once()

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:598

IEventTarget.once

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener

EventListener<{ dispose: []; }, K>

context?

unknown

Returns

void

Implementation of

WaveGenerator.once

Inherited from

Disposable.once


off()

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:602

IEventTarget.off

Type Parameters

K

K extends "dispose"

Parameters

type

K

listener?

EventListener<{ dispose: []; }>

context?

unknown

Returns

void

Implementation of

WaveGenerator.off

Inherited from

Disposable.off


dispatchEvent()

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:606

IEventTarget.dispatchEvent

Type Parameters

K

K extends "dispose"

Parameters

type

K

args

...object[K]

Returns

void

Implementation of

WaveGenerator.dispatchEvent

Inherited from

Disposable.dispatchEvent


dispose()

dispose(): void

Defined in: libs/base/dist/index.d.ts:6066

Dispose the wave generator.

Returns

void

Implementation of

WaveGenerator.dispose

Inherited from

Disposable.dispose


clone()

clone(): FFTWaveGenerator

Defined in: libs/scene/src/render/fft_wavegenerator.ts:286

Create a new instance from this

Returns

FFTWaveGenerator

The created instance

Implementation of

WaveGenerator.clone


getWaveLength()

getWaveLength(cascade): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:346

Gets the wave length for the specified cascade

Parameters

cascade

number

Returns

number


setWaveLength()

setWaveLength(cascade, length): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:354

Sets the wave length for the specified cascade

Parameters

cascade

number

The cascade index

length

number

The new wave length for the specified cascade

Returns

void


getWaveStrength()

getWaveStrength(cascade): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:361

Gets the wave strength for the specified cascade

Parameters

cascade

number

Returns

number


setWaveStrength()

setWaveStrength(cascade, strength): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:369

Sets the wave strength for the specified cascade

Parameters

cascade

number

The cascade index

strength

number

The new wave strength for the specified cascade

Returns

void


getWaveCroppiness()

getWaveCroppiness(cascade): number

Defined in: libs/scene/src/render/fft_wavegenerator.ts:376

Gets the wave croppiness for the specified cascade

Parameters

cascade

number

Returns

number


setWaveCroppiness()

setWaveCroppiness(cascade, croppiness): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:384

Sets the wave croppiness for the specified cascade

Parameters

cascade

number

The cascade index

croppiness

number

The new wave croppiness for the specified cascade

Returns

void


update()

update(time): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:643

Update the wave generator.

Parameters

time

number

Time in seconds.

Returns

void

Implementation of

WaveGenerator.update


needUpdate()

needUpdate(): boolean

Defined in: libs/scene/src/render/fft_wavegenerator.ts:671

Wether this wave generator's update() method should be called this frame

Returns

boolean

true if this wave generator's update() method should be called this frame

Implementation of

WaveGenerator.needUpdate


setupUniforms()

setupUniforms(scope, uniformGroup): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1109

Setup uniforms for the shader program.

Parameters

scope

PBGlobalScope

Global scope of the shader program.

uniformGroup

number

Bind group index for uniform values

Returns

void

Implementation of

WaveGenerator.setupUniforms


calcVertexPositionAndNormal()

calcVertexPositionAndNormal(scope, inPos, outPos, outNormal): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1128

Calculate vertex position and normal.

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

inPos

PBShaderExp

Input position.

outPos

PBShaderExp

Output position.

outNormal

PBShaderExp

Output normal.

Returns

void

Implementation of

WaveGenerator.calcVertexPositionAndNormal


calcFragmentNormal()

calcFragmentNormal(scope, xz, _vertexNormal): PBShaderExp

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1179

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

xz

PBShaderExp

XZ position.

_vertexNormal

PBShaderExp

Vertex normal.

Returns

PBShaderExp

Implementation of

WaveGenerator.calcFragmentNormal


calcFragmentNormalAndFoam()

calcFragmentNormalAndFoam(scope, xz): PBShaderExp

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1212

Calculate fragment normal and foam.

Parameters

scope

PBInsideFunctionScope

Global scope of the shader program.

xz

PBShaderExp

XZ position.

Returns

PBShaderExp

Implementation of

WaveGenerator.calcFragmentNormalAndFoam


isOk()

isOk(): boolean

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1279

Check if the wave generator is ok.

Returns

boolean

Implementation of

WaveGenerator.isOk


applyWaterBindGroup()

applyWaterBindGroup(bindGroup): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1283

Apply water bind group.

Parameters

bindGroup

BindGroup

Bind group to apply.

Returns

void

Implementation of

WaveGenerator.applyWaterBindGroup


calcClipmapTileAABB()

calcClipmapTileAABB(minX, maxX, minZ, maxZ, y, outAABB): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1302

Parameters

minX

number

Minimum X position of the clipmap tile.

maxX

number

Maximum X position of the clipmap tile.

minZ

number

Minimum Z position of the clipmap tile.

maxZ

number

Maximum Z position of the clipmap tile.

y

number

Y position of the water surface.

outAABB

AABB

Output AABB.

Returns

void

Implementation of

WaveGenerator.calcClipmapTileAABB


getHash()

getHash(): string

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1308

Get the shader hash of the wave generator.

Returns

string

Implementation of

WaveGenerator.getHash


onDispose()

protected onDispose(): void

Defined in: libs/scene/src/render/fft_wavegenerator.ts:1311

Returns

void

Overrides

Disposable.onDispose

Released under the MIT License.