From b79e6c9c0389646c3b44f94b6ce30c530ba8f2bd Mon Sep 17 00:00:00 2001 From: fukunee Date: Fri, 18 Sep 2026 19:26:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E7=90=83=E7=82=B9=E9=98=B5=EF=BC=9A?= =?UTF-8?q?=E8=B4=B4=E5=90=88=E7=9C=9F=E5=AE=9E=E5=9C=B0=E5=BD=A2=E9=87=87?= =?UTF-8?q?=E6=A0=B7=E3=80=81=E5=8A=A0=E5=AF=86=E7=BC=A9=E5=B0=8F=E3=80=81?= =?UTF-8?q?=E6=B5=B7=E9=99=86=E7=B2=BE=E5=87=86=E5=88=86=E7=B1=BB=EF=BC=88?= =?UTF-8?q?=E5=90=AB=E6=9E=81=E5=9C=B0=E4=B8=8E=E8=A5=BF=E4=BC=AF=E5=88=A9?= =?UTF-8?q?=E4=BA=9A=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scene/globe.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/scene/globe.js b/src/scene/globe.js index e3df606..9f9886b 100644 --- a/src/scene/globe.js +++ b/src/scene/globe.js @@ -99,8 +99,9 @@ export class Globe { const y = Math.min(H - 1, Math.max(0, Math.round((theta / Math.PI) * (H - 1)))); const i = (y * W + x) * 4; const r = px[i], g = px[i + 1], b = px[i + 2]; - // 海洋:蓝色明显占优(蓝>红且蓝>绿,且差距足够大以排除冰雪的微蓝白色) - return !(b > r && b > g && (b - r) > 6 && (b - g) > 4); + // 海洋:蓝色占优且饱和度高(蓝明显大于红)。 + // 用相对比例而非绝对值,避免把高纬度偏蓝的雪原/苔原(如西伯利亚)误判为海。 + return !(b > r && b > g && (b - r) / Math.max(1, b) > 0.25); }; // 斐波那契球:单位球面上均匀分布的点 @@ -129,10 +130,10 @@ export class Globe { } this._buildDotBeads(landPts, { - radius: 0.0045, color: 0xe8d9b4, opacity: 0.95, emissiveIntensity: 0.5, + radius: 0.0032, color: 0xe8d9b4, opacity: 0.95, emissiveIntensity: 0.6, }); this._buildDotBeads(oceanPts, { - radius: 0.003, color: 0x33415f, opacity: 0.5, emissiveIntensity: 0.15, + radius: 0.0022, color: 0x53658a, opacity: 0.65, emissiveIntensity: 0.45, }); }