Documentation / scene / GPUHairSimulation
Class: GPUHairSimulation
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:248
Strand dynamics on the GPU.
Remarks
Created by HairNode when simulation is switched on; it writes the strand point buffer in place, so nothing about the draw call changes.
Extends
Disposable
Constructors
Constructor
new GPUHairSimulation(
strands,source,options?):GPUHairSimulation
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:358
Creates a simulation over an uploaded strand set.
Parameters
strands
GPU strand data; its point buffer is written in place.
source
The control points the strands were built from, used to derive rest lengths and the rest pose.
options?
Tuning.
Returns
GPUHairSimulation
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
enabled
Get Signature
get enabled():
boolean
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:432
Whether the simulation is running.
Returns
boolean
disabledReason
Get Signature
get disabledReason():
string
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:436
Why the simulation is not running, when it is not.
Returns
string
gravity
Get Signature
get gravity():
Vector3
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:440
World-space gravity.
Returns
Vector3
Set Signature
set gravity(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:443
Parameters
value
Vector3
Returns
void
damping
Get Signature
get damping():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:447
Velocity lost per step, in [0, 1].
Returns
number
Set Signature
set damping(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:450
Parameters
value
number
Returns
void
maxSpeedFactor
Get Signature
get maxSpeedFactor():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:454
Per-substep ceiling on point travel, in segment lengths.
Returns
number
Set Signature
set maxSpeedFactor(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:457
Parameters
value
number
Returns
void
globalStiffness
Get Signature
get globalStiffness():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:461
Pull back to the authored pose per fixed step, in [0, 1]. Off by default.
Returns
number
Set Signature
set globalStiffness(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:464
Parameters
value
number
Returns
void
globalRange
Get Signature
get globalRange():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:468
Fraction of a strand, from the root, the pose pull acts on, in [0, 1].
Returns
number
Set Signature
set globalRange(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:471
Parameters
value
number
Returns
void
localStiffness
Get Signature
get localStiffness():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:475
How strongly a strand keeps its authored shape, in [0, 1].
Returns
number
Set Signature
set localStiffness(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:478
Parameters
value
number
Returns
void
localIterations
Get Signature
get localIterations():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:482
Local shape constraint passes per substep.
Returns
number
Set Signature
set localIterations(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:485
Parameters
value
number
Returns
void
ftlDamping
Get Signature
get ftlDamping():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:489
Share of a point's length correction fed back into its parent, in [0, 1].
Returns
number
Set Signature
set ftlDamping(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:492
Parameters
value
number
Returns
void
vspCoeff
Get Signature
get vspCoeff():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:496
How much of the node's motion a strand is carried along by, in [0, 1].
Returns
number
Set Signature
set vspCoeff(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:499
Parameters
value
number
Returns
void
vspAccelThreshold
Get Signature
get vspAccelThreshold():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:503
Node acceleration above which a strand is carried rigidly, in units/s².
Returns
number
Set Signature
set vspAccelThreshold(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:506
Parameters
value
number
Returns
void
substeps
Get Signature
get substeps():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:510
Integration substeps per fixed step.
Returns
number
Set Signature
set substeps(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:513
Parameters
value
number
Returns
void
friction
Get Signature
get friction():
number
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:517
Friction on tangential contact motion, in [0, 1].
Returns
number
Set Signature
set friction(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:520
Parameters
value
number
Returns
void
colliders
Get Signature
get colliders(): readonly
SpringCollider[]
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:524
Colliders the strands are pushed out of.
Returns
readonly SpringCollider[]
Set Signature
set colliders(
value):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:527
Parameters
value
readonly SpringCollider[]
Returns
void
prevPointBuffer
Get Signature
get prevPointBuffer():
GPUDataBuffer<unknown>
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:531
Verlet history. Not a previous-frame position - see the field remarks.
Returns
GPUDataBuffer<unknown>
framePointBuffer
Get Signature
get framePointBuffer():
GPUDataBuffer<unknown>
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:535
Local positions as of the previously rendered frame, for motion vectors.
Returns
GPUDataBuffer<unknown>
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
reset()
reset(
worldMatrix):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:547
Discards accumulated motion and returns every strand to its rest pose.
Parameters
worldMatrix
Matrix4x4
Returns
void
Remarks
Wanted whenever a node is moved rather than animated: a teleport would otherwise register as one enormous frame of inertia and fling the hair. GPUHairSimulation.update calls this itself when the groom jumps farther in one frame than a few times its own strand length.
update()
update(
deltaTime,worldMatrix):void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:563
Advances the simulation.
Parameters
deltaTime
number
Seconds since the last update.
worldMatrix
Matrix4x4
The drawing node's current world matrix.
Returns
void
onDispose()
protectedonDispose():void
Defined in: libs/scene/src/animation/hair/gpu_hair_simulation.ts:684
Returns
void
Overrides
Disposable.onDispose