From bfc623644b38792978295ef065165028b8aae0fb Mon Sep 17 00:00:00 2001 From: xuzhijie Date: Mon, 11 May 2026 18:24:40 +0800 Subject: [PATCH] Improve globe grid visuals and rim light styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add visible intersection dots at all grid crossings - Skip 0°/180° longitude in front view (no center vertical line) - Increase perspective pitch to -28° for stronger top-down view - Smart drag-to-back: detect nearest snap on both hemispheres - Increase dashed line visibility (opacity 0.6, wider dash spacing) - Add pole marker dots in perspective view - Make rim light source dot match main source style (black core, white glow) --- .../lighting/LightingEffectModal.tsx | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/components/lighting/LightingEffectModal.tsx b/src/components/lighting/LightingEffectModal.tsx index 059bdfa2..beee8f8b 100644 --- a/src/components/lighting/LightingEffectModal.tsx +++ b/src/components/lighting/LightingEffectModal.tsx @@ -229,7 +229,7 @@ const RIM_LIGHT_STOPS: LightControlPoint[] = [ const DEFAULT_RIM_LIGHT_POSITION = { x: 0, y: 0, z: -1 }; const VIEW_ROTATION: Record = { - perspective: { pitch: -18, yaw: 0 }, + perspective: { pitch: -28, yaw: 0 }, front: { pitch: 0, yaw: 0 }, }; @@ -382,7 +382,11 @@ function buildVisualGlobeLines( }; }); - const longitudeLines = LONGITUDE_DEGREES.map((longitude) => { + const longitudeLines = LONGITUDE_DEGREES.filter((longitude) => { + // In front view, 0° and 180° project as a straight vertical line through + // the center with no visible curvature — skip them. + return !(isFront && (longitude === 0 || longitude === 180)); + }).map((longitude) => { const points: Array<{ left: number; top: number; depth: number }> = []; for (let i = 0; i < SAMPLES_PER_LINE; i++) { const latitude = -90 + (i / SAMPLES_PER_LINE) * 180; @@ -665,6 +669,20 @@ function LightingPreview({ })()} )} + {LATITUDE_DEGREES.flatMap((latitude) => + LONGITUDE_DEGREES.map((longitude) => { + const pt = projectSpherePoint(latitude, longitude, settings.viewMode); + return ( + + ); + }) + )} {MAIN_LIGHT_STOPS.map((stop) => { @@ -770,7 +788,7 @@ function LightingPreview({ {settings.rimLight && (