From cc7a8ca76822bef39a96e17ef2056af455d17fce Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 21 May 2026 06:09:09 +0200 Subject: [PATCH] Refactor wind direction calculation to use in-place vector writing --- src/foliage/foliage-instanced-renderer.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/foliage/foliage-instanced-renderer.ts b/src/foliage/foliage-instanced-renderer.ts index 456cde75..ceefdf7c 100644 --- a/src/foliage/foliage-instanced-renderer.ts +++ b/src/foliage/foliage-instanced-renderer.ts @@ -114,12 +114,13 @@ function stableStringify(value: unknown): string { return JSON.stringify(String(value)); } -function resolveFoliageWindDirectionVector( +function writeFoliageWindDirectionVector( + target: Vector2, settings: FoliageQualitySettings ): Vector2 { const radians = (settings.windDirectionDegrees * Math.PI) / 180; - return new Vector2(Math.cos(radians), Math.sin(radians)).normalize(); + return target.set(Math.cos(radians), Math.sin(radians)).normalize(); } function createFoliageWindUniformSet( @@ -130,7 +131,9 @@ function createFoliageWindUniformSet( time: { value: time }, strength: { value: settings.windStrength }, speed: { value: settings.windSpeed }, - direction: { value: resolveFoliageWindDirectionVector(settings) } + direction: { + value: writeFoliageWindDirectionVector(new Vector2(), settings) + } }; } @@ -142,7 +145,7 @@ function writeFoliageWindUniformValues( uniforms.time.value = time; uniforms.strength.value = settings.windStrength; uniforms.speed.value = settings.windSpeed; - uniforms.direction.value.copy(resolveFoliageWindDirectionVector(settings)); + writeFoliageWindDirectionVector(uniforms.direction.value, settings); } function patchFoliageWindMaterial(