Skip to content

Documentation / scene / FFTWaveGenerator

Class: FFTWaveGenerator ​

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

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:183

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:6107

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:310

Gets the wave alighment

Returns ​

number

Set Signature ​

set alignment(val): void

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

Parameters ​
val ​

number

Returns ​

void


wind ​

Get Signature ​

get wind(): Immutable<Vector2>

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

Gets the wind vector

Returns ​

Immutable<Vector2>

Set Signature ​

set wind(val): void

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

Parameters ​
val ​

Immutable<Vector2>

Returns ​

void


foamWidth ​

Get Signature ​

get foamWidth(): number

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

Gets the foam width

Returns ​

number

Set Signature ​

set foamWidth(val): void

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

Parameters ​
val ​

number

Returns ​

void


foamContrast ​

Get Signature ​

get foamContrast(): number

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

Gets the foam contrast

Returns ​

number

Set Signature ​

set foamContrast(val): void

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

Parameters ​
val ​

number

Returns ​

void

Methods ​

on() ​

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

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

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:634

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:638

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:642

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:6108

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:291

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:351

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:359

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:366

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:374

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:381

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:389

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:653

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:681

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:1116

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:1133

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:1184

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:1260

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:1335

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:1339

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:1358

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:1364

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:1367

Returns ​

void

Overrides ​

Disposable.onDispose

Released under the MIT License.