Variable: firefly
constfirefly:object
Defined in: modules/lighting/firefly/firefly.ts:18
Seeded smooth wandering and independently phased bioluminescence. Positions are in metres.
Type Declaration
defaultUniforms
readonlydefaultUniforms:object=uniforms
defaultUniforms.enabled
enabled:
number=0
defaultUniforms.pulse
pulse:
number=0.85
defaultUniforms.radius
radius:
number=8
defaultUniforms.speed
speed:
number=0.6
defaultUniforms.time
time:
number=0
name
readonlyname:"firefly"='firefly'
source
readonlysource: "struct FireflyUniforms {enabled: f32, time: f32, radius: f32, speed: f32, pulse: f32};\n @group(3) @binding(auto) var<uniform> firefly: FireflyUniforms;\n fn firefly_getPosition(position: vec3f, seed: f32, time: f32) -> vec3f {\n if (firefly.enabled <= 0.0) { return position; }\n let phase = seed * 2.399963;\n let travel = time * firefly.speed;\n let offset = vec3f(sin(travel * 0.71 + phase) + sin(travel * 1.31 + phase * 1.7) * 0.35,\n cos(travel * 0.83 + phase * 1.2) + sin(travel * 0.47 + phase * 2.3) * 0.4,\n sin(travel * 0.59 + phase * 1.9) * 0.3);\n return position + offset * firefly.radius * firefly.enabled;\n }\n fn firefly_getBrightness(seed: f32, time: f32) -> f32 {\n if (firefly.enabled <= 0.0) { return 1.0; }\n let phase = seed * 2.399963;\n let pulse = pow(0.5 + 0.5 * sin(time * firefly.speed * (1.6 + fract(seed * 0.37)) + phase), 3.0);\n return mix(1.0, mix(0.08, 1.0, pulse), firefly.pulse * firefly.enabled);\n }"
uniformTypes
readonlyuniformTypes:object
uniformTypes.enabled
readonlyenabled:"f32"='f32'
uniformTypes.pulse
readonlypulse:"f32"='f32'
uniformTypes.radius
readonlyradius:"f32"='f32'
uniformTypes.speed
readonlyspeed:"f32"='f32'
uniformTypes.time
readonlytime:"f32"='f32'
vs
readonlyvs: "layout(std140) uniform fireflyUniforms {\n float enabled;\n float time;\n float radius;\n float speed;\n float pulse;\n } firefly;\n vec3 firefly_getPosition(vec3 position, float seed, float time) {\n if (firefly.enabled <= 0.0) { return position; }\n float phase = seed * 2.399963;\n float travel = time * firefly.speed;\n vec3 offset = vec3(sin(travel * 0.71 + phase) + sin(travel * 1.31 + phase * 1.7) * 0.35,\n cos(travel * 0.83 + phase * 1.2) + sin(travel * 0.47 + phase * 2.3) * 0.4,\n sin(travel * 0.59 + phase * 1.9) * 0.3);\n return position + offset * firefly.radius * firefly.enabled;\n }\n float firefly_getBrightness(float seed, float time) {\n if (firefly.enabled <= 0.0) { return 1.0; }\n float phase = seed * 2.399963;\n float pulse = pow(0.5 + 0.5 * sin(time * firefly.speed * (1.6 + fract(seed * 0.37)) + phase), 3.0);\n return mix(1.0, mix(0.08, 1.0, pulse), firefly.pulse * firefly.enabled);\n }"
getUniforms()
readonlygetUniforms(props?,previous?):object
Parameters
props?
Partial<FireflyProps> = {}
previous?
Required<FireflyProps> | undefined
Returns
object
enabled
enabled:
number
pulse
pulse:
number
radius
radius:
number
speed
speed:
number
time
time:
number