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.