s3m-three 0.4.26 → 0.4.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/assets/{s3mWorker-DHOVIrAU.js → s3mWorker-BfSBNvF5.js} +1 -1
- package/dist/browser/s3m-three.iife.ext-three.js +52 -40
- package/dist/browser/s3m-three.iife.js +52 -40
- package/dist/core/BakeMercator.d.ts +54 -0
- package/dist/core/BakeMercator.d.ts.map +1 -0
- package/dist/core/BakeMercator.js +65 -0
- package/dist/core/BakeMercator.js.map +1 -0
- package/dist/core/TileGeometry.d.ts +7 -0
- package/dist/core/TileGeometry.d.ts.map +1 -1
- package/dist/core/TileGeometry.js +20 -0
- package/dist/core/TileGeometry.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/render/DatasetManager.d.ts +27 -0
- package/dist/render/DatasetManager.d.ts.map +1 -1
- package/dist/render/DatasetManager.js +18 -4
- package/dist/render/DatasetManager.js.map +1 -1
- package/dist/render/GeoAdapter.d.ts +49 -24
- package/dist/render/GeoAdapter.d.ts.map +1 -1
- package/dist/render/GeoAdapter.js +96 -8
- package/dist/render/GeoAdapter.js.map +1 -1
- package/dist/render/GeometryBuilder.d.ts +17 -0
- package/dist/render/GeometryBuilder.d.ts.map +1 -1
- package/dist/render/GeometryBuilder.js +31 -2
- package/dist/render/GeometryBuilder.js.map +1 -1
- package/dist/render/S3MViewer.d.ts +72 -2
- package/dist/render/S3MViewer.d.ts.map +1 -1
- package/dist/render/S3MViewer.js +269 -9
- package/dist/render/S3MViewer.js.map +1 -1
- package/dist/render/StyleMaterial.d.ts +5 -0
- package/dist/render/StyleMaterial.d.ts.map +1 -1
- package/dist/render/StyleMaterial.js +21 -0
- package/dist/render/StyleMaterial.js.map +1 -1
- package/dist/render/tilePlacement.d.ts +84 -0
- package/dist/render/tilePlacement.d.ts.map +1 -0
- package/dist/render/tilePlacement.js +71 -0
- package/dist/render/tilePlacement.js.map +1 -0
- package/dist/render/viewer/EdgeDecorator.d.ts +1 -0
- package/dist/render/viewer/EdgeDecorator.d.ts.map +1 -1
- package/dist/render/viewer/EdgeDecorator.js +3 -0
- package/dist/render/viewer/EdgeDecorator.js.map +1 -1
- package/dist/render/viewer/PickService.d.ts +13 -0
- package/dist/render/viewer/PickService.d.ts.map +1 -1
- package/dist/render/viewer/PickService.js +24 -15
- package/dist/render/viewer/PickService.js.map +1 -1
- package/dist/render/viewer/types.d.ts +53 -0
- package/dist/render/viewer/types.d.ts.map +1 -1
- package/dist/render/viewer/types.js.map +1 -1
- package/dist/tileset/S3MTileset.d.ts +43 -1
- package/dist/tileset/S3MTileset.d.ts.map +1 -1
- package/dist/tileset/S3MTileset.js +202 -2
- package/dist/tileset/S3MTileset.js.map +1 -1
- package/dist/worker/s3mWorker.js +115 -62
- package/dist/worker/s3mWorker.js.map +1 -1
- package/docs/API.md +18 -0
- package/package.json +1 -1
- package/src/core/BakeMercator.ts +96 -0
- package/src/core/TileGeometry.ts +26 -0
- package/src/index.ts +11 -1
- package/src/render/DatasetManager.ts +43 -5
- package/src/render/GeoAdapter.ts +139 -11
- package/src/render/GeometryBuilder.ts +53 -2
- package/src/render/S3MViewer.ts +306 -13
- package/src/render/StyleMaterial.ts +26 -0
- package/src/render/tilePlacement.ts +121 -0
- package/src/render/viewer/EdgeDecorator.ts +3 -0
- package/src/render/viewer/PickService.ts +44 -16
- package/src/render/viewer/types.ts +51 -0
- package/src/tileset/S3MTileset.ts +226 -3
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
import * as THREE from 'three';
|
|
24
24
|
import { S3MTileset } from '../tileset/S3MTileset.js';
|
|
25
25
|
import type { LightingPreset } from './lightingPreset.js';
|
|
26
|
-
import type { LightOptions, S3MViewerOptions, PickResult, PickableRef, PathFollowOptions } from './viewer/types.js';
|
|
26
|
+
import type { LightOptions, S3MViewerOptions, PickResult, PickableRef, PathFollowOptions, DepthMode } from './viewer/types.js';
|
|
27
27
|
import type { OutlineMaterial, StyleMode, S3MStyle, EdgeModes, EdgesOption, MaterialQuality, ColorPipeline } from './StyleMaterial.js';
|
|
28
28
|
import { Picker } from './Picker.js';
|
|
29
29
|
import { GpuEdgePass } from './GpuEdgePass.js';
|
|
@@ -47,8 +47,10 @@ export type { DatasetAlignment, S3MDatasetOptions, S3MDatasetEntry, } from './Da
|
|
|
47
47
|
export type { FeatureStyle, ColorByFieldOptions, ThematicLegendEntry, ThematicResult, BatchConflict, BatchAudit, FieldFilterOptions, FieldFilterResult, FieldElevationOptions, FieldElevationResult, S3MFilter, } from './FeatureStyleManager.js';
|
|
48
48
|
export type { GroundMode, GroundOptions, } from './GroundManager.js';
|
|
49
49
|
export { GroundManager, DatasetManager, FeatureStyleManager };
|
|
50
|
-
export type { PickResult, LightOptions, S3MViewerOptions, PickableRef, PathFollowOptions, } from './viewer/types.js';
|
|
50
|
+
export type { PickResult, LightOptions, S3MViewerOptions, PickableRef, PathFollowOptions, DepthMode, } from './viewer/types.js';
|
|
51
51
|
export type { MotionBlurOptions, MotionBlurConfig } from './MotionBlurPass.js';
|
|
52
|
+
/** 稳健归一化 depthMode 入参,默认 'scene' */
|
|
53
|
+
export declare function normalizeDepthMode(mode?: unknown): DepthMode;
|
|
52
54
|
/** 单体沿折线运动的参数 */
|
|
53
55
|
export declare class S3MViewer {
|
|
54
56
|
readonly options: S3MViewerOptions;
|
|
@@ -91,6 +93,8 @@ export declare class S3MViewer {
|
|
|
91
93
|
* 传了值就只认自己,多图层同页各用各的,互不覆盖。
|
|
92
94
|
*/
|
|
93
95
|
private _materialQuality;
|
|
96
|
+
private _lodTransition;
|
|
97
|
+
private _fallbackOffset?;
|
|
94
98
|
/**
|
|
95
99
|
* 本图层的颜色管线。
|
|
96
100
|
*
|
|
@@ -116,6 +120,9 @@ export declare class S3MViewer {
|
|
|
116
120
|
x: number;
|
|
117
121
|
y: number;
|
|
118
122
|
z: number;
|
|
123
|
+
meterInMercatorEast?: number;
|
|
124
|
+
meterInMercatorNorth?: number;
|
|
125
|
+
meterInMercatorUp?: number;
|
|
119
126
|
meterInMercator: number;
|
|
120
127
|
altitude?: number;
|
|
121
128
|
} | null;
|
|
@@ -123,6 +130,9 @@ export declare class S3MViewer {
|
|
|
123
130
|
x: number;
|
|
124
131
|
y: number;
|
|
125
132
|
z: number;
|
|
133
|
+
meterInMercatorEast?: number;
|
|
134
|
+
meterInMercatorNorth?: number;
|
|
135
|
+
meterInMercatorUp?: number;
|
|
126
136
|
meterInMercator: number;
|
|
127
137
|
altitude?: number;
|
|
128
138
|
} | null);
|
|
@@ -192,6 +202,13 @@ export declare class S3MViewer {
|
|
|
192
202
|
*/
|
|
193
203
|
private _motionBlurCfg;
|
|
194
204
|
private _motionBlur;
|
|
205
|
+
/**
|
|
206
|
+
* 瓦片级放置(默认关)。关时 `_registerTile` 完全不碰瓦片矩阵,代码路径与改动前
|
|
207
|
+
* 逐字一致;开时每块瓦片用自己的中心纬度算尺度,见 `tilePlacement.ts`。
|
|
208
|
+
*/
|
|
209
|
+
private readonly _perTilePlacement;
|
|
210
|
+
/** 本层绘制前深度缓冲的处理策略:'scene' | 'clear' | 'auto',默认 'scene' */
|
|
211
|
+
private _depthMode;
|
|
195
212
|
/** 宿主请求重画(MapLibre 传 triggerRepaint,纯 three 宿主传自己的渲染循环) */
|
|
196
213
|
private _requestRepaint;
|
|
197
214
|
triggerRepaint(): void;
|
|
@@ -467,6 +484,45 @@ export declare class S3MViewer {
|
|
|
467
484
|
clearDatasets(): void;
|
|
468
485
|
setDatasetVisible(id: string, visible: boolean): void;
|
|
469
486
|
private _registerTile;
|
|
487
|
+
/**
|
|
488
|
+
* 把一块瓦片摆到「用它自己中心纬度算出的尺度」上(`perTilePlacement` 开启时才走)。
|
|
489
|
+
*
|
|
490
|
+
* 矩阵是 `T(position) · S(k) · T(-pivot)`,展开后即 `v ↦ position + k·(v - pivot)`。
|
|
491
|
+
* 直接用 `makeScale + setPosition` 一次写好,省掉两个临时矩阵:
|
|
492
|
+
* `T(t)·S(k)·T(-c)` 的元素其实就是对角 `k` 加平移 `t - k·c`。
|
|
493
|
+
*
|
|
494
|
+
* 只写 `matrix`,不碰 `rotation / position / scale` —— three 在
|
|
495
|
+
* `matrixAutoUpdate = false` 时直接使用 `matrix`,那些字段留着无害,
|
|
496
|
+
* 但别让 `updateMatrix()` 有机会覆盖回来。
|
|
497
|
+
*/
|
|
498
|
+
private _applyTilePlacement;
|
|
499
|
+
private _updateTileUniforms;
|
|
500
|
+
/**
|
|
501
|
+
* 世界坐标 → **规范**场景 ENU:把瓦片级放置的缩放反解掉。
|
|
502
|
+
*
|
|
503
|
+
* `perTilePlacement` 开启后,瓦片几何是「绕自身中心缩放 k 倍、再摆到精确位置」的,
|
|
504
|
+
* 所以命中点的世界坐标不再等于数据本身的 ENU。拾取要报的是**坐标本身**——
|
|
505
|
+
* 一个屋顶的经纬度不该因为我们怎么缩放它而改变,否则同一个点在 20 km 外会比
|
|
506
|
+
* 1 km 内偏出几米,量算、贴地、外部标注全都跟着漂。
|
|
507
|
+
*
|
|
508
|
+
* 反解只需要一次矩阵求逆:父级 `entry.root` 只有平移(`layoutDataset` 只写
|
|
509
|
+
* `position`),所以世界坐标 `p` 对应的瓦片局部坐标是
|
|
510
|
+
*
|
|
511
|
+
* ```
|
|
512
|
+
* v = group.matrix⁻¹ · (p − root.position)
|
|
513
|
+
* canonical = root.position + v
|
|
514
|
+
* ```
|
|
515
|
+
*
|
|
516
|
+
* 关掉本功能、或网格不在已放置的瓦片里时**原样返回同一个对象**,
|
|
517
|
+
* 默认路径一次矩阵运算都不做。
|
|
518
|
+
*/
|
|
519
|
+
private _toCanonicalScene;
|
|
520
|
+
/**
|
|
521
|
+
* 场景锚点变了(`recomputeAnchors`)之后,所有已注册瓦片的放置都要重算 ——
|
|
522
|
+
* `k` 与 `position` 都依赖场景锚点。没存 `tileCenter` 的(未开启本功能时注册的)
|
|
523
|
+
* 一律跳过,保证默认路径不产生任何副作用。
|
|
524
|
+
*/
|
|
525
|
+
private _reapplyTilePlacements;
|
|
470
526
|
/**
|
|
471
527
|
* 新瓦片淡入。
|
|
472
528
|
*
|
|
@@ -543,6 +599,8 @@ export declare class S3MViewer {
|
|
|
543
599
|
*/
|
|
544
600
|
setMaterialQuality(q: MaterialQuality): void;
|
|
545
601
|
/** 当前材质质感档位(本图层指定了就用本图层的,否则是模块级默认) */
|
|
602
|
+
get lodTransition(): 'binary' | 'incremental';
|
|
603
|
+
setLodTransition(mode: 'binary' | 'incremental'): void;
|
|
546
604
|
get materialQuality(): MaterialQuality;
|
|
547
605
|
/**
|
|
548
606
|
* 运行时开关运动模糊后处理;`null` / 非法入参 = 关闭并立即释放 RT 显存。
|
|
@@ -553,6 +611,18 @@ export declare class S3MViewer {
|
|
|
553
611
|
*/
|
|
554
612
|
setMotionBlur(cfg: MotionBlurOptions | null | undefined): void;
|
|
555
613
|
/** 当前运动模糊配置(归一化后的副本);null = 关闭 */
|
|
614
|
+
/**
|
|
615
|
+
* 运行时修改深度处理策略('scene' | 'clear' | 'auto')。
|
|
616
|
+
*/
|
|
617
|
+
setDepthMode(mode: DepthMode): void;
|
|
618
|
+
/** 当前深度策略('scene' | 'clear' | 'auto',默认 'scene') */
|
|
619
|
+
get depthMode(): DepthMode;
|
|
620
|
+
/**
|
|
621
|
+
* 当前帧实际生效的深度处理模式('scene' | 'clear')。
|
|
622
|
+
* - 'clear': 显式指定 clear,或 auto 模式下命中地面覆盖/倾斜摄影/DEM等地面类数据
|
|
623
|
+
* - 'scene': 显式指定 scene,或 auto 模式下无地面类数据
|
|
624
|
+
*/
|
|
625
|
+
resolveDepthMode(): 'scene' | 'clear';
|
|
556
626
|
get motionBlur(): MotionBlurOptions | null;
|
|
557
627
|
/**
|
|
558
628
|
* 运行时切换**本图层**的颜色管线(`'linear'` | `'direct'`)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3MViewer.d.ts","sourceRoot":"","sources":["../../src/render/S3MViewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"S3MViewer.d.ts","sourceRoot":"","sources":["../../src/render/S3MViewer.ts"],"names":[],"mappings":"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"}
|
package/dist/render/S3MViewer.js
CHANGED
|
@@ -45,10 +45,19 @@ import { Path } from '../anim/Path.js';
|
|
|
45
45
|
import { GPUPathManager } from './GPUPathManager.js';
|
|
46
46
|
import { AttributeQuery } from '../core/AttributeQuery.js';
|
|
47
47
|
import { lngLatFromWorld, worldFromLngLat } from './GeoAdapter.js';
|
|
48
|
+
import { computeTilePlacement } from './tilePlacement.js';
|
|
48
49
|
import { DatasetManager, } from './DatasetManager.js';
|
|
49
50
|
import { FeatureStyleManager, extractEulerAngles, } from './FeatureStyleManager.js';
|
|
50
51
|
import { GroundManager, } from './GroundManager.js';
|
|
51
52
|
export { GroundManager, DatasetManager, FeatureStyleManager };
|
|
53
|
+
/** 稳健归一化 depthMode 入参,默认 'scene' */
|
|
54
|
+
export function normalizeDepthMode(mode) {
|
|
55
|
+
if (mode === 'clear')
|
|
56
|
+
return 'clear';
|
|
57
|
+
if (mode === 'auto')
|
|
58
|
+
return 'auto';
|
|
59
|
+
return 'scene';
|
|
60
|
+
}
|
|
52
61
|
function styledMaterialOf(mesh) {
|
|
53
62
|
const m = Array.isArray(mesh.material) ? mesh.material[0] : mesh.material;
|
|
54
63
|
const styled = m;
|
|
@@ -71,6 +80,11 @@ function clampOpacity(v) {
|
|
|
71
80
|
}
|
|
72
81
|
/** 低于这个透明度就当作完全不可见:跳过绘制,避免全透明物体写深度 */
|
|
73
82
|
const OPACITY_EPS = 1e-3;
|
|
83
|
+
/**
|
|
84
|
+
* 拾取反解瓦片级放置时的临时矩阵。命中点→规范 ENU 是一次独立查询(鼠标事件),
|
|
85
|
+
* 复用一个实例避免每次分配;不可重入(`_toCanonicalScene` 内部不递归调用)。
|
|
86
|
+
*/
|
|
87
|
+
const _tilePlacementInverse = new THREE.Matrix4();
|
|
74
88
|
/* ------------------------------------------------------------------ 可动画的样式键 */
|
|
75
89
|
/**
|
|
76
90
|
* 能逐帧插值的标量样式键。
|
|
@@ -153,6 +167,8 @@ export class S3MViewer {
|
|
|
153
167
|
* 传了值就只认自己,多图层同页各用各的,互不覆盖。
|
|
154
168
|
*/
|
|
155
169
|
_materialQuality;
|
|
170
|
+
_lodTransition;
|
|
171
|
+
_fallbackOffset;
|
|
156
172
|
/**
|
|
157
173
|
* 本图层的颜色管线。
|
|
158
174
|
*
|
|
@@ -181,6 +197,7 @@ export class S3MViewer {
|
|
|
181
197
|
}
|
|
182
198
|
set sceneAnchor(val) {
|
|
183
199
|
this._datasetManager.sceneAnchor = val;
|
|
200
|
+
this._reapplyTilePlacements();
|
|
184
201
|
}
|
|
185
202
|
/** 拾取表 / pickId 池 / 射线求交(见 viewer/PickService.ts) */
|
|
186
203
|
_picks;
|
|
@@ -248,6 +265,13 @@ export class S3MViewer {
|
|
|
248
265
|
*/
|
|
249
266
|
_motionBlurCfg = null;
|
|
250
267
|
_motionBlur = null;
|
|
268
|
+
/**
|
|
269
|
+
* 瓦片级放置(默认关)。关时 `_registerTile` 完全不碰瓦片矩阵,代码路径与改动前
|
|
270
|
+
* 逐字一致;开时每块瓦片用自己的中心纬度算尺度,见 `tilePlacement.ts`。
|
|
271
|
+
*/
|
|
272
|
+
_perTilePlacement;
|
|
273
|
+
/** 本层绘制前深度缓冲的处理策略:'scene' | 'clear' | 'auto',默认 'scene' */
|
|
274
|
+
_depthMode = 'scene';
|
|
251
275
|
/** 宿主请求重画(MapLibre 传 triggerRepaint,纯 three 宿主传自己的渲染循环) */
|
|
252
276
|
_requestRepaint() {
|
|
253
277
|
this._onRequestRepaint();
|
|
@@ -261,6 +285,10 @@ export class S3MViewer {
|
|
|
261
285
|
this._lodRangeScale = options.lodRangeScale ?? 1.0;
|
|
262
286
|
this._unsupported = options.unsupported ?? 'warn';
|
|
263
287
|
this._lodPixelRatioCap = options.lodPixelRatioCap ?? Infinity;
|
|
288
|
+
// 瓦片级放置默认开启:旧行为是拿单一常量切平面拟合随纬度变化的墨卡托比例,属于 bug 修复,
|
|
289
|
+
// 所以默认值跟着改(见 AGENTS.md 不变式 ①)。显式传 false 仍可回退。
|
|
290
|
+
this._perTilePlacement = options.perTilePlacement !== false;
|
|
291
|
+
this._depthMode = normalizeDepthMode(options.depthMode);
|
|
264
292
|
setTextureSizeCap(options.maxTextureSize ?? Infinity);
|
|
265
293
|
// 运动模糊:默认关闭;开了也只在 renderFrame 里按需接管「场景→屏幕」这一步
|
|
266
294
|
this._motionBlurCfg = normalizeMotionBlur(options.motionBlur);
|
|
@@ -269,6 +297,11 @@ export class S3MViewer {
|
|
|
269
297
|
this._materialQuality = normalizeMaterialQuality(options.materialQuality);
|
|
270
298
|
// 之后 addDataset 的数据集按这个默认建材质(数据集自己指定则用自己的)
|
|
271
299
|
this._datasetManager.defaultMaterialQuality = this._materialQuality;
|
|
300
|
+
this._lodTransition = options.lodTransition ?? 'binary';
|
|
301
|
+
this._fallbackOffset = options.fallbackOffset;
|
|
302
|
+
this._datasetManager.defaultLodTransition = this._lodTransition;
|
|
303
|
+
this._datasetManager.defaultFallbackOffset = this._fallbackOffset;
|
|
304
|
+
this._datasetManager.defaultBakeMercator = options.bakeMercator;
|
|
272
305
|
if (options.totalMaxTiles) {
|
|
273
306
|
this._datasetManager.totalMaxTiles = options.totalMaxTiles;
|
|
274
307
|
}
|
|
@@ -343,6 +376,7 @@ export class S3MViewer {
|
|
|
343
376
|
return self._smidMeshes;
|
|
344
377
|
},
|
|
345
378
|
lngLatFromWorld: (x, y) => self._lngLatFromWorld(x, y),
|
|
379
|
+
toCanonicalScene: (p, mesh) => self._toCanonicalScene(p, mesh),
|
|
346
380
|
gpuPathPoseAt: (smid) => self._gpuPathPoseAt(smid),
|
|
347
381
|
isFeatureHidden: (smid, batchId) => self._isFeatureHidden(smid, batchId),
|
|
348
382
|
});
|
|
@@ -573,7 +607,15 @@ export class S3MViewer {
|
|
|
573
607
|
.filter((d) => !!d?.configUrl)
|
|
574
608
|
.map((d) => ({ ...d, polygonOffset: d.polygonOffset ?? options.polygonOffset }));
|
|
575
609
|
if (options.configUrl)
|
|
576
|
-
return [{
|
|
610
|
+
return [{
|
|
611
|
+
id: 'default',
|
|
612
|
+
name: '默认数据集',
|
|
613
|
+
configUrl: options.configUrl,
|
|
614
|
+
useWorker: options.useWorker,
|
|
615
|
+
polygonOffset: options.polygonOffset,
|
|
616
|
+
lodTransition: options.lodTransition,
|
|
617
|
+
fallbackOffset: options.fallbackOffset,
|
|
618
|
+
}];
|
|
577
619
|
return [];
|
|
578
620
|
}
|
|
579
621
|
/** 追加一个数据集。图层 addLayer 之前调用会抛错。 */
|
|
@@ -581,7 +623,12 @@ export class S3MViewer {
|
|
|
581
623
|
if (!this.scene)
|
|
582
624
|
throw new Error('[s3m] 图层尚未 addLayer,不能添加数据集');
|
|
583
625
|
// 图层级默认值:数据集自己指定了就用自己的,见 `S3MViewerOptions.unsupported`
|
|
584
|
-
const merged = {
|
|
626
|
+
const merged = {
|
|
627
|
+
...ds,
|
|
628
|
+
unsupported: ds.unsupported ?? this._unsupported,
|
|
629
|
+
lodTransition: ds.lodTransition ?? this._lodTransition,
|
|
630
|
+
fallbackOffset: ds.fallbackOffset ?? this._fallbackOffset,
|
|
631
|
+
};
|
|
585
632
|
const entry = await this._datasetManager.addDataset(merged, this.scene, this.geo, this.uniforms, this._lodRangeScale, this.options.buildTile, this.options.maxTiles ?? 64, this.options.maxConcurrent ?? 4, {
|
|
586
633
|
onTile: (node, e) => {
|
|
587
634
|
this._registerTile(node, e);
|
|
@@ -623,6 +670,8 @@ export class S3MViewer {
|
|
|
623
670
|
/** 当地图 CRS 投影切换或宿主 map 挂载后,重新计算场景锚点与各数据集 offset */
|
|
624
671
|
recomputeAnchors() {
|
|
625
672
|
this._datasetManager.recomputeAnchors(this.geo);
|
|
673
|
+
// 锚点变了 → 每块瓦片的 k 与 position 都要重算(关这项功能时是空转,一次遍历都不做)
|
|
674
|
+
this._reapplyTilePlacements();
|
|
626
675
|
this._heights.refreshAll();
|
|
627
676
|
this._requestRepaint();
|
|
628
677
|
}
|
|
@@ -1358,6 +1407,20 @@ export class S3MViewer {
|
|
|
1358
1407
|
}
|
|
1359
1408
|
/* ---------------------------------------------------------------- 瓦片注册 */
|
|
1360
1409
|
_registerTile(node, entry) {
|
|
1410
|
+
// 必须在 add / updateMatrixWorld 之前设置:后者会拿当前 matrix 算 matrixWorld 并缓存
|
|
1411
|
+
if (this._perTilePlacement && node.sphere) {
|
|
1412
|
+
this._applyTilePlacement(node.group, node.sphere.center, entry);
|
|
1413
|
+
}
|
|
1414
|
+
else {
|
|
1415
|
+
const sceneAnchor = this.sceneAnchor;
|
|
1416
|
+
if (sceneAnchor) {
|
|
1417
|
+
const sEast = sceneAnchor.meterInMercatorEast ?? sceneAnchor.meterInMercator;
|
|
1418
|
+
const sNorth = sceneAnchor.meterInMercatorNorth ?? sceneAnchor.meterInMercator;
|
|
1419
|
+
const sUp = sceneAnchor.meterInMercatorUp ?? sEast;
|
|
1420
|
+
const center = node.sphere ? [node.sphere.center.x, node.sphere.center.y, node.sphere.center.z] : [0, 0, 0];
|
|
1421
|
+
this._updateTileUniforms(node.group, center, [1.0 / sEast, 1.0 / sNorth, 1.0 / sUp]);
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1361
1424
|
entry.root.add(node.group);
|
|
1362
1425
|
node.group.updateMatrixWorld(true);
|
|
1363
1426
|
const hasNativeEdges = node.group.userData.hasNativeEdges === true;
|
|
@@ -1427,6 +1490,124 @@ export class S3MViewer {
|
|
|
1427
1490
|
this._sel.replayOnto(mesh);
|
|
1428
1491
|
}
|
|
1429
1492
|
}
|
|
1493
|
+
/**
|
|
1494
|
+
* 把一块瓦片摆到「用它自己中心纬度算出的尺度」上(`perTilePlacement` 开启时才走)。
|
|
1495
|
+
*
|
|
1496
|
+
* 矩阵是 `T(position) · S(k) · T(-pivot)`,展开后即 `v ↦ position + k·(v - pivot)`。
|
|
1497
|
+
* 直接用 `makeScale + setPosition` 一次写好,省掉两个临时矩阵:
|
|
1498
|
+
* `T(t)·S(k)·T(-c)` 的元素其实就是对角 `k` 加平移 `t - k·c`。
|
|
1499
|
+
*
|
|
1500
|
+
* 只写 `matrix`,不碰 `rotation / position / scale` —— three 在
|
|
1501
|
+
* `matrixAutoUpdate = false` 时直接使用 `matrix`,那些字段留着无害,
|
|
1502
|
+
* 但别让 `updateMatrix()` 有机会覆盖回来。
|
|
1503
|
+
*/
|
|
1504
|
+
_applyTilePlacement(group, center, entry) {
|
|
1505
|
+
const sceneAnchor = this.sceneAnchor;
|
|
1506
|
+
if (!sceneAnchor || !entry.anchor)
|
|
1507
|
+
return;
|
|
1508
|
+
const p = computeTilePlacement({
|
|
1509
|
+
center,
|
|
1510
|
+
datasetAnchor: entry.anchor,
|
|
1511
|
+
sceneAnchor,
|
|
1512
|
+
datasetOffset: entry.offset,
|
|
1513
|
+
geo: this.geo,
|
|
1514
|
+
});
|
|
1515
|
+
if (!p)
|
|
1516
|
+
return;
|
|
1517
|
+
const kEast = p.scaleEast ?? p.scale;
|
|
1518
|
+
const kNorth = p.scaleNorth ?? p.scale;
|
|
1519
|
+
const kUp = kEast;
|
|
1520
|
+
group.matrixAutoUpdate = false;
|
|
1521
|
+
group.matrix.makeScale(kEast, kNorth, kUp);
|
|
1522
|
+
group.matrix.setPosition(p.position[0] - kEast * p.pivot[0], p.position[1] - kNorth * p.pivot[1], p.position[2] - kUp * p.pivot[2]);
|
|
1523
|
+
group.matrixWorldNeedsUpdate = true;
|
|
1524
|
+
// 重锚点后要能重算:中心只属于注册那一刻,存到 group 上,不依赖 tileset 内部结构
|
|
1525
|
+
group.userData.tileCenter = {
|
|
1526
|
+
x: center.x,
|
|
1527
|
+
y: center.y,
|
|
1528
|
+
z: center.z,
|
|
1529
|
+
};
|
|
1530
|
+
// 逆矩阵缓存:_toCanonicalScene 常态路径无需每次拾取反复求逆,失效点仅在瓦片放置或重锚点
|
|
1531
|
+
const inv = (group.userData.placementInverse ??= new THREE.Matrix4());
|
|
1532
|
+
inv.copy(group.matrix).invert();
|
|
1533
|
+
const sSceneEast = sceneAnchor.meterInMercatorEast ?? sceneAnchor.meterInMercator;
|
|
1534
|
+
const sSceneNorth = sceneAnchor.meterInMercatorNorth ?? sceneAnchor.meterInMercator;
|
|
1535
|
+
const sSceneUp = sceneAnchor.meterInMercatorUp ?? sSceneEast;
|
|
1536
|
+
const invScale = p.invTileScale ?? [1.0 / (sSceneEast * kEast), 1.0 / (sSceneNorth * kNorth), 1.0 / (sSceneUp * kUp)];
|
|
1537
|
+
this._updateTileUniforms(group, p.pivot, invScale);
|
|
1538
|
+
}
|
|
1539
|
+
_updateTileUniforms(group, pivot, invTileScale) {
|
|
1540
|
+
group.traverse((obj) => {
|
|
1541
|
+
const mesh = obj;
|
|
1542
|
+
if ((obj.isMesh || obj.isPoints) && obj.material) {
|
|
1543
|
+
const mats = Array.isArray(mesh.material) ? mesh.material : [mesh.material];
|
|
1544
|
+
for (const m of mats) {
|
|
1545
|
+
const uPivot = m.userData?.uTilePivot;
|
|
1546
|
+
const uScale = m.userData?.uInvTileScale;
|
|
1547
|
+
if (uPivot?.value) {
|
|
1548
|
+
uPivot.value.set(pivot[0], pivot[1], pivot[2]);
|
|
1549
|
+
}
|
|
1550
|
+
if (uScale?.value) {
|
|
1551
|
+
uScale.value.set(invTileScale[0], invTileScale[1], invTileScale[2]);
|
|
1552
|
+
}
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
});
|
|
1556
|
+
}
|
|
1557
|
+
/**
|
|
1558
|
+
* 世界坐标 → **规范**场景 ENU:把瓦片级放置的缩放反解掉。
|
|
1559
|
+
*
|
|
1560
|
+
* `perTilePlacement` 开启后,瓦片几何是「绕自身中心缩放 k 倍、再摆到精确位置」的,
|
|
1561
|
+
* 所以命中点的世界坐标不再等于数据本身的 ENU。拾取要报的是**坐标本身**——
|
|
1562
|
+
* 一个屋顶的经纬度不该因为我们怎么缩放它而改变,否则同一个点在 20 km 外会比
|
|
1563
|
+
* 1 km 内偏出几米,量算、贴地、外部标注全都跟着漂。
|
|
1564
|
+
*
|
|
1565
|
+
* 反解只需要一次矩阵求逆:父级 `entry.root` 只有平移(`layoutDataset` 只写
|
|
1566
|
+
* `position`),所以世界坐标 `p` 对应的瓦片局部坐标是
|
|
1567
|
+
*
|
|
1568
|
+
* ```
|
|
1569
|
+
* v = group.matrix⁻¹ · (p − root.position)
|
|
1570
|
+
* canonical = root.position + v
|
|
1571
|
+
* ```
|
|
1572
|
+
*
|
|
1573
|
+
* 关掉本功能、或网格不在已放置的瓦片里时**原样返回同一个对象**,
|
|
1574
|
+
* 默认路径一次矩阵运算都不做。
|
|
1575
|
+
*/
|
|
1576
|
+
_toCanonicalScene(p, mesh) {
|
|
1577
|
+
if (!this._perTilePlacement || !mesh)
|
|
1578
|
+
return p;
|
|
1579
|
+
// 网格直接挂在瓦片 group 下(`_registerTile` 就是遍历 node.group.children);
|
|
1580
|
+
// 往上找到第一个带 tileCenter 的祖先,避免依赖层级深度
|
|
1581
|
+
let group = mesh.parent;
|
|
1582
|
+
while (group && !group.userData.tileCenter)
|
|
1583
|
+
group = group.parent;
|
|
1584
|
+
if (!group)
|
|
1585
|
+
return p;
|
|
1586
|
+
const root = group.parent;
|
|
1587
|
+
if (!root)
|
|
1588
|
+
return p;
|
|
1589
|
+
return p
|
|
1590
|
+
.clone()
|
|
1591
|
+
.sub(root.position)
|
|
1592
|
+
.applyMatrix4(group.userData.placementInverse ?? _tilePlacementInverse.copy(group.matrix).invert())
|
|
1593
|
+
.add(root.position);
|
|
1594
|
+
}
|
|
1595
|
+
/**
|
|
1596
|
+
* 场景锚点变了(`recomputeAnchors`)之后,所有已注册瓦片的放置都要重算 ——
|
|
1597
|
+
* `k` 与 `position` 都依赖场景锚点。没存 `tileCenter` 的(未开启本功能时注册的)
|
|
1598
|
+
* 一律跳过,保证默认路径不产生任何副作用。
|
|
1599
|
+
*/
|
|
1600
|
+
_reapplyTilePlacements() {
|
|
1601
|
+
for (const entry of this._datasetManager.values()) {
|
|
1602
|
+
if (!entry.anchor)
|
|
1603
|
+
continue;
|
|
1604
|
+
for (const child of entry.root.children) {
|
|
1605
|
+
const c = child.userData.tileCenter;
|
|
1606
|
+
if (c)
|
|
1607
|
+
this._applyTilePlacement(child, c, entry);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1430
1611
|
/**
|
|
1431
1612
|
* 新瓦片淡入。
|
|
1432
1613
|
*
|
|
@@ -1881,6 +2062,16 @@ export class S3MViewer {
|
|
|
1881
2062
|
this._requestRepaint();
|
|
1882
2063
|
}
|
|
1883
2064
|
/** 当前材质质感档位(本图层指定了就用本图层的,否则是模块级默认) */
|
|
2065
|
+
get lodTransition() {
|
|
2066
|
+
return this._lodTransition;
|
|
2067
|
+
}
|
|
2068
|
+
setLodTransition(mode) {
|
|
2069
|
+
if (this._lodTransition === mode)
|
|
2070
|
+
return;
|
|
2071
|
+
this._lodTransition = mode;
|
|
2072
|
+
this._datasetManager.setDefaultLodTransition(mode);
|
|
2073
|
+
this.triggerRepaint();
|
|
2074
|
+
}
|
|
1884
2075
|
get materialQuality() {
|
|
1885
2076
|
return this._materialQuality ?? getMaterialQuality();
|
|
1886
2077
|
}
|
|
@@ -1901,6 +2092,55 @@ export class S3MViewer {
|
|
|
1901
2092
|
this.triggerRepaint();
|
|
1902
2093
|
}
|
|
1903
2094
|
/** 当前运动模糊配置(归一化后的副本);null = 关闭 */
|
|
2095
|
+
/**
|
|
2096
|
+
* 运行时修改深度处理策略('scene' | 'clear' | 'auto')。
|
|
2097
|
+
*/
|
|
2098
|
+
setDepthMode(mode) {
|
|
2099
|
+
const next = normalizeDepthMode(mode);
|
|
2100
|
+
if (this._depthMode !== next) {
|
|
2101
|
+
this._depthMode = next;
|
|
2102
|
+
this.triggerRepaint();
|
|
2103
|
+
}
|
|
2104
|
+
}
|
|
2105
|
+
/** 当前深度策略('scene' | 'clear' | 'auto',默认 'scene') */
|
|
2106
|
+
get depthMode() {
|
|
2107
|
+
return this._depthMode;
|
|
2108
|
+
}
|
|
2109
|
+
/**
|
|
2110
|
+
* 当前帧实际生效的深度处理模式('scene' | 'clear')。
|
|
2111
|
+
* - 'clear': 显式指定 clear,或 auto 模式下命中地面覆盖/倾斜摄影/DEM等地面类数据
|
|
2112
|
+
* - 'scene': 显式指定 scene,或 auto 模式下无地面类数据
|
|
2113
|
+
*/
|
|
2114
|
+
resolveDepthMode() {
|
|
2115
|
+
if (this._depthMode === 'clear')
|
|
2116
|
+
return 'clear';
|
|
2117
|
+
if (this._depthMode === 'scene')
|
|
2118
|
+
return 'scene';
|
|
2119
|
+
// 'auto': 按数据集与地面覆盖特征推断
|
|
2120
|
+
if (this.groundManager && this.groundManager.mode !== 'none') {
|
|
2121
|
+
return 'clear';
|
|
2122
|
+
}
|
|
2123
|
+
for (const entry of this._datasetManager.datasets.values()) {
|
|
2124
|
+
if (!entry.visible)
|
|
2125
|
+
continue;
|
|
2126
|
+
if (entry.options.depthMode === 'clear')
|
|
2127
|
+
return 'clear';
|
|
2128
|
+
if (entry.options.depthMode === 'scene')
|
|
2129
|
+
continue;
|
|
2130
|
+
if (entry.tileset?.isS3MV1)
|
|
2131
|
+
return 'clear';
|
|
2132
|
+
const cfg = entry.tileset?.config;
|
|
2133
|
+
if (cfg) {
|
|
2134
|
+
const typeStr = `${cfg.fileType ?? ''} ${cfg.dataType ?? ''} ${cfg.datasetType ?? ''} ${cfg.cacheType ?? ''} ${cfg.fileExtentName ?? ''}`;
|
|
2135
|
+
if (/osgb|oblique|ground|dem|tin|terrain/i.test(typeStr))
|
|
2136
|
+
return 'clear';
|
|
2137
|
+
}
|
|
2138
|
+
if (entry.options.configUrl && /osgb|oblique/i.test(entry.options.configUrl)) {
|
|
2139
|
+
return 'clear';
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
return 'scene';
|
|
2143
|
+
}
|
|
1904
2144
|
get motionBlur() {
|
|
1905
2145
|
return this._motionBlurCfg ? { ...this._motionBlurCfg } : null;
|
|
1906
2146
|
}
|
|
@@ -2194,10 +2434,11 @@ export class S3MViewer {
|
|
|
2194
2434
|
const anchor = this.sceneAnchor;
|
|
2195
2435
|
if (!anchor)
|
|
2196
2436
|
return [0, 0, 0];
|
|
2197
|
-
const
|
|
2437
|
+
const sEast = anchor.meterInMercatorEast ?? anchor.meterInMercator;
|
|
2438
|
+
const sNorth = anchor.meterInMercatorNorth ?? anchor.meterInMercator;
|
|
2198
2439
|
const w = worldFromLngLat(this.geo, p.lng, p.lat, p.altitude);
|
|
2199
2440
|
// 注意 y 取反:three 的 y 向上,墨卡托 y 向下(与 PickService.pickPosition 互逆)
|
|
2200
|
-
return [(w.x - anchor.x) /
|
|
2441
|
+
return [(w.x - anchor.x) / sEast, -(w.y - anchor.y) / sNorth, p.altitude - (anchor.altitude ?? 0)];
|
|
2201
2442
|
}
|
|
2202
2443
|
/**
|
|
2203
2444
|
* 经纬度 + 绝对高程 → 场景 ENU 米制坐标。
|
|
@@ -2218,8 +2459,9 @@ export class S3MViewer {
|
|
|
2218
2459
|
const anchor = this.sceneAnchor;
|
|
2219
2460
|
if (!anchor)
|
|
2220
2461
|
return { lng: 0, lat: 0, altitude: v[2] };
|
|
2221
|
-
const
|
|
2222
|
-
const
|
|
2462
|
+
const sEast = anchor.meterInMercatorEast ?? anchor.meterInMercator;
|
|
2463
|
+
const sNorth = anchor.meterInMercatorNorth ?? anchor.meterInMercator;
|
|
2464
|
+
const [lng, lat] = lngLatFromWorld(this.geo, v[0] * sEast + anchor.x, -v[1] * sNorth + anchor.y);
|
|
2223
2465
|
return { lng, lat, altitude: v[2] + (anchor.altitude ?? 0) };
|
|
2224
2466
|
}
|
|
2225
2467
|
/**
|
|
@@ -2645,9 +2887,11 @@ export class S3MViewer {
|
|
|
2645
2887
|
// 脏标记正常由微任务刷掉;这里再兜一次底,保证「本帧画出来的」一定是最新样式
|
|
2646
2888
|
this.flushOverrides();
|
|
2647
2889
|
const canvas = this.canvas;
|
|
2648
|
-
const
|
|
2890
|
+
const sEast = this.sceneAnchor.meterInMercatorEast ?? this.sceneAnchor.meterInMercator;
|
|
2891
|
+
const sNorth = this.sceneAnchor.meterInMercatorNorth ?? this.sceneAnchor.meterInMercator;
|
|
2892
|
+
const sUp = this.sceneAnchor.meterInMercatorUp ?? sEast;
|
|
2649
2893
|
// ENU → 世界坐标:x 向东,y 向北(墨卡托 y 朝南,所以取负),z 向上
|
|
2650
|
-
this._enuMatrix.set(
|
|
2894
|
+
this._enuMatrix.set(sEast, 0, 0, this.sceneAnchor.x, 0, -sNorth, 0, this.sceneAnchor.y, 0, 0, sUp, this.sceneAnchor.z, 0, 0, 0, 1);
|
|
2651
2895
|
// 正交模式由宿主在传入 mvp 前自行替换(见 s3m-maplibre 的 S3MLayer._applyOrtho),
|
|
2652
2896
|
// 视图矩阵是从宿主输入反推的(P⁻¹×MVP),不会和宿主的 pan/zoom/pitch 错位。
|
|
2653
2897
|
const mvp = this._frameMvp.fromArray(opts.mvp);
|
|
@@ -2694,6 +2938,19 @@ export class S3MViewer {
|
|
|
2694
2938
|
// 泼溅的最小像素半径 / 抗锯齿低通同样要把 ndc 换算成像素
|
|
2695
2939
|
setSplatViewport(canvas.width, canvas.height);
|
|
2696
2940
|
this.renderer.setViewport(0, 0, canvas.width, canvas.height);
|
|
2941
|
+
const effectiveDepthMode = (this.uniforms.uOpacity?.value ?? 1) > OPACITY_EPS
|
|
2942
|
+
? this.resolveDepthMode()
|
|
2943
|
+
: 'scene';
|
|
2944
|
+
if (effectiveDepthMode === 'clear' && gl) {
|
|
2945
|
+
// gl.clear 受 depthMask 约束。上一帧若以 depthWrite=false 的材质收尾(棱线、半透明
|
|
2946
|
+
// 地表覆盖、半透明点云、泼溅),GL 的 depthMask 会停在 false —— three 帧末不恢复它,
|
|
2947
|
+
// 而 resetState 排在 clear 之后,救不了这一步。不自己打开就是一次静默的空操作:
|
|
2948
|
+
// 画面上的 z-fighting 原样保留,且没有任何报错可查。
|
|
2949
|
+
gl.depthMask(true);
|
|
2950
|
+
// 只清深度,不清颜色 —— 颜色是 MapLibre 已经画好的底图
|
|
2951
|
+
gl.clear(gl.DEPTH_BUFFER_BIT);
|
|
2952
|
+
}
|
|
2953
|
+
// 清完之后必须让 three 知道状态被外部改过,否则它的状态缓存会认为自己仍然正确
|
|
2697
2954
|
this.renderer.resetState();
|
|
2698
2955
|
// 完全透明时什么都不画:透明物体照样写深度,画了会在底图上挖出一个洞。
|
|
2699
2956
|
// 这里跳过的是「本层的绘制」,宿主自己的清屏 / 底图照旧。
|
|
@@ -2707,7 +2964,10 @@ export class S3MViewer {
|
|
|
2707
2964
|
}
|
|
2708
2965
|
// GPU 描边必须画在主场景之后:它的全屏 quad 参与宿主深度测试,
|
|
2709
2966
|
// 依赖本帧已经写好的深度(被地形挡住的地方不该描边)
|
|
2710
|
-
|
|
2967
|
+
// clear 模式下宿主深度已清除,描边会穿透地形产生伪影,故只在非 clear 时画。
|
|
2968
|
+
if (effectiveDepthMode !== 'clear') {
|
|
2969
|
+
this._edges.renderGpuEdges(canvas);
|
|
2970
|
+
}
|
|
2711
2971
|
}
|
|
2712
2972
|
this._frame++;
|
|
2713
2973
|
const now = performance.now();
|