Skip to content

Documentation / scene / GrassLayer

Class: GrassLayer ​

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:104

Grass layer class

Extends ​

  • Disposable

Constructors ​

Constructor ​

new GrassLayer(terrain, seed, bladeWidth, bladeHeight, albedoMap?): GrassLayer

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:130

Creates an instance of GrassLayer

Parameters ​

terrain ​

ClipmapTerrain

Clipmap terrain object

seed ​

number

Seed for deterministic blade placement, usually the layer index

bladeWidth ​

number

Grass blade width

bladeHeight ​

number

Grass blade height

albedoMap? ​

Texture2D

Albedo texture for the blade

Returns ​

GrassLayer

Overrides ​

Disposable.constructor

Accessors ​

disposed ​

Get Signature ​

get disposed(): boolean

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

Returns ​

boolean

Inherited from ​

Disposable.disposed


numBlades ​

Get Signature ​

get numBlades(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:179

How many grass blades are currently generated in this layer

Returns ​

number


densityMap ​

Get Signature ​

get densityMap(): Uint8Array<ArrayBufferLike>

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:188

Density map of this layer, one byte per texel (0 = no grass, 255 = full density). Texel (x, z) covers the normalized terrain region [x/w..(x+1)/w, z/h..(z+1)/h]. After modifying the data, call GrassLayer.updateDensityRegion to regenerate the affected blade instances.

Returns ​

Uint8Array<ArrayBufferLike>


densityMapWidth ​

Get Signature ​

get densityMapWidth(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:192

Width of the density map in texels

Returns ​

number


densityMapHeight ​

Get Signature ​

get densityMapHeight(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:196

Height of the density map in texels

Returns ​

number


cellsPerTexel ​

Get Signature ​

get cellsPerTexel(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:203

Number of placement cells per density map texel along each axis. The maximum blade count per texel is the square of this value.

Returns ​

number

Set Signature ​

set cellsPerTexel(val): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:206

Parameters ​
val ​

number

Returns ​

void


bladeWidth ​

Get Signature ​

get bladeWidth(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:275

Grass blade width in this layer

Returns ​

number

Set Signature ​

set bladeWidth(val): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:278

Parameters ​
val ​

number

Returns ​

void


bladeHeight ​

Get Signature ​

get bladeHeight(): number

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:282

Grass blade height in this layer

Returns ​

number

Set Signature ​

set bladeHeight(val): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:285

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

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

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

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

Inherited from ​

Disposable.dispatchEvent


dispose() ​

dispose(): void

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

Returns ​

void

Inherited from ​

Disposable.dispose


setAlbedoMap() ​

setAlbedoMap(albedoMap): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:165

Sets the albedo texture of grass blades in this layer

Parameters ​

albedoMap ​

Texture2D

Albedo texture to set

Returns ​

void


getAlbedoMap() ​

getAlbedoMap(): Texture2D<unknown>

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:175

Gets the albedo texture of grass blades in this layer

Returns ​

Texture2D<unknown>

  • Albedo texture of grass blades in this layer

setDensityData() ​

setDensityData(width, height, cellsPerTexel, data): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:220

Replaces the density map and regenerates all blade instances

Parameters ​

width ​

number

Density map width in texels

height ​

number

Density map height in texels

cellsPerTexel ​

number

Placement cells per texel along each axis

data ​

Uint8Array

Density data, one byte per texel

Returns ​

void


updateDensityRegion() ​

updateDensityRegion(minTexelX, minTexelZ, maxTexelX, maxTexelZ): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:238

Regenerates blade instances for all tiles overlapping a density map region

Parameters ​

minTexelX ​

number

Minimum x texel of the region (inclusive)

minTexelZ ​

number

Minimum z texel of the region (inclusive)

maxTexelX ​

number

Maximum x texel of the region (exclusive)

maxTexelZ ​

number

Maximum z texel of the region (exclusive)

Returns ​

void


rebuild() ​

rebuild(): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:261

Regenerates blade instances for the entire layer

Returns ​

void


setBladeSize() ​

setBladeSize(width, height): void

Defined in: libs/scene/src/scene/terrain-cm/grass.ts:293

Sets the size of grass blades in this layer

Parameters ​

width ​

number

Grass blade width

height ​

number

Grass blade height

Returns ​

void

Released under the MIT License.