From b69ab773c821d4050702452fa3cb4e1ddf0df2c0 Mon Sep 17 00:00:00 2001 From: hhhhkrx Date: Mon, 23 Mar 2026 15:53:52 +0800 Subject: [PATCH] fix: adapt HorizontalBillboard vectors to right-hand coordinate system Flip sideVector and upVector to match Galacean's right-hand coordinate system while preserving face normal (+Y), texture orientation, and rotation direction consistent with Unity. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../core/src/shaderlib/particle/horizontal_billboard.glsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/shaderlib/particle/horizontal_billboard.glsl b/packages/core/src/shaderlib/particle/horizontal_billboard.glsl index 86382707f..b9649f94e 100644 --- a/packages/core/src/shaderlib/particle/horizontal_billboard.glsl +++ b/packages/core/src/shaderlib/particle/horizontal_billboard.glsl @@ -1,7 +1,7 @@ #ifdef RENDERER_MODE_HORIZONTAL_BILLBOARD vec2 corner = a_CornerTextureCoordinate.xy + renderer_PivotOffset.xy; - const vec3 sideVector = vec3(-1.0, 0.0, 0.0); - const vec3 upVector = vec3(0.0, 0.0, 1.0); + const vec3 sideVector = vec3(1.0, 0.0, 0.0); + const vec3 upVector = vec3(0.0, 0.0, -1.0); corner *= computeParticleSizeBillboard(a_StartSize.xy, normalizedAge); // HorizontalBillboard rotates in XZ plane (around Y-axis normal).