s3m-three 0.4.16 → 0.4.18

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.
Files changed (47) hide show
  1. package/dist/browser/s3m-three.iife.ext-three.js +41 -23
  2. package/dist/browser/s3m-three.iife.js +41 -23
  3. package/dist/core/AttributeQuery.d.ts +13 -0
  4. package/dist/core/AttributeQuery.d.ts.map +1 -1
  5. package/dist/core/AttributeQuery.js +20 -3
  6. package/dist/core/AttributeQuery.js.map +1 -1
  7. package/dist/core/AuthFetch.d.ts +52 -0
  8. package/dist/core/AuthFetch.d.ts.map +1 -0
  9. package/dist/core/AuthFetch.js +44 -0
  10. package/dist/core/AuthFetch.js.map +1 -0
  11. package/dist/core/types.d.ts +8 -0
  12. package/dist/core/types.d.ts.map +1 -1
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/render/DatasetManager.d.ts +7 -1
  18. package/dist/render/DatasetManager.d.ts.map +1 -1
  19. package/dist/render/DatasetManager.js +2 -1
  20. package/dist/render/DatasetManager.js.map +1 -1
  21. package/dist/render/HostRenderer.d.ts +105 -0
  22. package/dist/render/HostRenderer.d.ts.map +1 -0
  23. package/dist/render/HostRenderer.js +170 -0
  24. package/dist/render/HostRenderer.js.map +1 -0
  25. package/dist/render/S3MViewer.d.ts +28 -8
  26. package/dist/render/S3MViewer.d.ts.map +1 -1
  27. package/dist/render/S3MViewer.js +101 -42
  28. package/dist/render/S3MViewer.js.map +1 -1
  29. package/dist/render/StyleMaterial.d.ts +6 -4
  30. package/dist/render/StyleMaterial.d.ts.map +1 -1
  31. package/dist/render/StyleMaterial.js +48 -3
  32. package/dist/render/StyleMaterial.js.map +1 -1
  33. package/dist/tileset/S3MTileset.d.ts +8 -0
  34. package/dist/tileset/S3MTileset.d.ts.map +1 -1
  35. package/dist/tileset/S3MTileset.js +23 -5
  36. package/dist/tileset/S3MTileset.js.map +1 -1
  37. package/docs/API.md +40 -22
  38. package/package.json +1 -1
  39. package/src/core/AttributeQuery.ts +26 -3
  40. package/src/core/AuthFetch.ts +82 -0
  41. package/src/core/types.ts +8 -0
  42. package/src/index.ts +4 -0
  43. package/src/render/DatasetManager.ts +9 -1
  44. package/src/render/HostRenderer.ts +222 -0
  45. package/src/render/S3MViewer.ts +112 -39
  46. package/src/render/StyleMaterial.ts +59 -3
  47. package/src/tileset/S3MTileset.ts +28 -5
@@ -0,0 +1,170 @@
1
+ /**
2
+ * 宿主无关渲染底座(HostRenderer)
3
+ *
4
+ * 把「宿主协议 ↔ s3m-three 渲染内核」的**宿主无关**部分抽出来,作为所有地图适配层
5
+ * (MapLibre / Mapbox / 未来的 ArcGIS / Cesium)的共同基类。它只做三件事:
6
+ *
7
+ * 1. 持有并构造 `S3MViewer`(渲染内核,宿主无关);
8
+ * 2. 提供每帧驱动(把宿主给的 world→clip 矩阵喂给内核,并按需请求下一帧)、
9
+ * 生命周期(mount / restore / unmount)、投影模式状态与近平面缩放状态;
10
+ * 3. 把「宿主能力」做成两个抽象钩子 `requestRepaint()` / `getBearing()`,
11
+ * 由具体适配器实现(maplibre → `triggerRepaint()`,arcgis → `requestRender()`)。
12
+ *
13
+ * 凡是依赖具体地图 API 的东西(CustomLayerInterface 形态、从宿主 render 参数里抽矩阵、
14
+ * 事件绑定、上下文恢复重加图层、经纬度→墨卡托的 WorldCoordinateHelper 提取)都**不在这里**——
15
+ * 那是各适配层自己的事。这样「绕开墨卡托」也成为可能:非墨卡托宿主(ECEF / 局部米制)只要
16
+ * 实现 `requestRepaint` 并提供返回自己坐标系的 GeoAdapter,内核就完全不碰墨卡托。
17
+ *
18
+ * 设计约束(对应 AGENTS.md 不变式①):本类不引入任何默认行为变更;maplibre 适配器继承它后,
19
+ * 默认路径与改动前逐字一致。
20
+ */
21
+ import { S3MViewer } from './S3MViewer.js';
22
+ /**
23
+ * 宿主无关渲染底座。具体地图适配器(如 S3MLayer)继承它,只补宿主专属胶水。
24
+ */
25
+ export class HostRenderer {
26
+ id;
27
+ options;
28
+ pickable;
29
+ /** 公开回调,可被使用方运行时重新赋值 */
30
+ onStats;
31
+ onReady;
32
+ onPick;
33
+ onError;
34
+ /** 渲染内核(宿主无关) */
35
+ viewer;
36
+ /** 当前投影模式 */
37
+ _projection = 'perspective';
38
+ /** 正交插值比例(0 = 纯透视,1 = 纯正交);过渡期间由 animator 平滑推进 */
39
+ _projectionT = 0;
40
+ /** 正交不可用只告警一次 */
41
+ _orthoWarned = false;
42
+ /** 近裁剪面缩放系数,1 = 不改(默认) */
43
+ _nearPlaneScale = 1;
44
+ constructor(options = {}) {
45
+ this.id = options.id ?? 's3m';
46
+ this.options = options;
47
+ this.pickable = options.pickable !== false;
48
+ this._projection = options.projection === 'orthographic' ? 'orthographic' : 'perspective';
49
+ this._nearPlaneScale = HostRenderer.normalizeNearPlaneScale(options.nearPlaneScale);
50
+ this._projectionT = this._projection === 'orthographic' ? 1 : 0;
51
+ this.onStats = options.onStats ?? (() => { });
52
+ this.onReady = options.onReady ?? (() => { });
53
+ this.onPick = options.onPick ?? (() => { });
54
+ this.onError = options.onError ?? ((e) => console.warn('[s3m]', e));
55
+ // 把宿主能力做成钩子,内核不碰任何地图 API
56
+ const { id: _id, projection: _projection, nearPlaneScale: _nearPlaneScale, ...viewerOptions } = options;
57
+ this.viewer = new S3MViewer({
58
+ ...viewerOptions,
59
+ onRequestRepaint: () => this.requestRepaint(),
60
+ getBearing: () => this.getBearing(),
61
+ onStats: (s) => this.onStats(s),
62
+ onReady: (e) => this.onReady(e),
63
+ onPick: (r) => this.onPick(r),
64
+ onError: (e) => this.onError(e),
65
+ });
66
+ }
67
+ /** 宿主方位角(度);宿主无关默认 0(灯光不跟随视角) */
68
+ getBearing() {
69
+ return 0;
70
+ }
71
+ /* ----------------------------------------------------------------- 生命周期 */
72
+ /** 挂载渲染内核到宿主的 canvas + 共享 GL 上下文(上下文恢复时原地换新 renderer) */
73
+ mountViewer(canvas, gl) {
74
+ if (this.viewer.renderer) {
75
+ // 上下文恢复路径:onAdd 被再次触发(map.addLayer),原地换新 renderer,
76
+ // 保留已加载的场景与瓦片,不重建、不重拉。
77
+ this.viewer.restoreContext(gl);
78
+ }
79
+ else {
80
+ this.viewer.mount(canvas, gl);
81
+ }
82
+ }
83
+ /** 卸载渲染内核(保留已加载的瓦片,下次 mount 可复用) */
84
+ unmountViewer() {
85
+ this.viewer.unmount();
86
+ }
87
+ /* ----------------------------------------------------------------- 每帧驱动 */
88
+ /**
89
+ * 把宿主抽好的矩阵喂给内核,并按需请求下一帧。
90
+ * 返回内核是否需要继续驱动(动态着色 / 瓦片加载中 / LOD 变化)。
91
+ */
92
+ driveFrame(frame) {
93
+ const needsNext = this.viewer.renderFrame(frame);
94
+ if (needsNext)
95
+ this.requestRepaint();
96
+ return needsNext;
97
+ }
98
+ /* ----------------------------------------------------------------- 投影模式 */
99
+ /**
100
+ * 切换投影模式,可带平滑过渡。
101
+ * 正交只影响本层:底图瓦片、地形、DOM Marker / 弹窗仍走宿主的透视投影。
102
+ * 拾取、选中描边、按单体着色/隐藏/抬高不受影响。
103
+ */
104
+ setProjection(mode, transition) {
105
+ const next = mode === 'orthographic' ? 'orthographic' : 'perspective';
106
+ const targetT = next === 'orthographic' ? 1 : 0;
107
+ const duration = transition?.duration ?? 0;
108
+ const wantAnim = duration > 0 || !!transition?.spring;
109
+ this._projection = next;
110
+ this._orthoWarned = false;
111
+ if (!wantAnim) {
112
+ if (this.viewer.animator.has('projection.t'))
113
+ this.viewer.animator.cancel('projection.t');
114
+ this._projectionT = targetT;
115
+ this.requestRepaint();
116
+ return;
117
+ }
118
+ this._ensureProjectionChannel();
119
+ this.viewer.animator.to('projection.t', targetT, {
120
+ ...transition,
121
+ duration,
122
+ easing: transition?.easing ?? 'easeInOutCubic',
123
+ onComplete: () => {
124
+ this._projectionT = targetT;
125
+ this.requestRepaint();
126
+ },
127
+ });
128
+ this.requestRepaint();
129
+ }
130
+ /** 当前投影模式 */
131
+ get projection() {
132
+ return this._projection;
133
+ }
134
+ /** 当前正交插值比例(0 = 纯透视,1 = 纯正交) */
135
+ get projectionT() {
136
+ return this._projectionT;
137
+ }
138
+ /** 正交插值参数通道:由 animator 平滑推进,写回时请求重绘 */
139
+ _ensureProjectionChannel() {
140
+ if (this.viewer.animator.has('projection.t'))
141
+ return;
142
+ this.viewer.animator.register('projection.t', {
143
+ dim: 1,
144
+ read: (out) => {
145
+ out[0] = this._projectionT;
146
+ },
147
+ write: (v) => {
148
+ this._projectionT = v[0];
149
+ this.requestRepaint();
150
+ },
151
+ });
152
+ }
153
+ /* ----------------------------------------------------------------- 近平面缩放 */
154
+ /** 动态调整近裁剪面缩放(0 < scale < 1)。传 1 / 0 / 非法值 = 恢复宿主原始 near */
155
+ setNearPlaneScale(scale) {
156
+ this._nearPlaneScale = HostRenderer.normalizeNearPlaneScale(scale);
157
+ this.requestRepaint();
158
+ }
159
+ /** 当前近裁剪面缩放系数(1 = 不改,用宿主的默认值) */
160
+ get nearPlaneScale() {
161
+ return this._nearPlaneScale;
162
+ }
163
+ /** 近裁剪缩放系数的合法化:非数字 / <=0 / >=1 一律视为「不改」 */
164
+ static normalizeNearPlaneScale(v) {
165
+ if (typeof v !== 'number' || !Number.isFinite(v))
166
+ return 1;
167
+ return v > 0 && v < 1 ? v : 1;
168
+ }
169
+ }
170
+ //# sourceMappingURL=HostRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostRenderer.js","sourceRoot":"","sources":["../../src/render/HostRenderer.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,8 @@
23
23
  import * as THREE from 'three';
24
24
  import { S3MTileset } from '../tileset/S3MTileset.js';
25
25
  import type { BuildTileFn } from '../tileset/S3MTileset.js';
26
- import type { OutlineMaterial, StyleMode, S3MStyle, EdgesOption } from './StyleMaterial.js';
26
+ import { type AuthenticateFn } from '../core/AuthFetch.js';
27
+ import type { OutlineMaterial, StyleMode, S3MStyle, EdgesOption, MaterialQuality } from './StyleMaterial.js';
27
28
  import { Picker } from './Picker.js';
28
29
  import { Animator } from '../anim/Animator.js';
29
30
  import type { TransitionOptions } from '../anim/Animator.js';
@@ -180,6 +181,13 @@ export interface S3MViewerOptions {
180
181
  onRequestRepaint?: () => void;
181
182
  /** 地图朝向(弧度),用于让灯光跟着视角走。不传则灯光方向固定 */
182
183
  getBearing?: () => number;
184
+ /**
185
+ * 鉴权适配函数(全局默认,数据集可用自己的 `authenticate` 覆盖)。
186
+ * 内核主线程发出的全部请求(配置 scp / 瓦片 / 子图集 / 棱线缓存 / 属性查询)
187
+ * 发出前都过一遍,可改写 URL(加 `?token=`)或附加请求头。
188
+ * 不传 = 行为与旧版完全一致。见 `AuthenticateFn`。
189
+ */
190
+ authenticate?: AuthenticateFn;
183
191
  onStats?: (stats: Stats) => void;
184
192
  onReady?: (entry: S3MDatasetEntry) => void;
185
193
  onPick?: (result: PickResult | null) => void;
@@ -341,6 +349,8 @@ export declare class S3MViewer {
341
349
  /** 宿主重画信号与地图朝向,构造时注入 */
342
350
  private _onRequestRepaint;
343
351
  private _getBearing;
352
+ /** 鉴权适配(全局默认),构造时注入 */
353
+ private readonly _authenticate;
344
354
  private _lodRangeScale;
345
355
  /** LOD 判定屏幕高度的 DPR 上限。Infinity = 不截断(默认,行为同旧版) */
346
356
  private _lodPixelRatioCap;
@@ -699,15 +709,25 @@ export declare class S3MViewer {
699
709
  /** 平面/平滑着色:FLAT_SHADED 是编译期宏,改它必须重编译 */
700
710
  private _applyShading;
701
711
  /**
702
- * 预热另一种 `shading` 变体,让首次切换不再同步编译着色器。
712
+ * 运行时切换材质质感(`'pbr'` | `'lambert'`)。
703
713
  *
704
- * 做法是「把材质翻到另一种变体 → 编译 → 翻回来」:three 的 program 缓存按
705
- * cacheKey(含 flatShading / defines)分桶,编译一次就留在缓存里,之后
706
- * `_applyShading()` 切过去只是取缓存。
714
+ * 档位是模块级设置(影响之后新建的材质);已加载瓦片的材质在这里**原位重建**:
715
+ * 不重拉瓦片、不重建几何,按创建时记录的参数(`userData.s3mOpts`)换一个
716
+ * 新材质实例,并保留逐材质状态(选中编号、瓦片淡入、批量状态纹理)。
717
+ * 切换后 program 需要重新编译一次(lambert / pbr 是不同着色器),这是唯一开销。
718
+ */
719
+ setMaterialQuality(q: MaterialQuality): void;
720
+ /** 当前材质质感档位 */
721
+ get materialQuality(): MaterialQuality;
722
+ /** 按创建参数原位重建所有 styled 材质(materialQuality 切换用) */
723
+ private _rebuildStyledMaterials;
724
+ /**
725
+ * 预热着色 program,避免首帧同步编译。
707
726
  *
708
- * 翻转期间材质是「错误变体」,所以用 `_prewarming` 让 renderFrame 跳过渲染——
709
- * 少画一两帧看不出来,把平滑的楼画成平面的就很明显。
710
- * 优先用 `compileAsync`(KHR_parallel_shader_compile),没有就退回同步 `compile`。
727
+ * shading 改为 `uFlatShading` 共享 uniform 驱动后(见 `_applyShading`),
728
+ * flat / smooth 共用同一个 program,不再存在「另一种变体」,也不需要
729
+ * 「翻变体 → 编译 → 翻回来」的那套流程与 `_prewarming` 跳帧。这里只把当前
730
+ * 唯一的 program 编一次(优先 `compileAsync`,KHR_parallel_shader_compile)。
711
731
  */
712
732
  prewarmShading(): Promise<void>;
713
733
  /**
@@ -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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"}
@@ -22,10 +22,11 @@
22
22
  */
23
23
  import * as THREE from 'three';
24
24
  import { usableGeoBounds } from '../tileset/S3MTileset.js';
25
+ import { authFetch } from '../core/AuthFetch.js';
25
26
  import { setMaxAnisotropy, setCompressedTexturesSupported, setTextureOffThreadDecode, setMaxTextureSize as setTextureSizeCap } from './TextureFactory.js';
26
- import { setMaterialQuality } from './StyleMaterial.js';
27
+ import { getMaterialQuality, setMaterialQuality } from './StyleMaterial.js';
27
28
  import { decodeTextureWithWorker } from '../worker/S3MWorkerClient.js';
28
- import { STYLE, STYLE_LABELS, SELECT_MODE, DEFAULT_STYLE, createSharedUniforms, createOutlineMaterial, resolveEdgeModes, sameEdgeModes, } from './StyleMaterial.js';
29
+ import { STYLE, STYLE_LABELS, SELECT_MODE, DEFAULT_STYLE, createSharedUniforms, createStyledMaterial, createOutlineMaterial, resolveEdgeModes, sameEdgeModes, } from './StyleMaterial.js';
29
30
  import { applyPointCloudStyle, isOwnedPointCloudMaterial } from './PointCloudMaterial.js';
30
31
  import { Picker } from './Picker.js';
31
32
  import { GpuEdgePass } from './GpuEdgePass.js';
@@ -231,6 +232,8 @@ export class S3MViewer {
231
232
  /** 宿主重画信号与地图朝向,构造时注入 */
232
233
  _onRequestRepaint = () => { };
233
234
  _getBearing;
235
+ /** 鉴权适配(全局默认),构造时注入 */
236
+ _authenticate;
234
237
  _lodRangeScale = 1.0;
235
238
  /** LOD 判定屏幕高度的 DPR 上限。Infinity = 不截断(默认,行为同旧版) */
236
239
  _lodPixelRatioCap = Infinity;
@@ -256,6 +259,7 @@ export class S3MViewer {
256
259
  }
257
260
  this._onRequestRepaint = options.onRequestRepaint ?? (() => { });
258
261
  this._getBearing = options.getBearing;
262
+ this._authenticate = options.authenticate;
259
263
  this.onStats = options.onStats ?? (() => { });
260
264
  this.onReady = options.onReady ?? (() => { });
261
265
  this.onPick = options.onPick ?? (() => { });
@@ -317,7 +321,10 @@ export class S3MViewer {
317
321
  this._fps.last = performance.now();
318
322
  this._datasetQueue = this._normalizeDatasets(options);
319
323
  if (options.attributes)
320
- this.attributeQuery = new AttributeQuery(options.attributes);
324
+ this.attributeQuery = new AttributeQuery({
325
+ ...options.attributes,
326
+ authenticate: options.attributes.authenticate ?? this._authenticate,
327
+ });
321
328
  }
322
329
  /* ---------------------------------------------------------------- 生命周期 */
323
330
  /**
@@ -569,7 +576,7 @@ export class S3MViewer {
569
576
  triggerRepaint: () => {
570
577
  this._requestRepaint();
571
578
  },
572
- }, this.options.maxTriangles ?? Infinity, this.options.maxImageCache ?? 128);
579
+ }, this.options.maxTriangles ?? Infinity, this.options.maxImageCache ?? 128, this._authenticate);
573
580
  return entry;
574
581
  }
575
582
  /**
@@ -1147,7 +1154,9 @@ export class S3MViewer {
1147
1154
  }
1148
1155
  /* ---------------------------------------------------------------- 按业务字段着色 */
1149
1156
  setAttributeSource(options) {
1150
- this.attributeQuery = options ? new AttributeQuery(options) : null;
1157
+ this.attributeQuery = options
1158
+ ? new AttributeQuery({ ...options, authenticate: options.authenticate ?? this._authenticate })
1159
+ : null;
1151
1160
  }
1152
1161
  getLoadedSmids() {
1153
1162
  return [...this._smidMeshes.keys()];
@@ -1381,8 +1390,11 @@ export class S3MViewer {
1381
1390
  mat.transparent = o < 0.999;
1382
1391
  const keepDepth = this.style.depthWrite !== false;
1383
1392
  mat.depthWrite = mat.transparent ? keepDepth : (this.style.depthWrite !== false);
1384
- mat.flatShading = this.style.shading !== 'smooth';
1385
- mat.needsUpdate = true;
1393
+ // shading 走共享 uniform(uFlatShading),不写 mat.flatShading / needsUpdate——
1394
+ // transparent / depthWrite 也不是 program 决定项,整套样式继承零重编译
1395
+ if (mat.userData.uFlatShading) {
1396
+ mat.userData.uFlatShading.value = this.style.shading !== 'smooth' ? 1 : 0;
1397
+ }
1386
1398
  this._featureStyleManager.applyOverridesToMesh(mesh);
1387
1399
  this._startTileFade(mesh, mat);
1388
1400
  }
@@ -1881,26 +1893,74 @@ export class S3MViewer {
1881
1893
  }
1882
1894
  /** 平面/平滑着色:FLAT_SHADED 是编译期宏,改它必须重编译 */
1883
1895
  _applyShading() {
1884
- const flat = this.style.shading !== 'smooth';
1896
+ // shading 现在是共享 uniform(uFlatShading)驱动的运行期分支,不再是
1897
+ // flatShading define:翻一个 float 就完成切换,零重编译、零卡顿。
1898
+ const target = this.style.shading !== 'smooth' ? 1 : 0;
1885
1899
  for (const p of this._pickables.values()) {
1886
1900
  const m = styledMaterialOf(p.mesh);
1887
- if (!m || m.flatShading === flat)
1901
+ const u = m?.userData.uFlatShading;
1902
+ if (!u || u.value === target)
1888
1903
  continue;
1889
- m.flatShading = flat;
1890
- m.needsUpdate = true;
1904
+ u.value = target;
1891
1905
  }
1892
1906
  this._requestRepaint();
1893
1907
  }
1894
1908
  /**
1895
- * 预热另一种 `shading` 变体,让首次切换不再同步编译着色器。
1909
+ * 运行时切换材质质感(`'pbr'` | `'lambert'`)。
1896
1910
  *
1897
- * 做法是「把材质翻到另一种变体 → 编译 → 翻回来」:three 的 program 缓存按
1898
- * cacheKey(含 flatShading / defines)分桶,编译一次就留在缓存里,之后
1899
- * `_applyShading()` 切过去只是取缓存。
1911
+ * 档位是模块级设置(影响之后新建的材质);已加载瓦片的材质在这里**原位重建**:
1912
+ * 不重拉瓦片、不重建几何,按创建时记录的参数(`userData.s3mOpts`)换一个
1913
+ * 新材质实例,并保留逐材质状态(选中编号、瓦片淡入、批量状态纹理)。
1914
+ * 切换后 program 需要重新编译一次(lambert / pbr 是不同着色器),这是唯一开销。
1915
+ */
1916
+ setMaterialQuality(q) {
1917
+ setMaterialQuality(q);
1918
+ this._rebuildStyledMaterials();
1919
+ this._requestRepaint();
1920
+ }
1921
+ /** 当前材质质感档位 */
1922
+ get materialQuality() {
1923
+ return getMaterialQuality();
1924
+ }
1925
+ /** 按创建参数原位重建所有 styled 材质(materialQuality 切换用) */
1926
+ _rebuildStyledMaterials() {
1927
+ // 逐材质 own uniform 的状态要在重建时搬过去,否则选中高亮 / 瓦片淡入会闪没
1928
+ const PRESERVED = [
1929
+ 'uSelBatch',
1930
+ 'uSelWhole',
1931
+ 'uBatchTex',
1932
+ 'uBatchTex2',
1933
+ 'uBatchTexWidth',
1934
+ 'uBatchTexActive',
1935
+ 'uTileFade',
1936
+ ];
1937
+ for (const p of this._pickables.values()) {
1938
+ const mesh = p.mesh;
1939
+ const raw = mesh.material;
1940
+ if (Array.isArray(raw))
1941
+ continue; // styled 材质恒为单材质;数组材质(点云等)不归这里管
1942
+ const old = raw;
1943
+ if (!old?.userData?.isStyled || !old.userData?.s3mOpts)
1944
+ continue;
1945
+ const opts = old.userData.s3mOpts;
1946
+ const fresh = createStyledMaterial({ ...opts, uniforms: this.uniforms });
1947
+ for (const key of PRESERVED) {
1948
+ const src = old.userData[key];
1949
+ const dst = fresh.userData[key];
1950
+ if (src && dst)
1951
+ dst.value = src.value;
1952
+ }
1953
+ mesh.material = fresh;
1954
+ old.dispose();
1955
+ }
1956
+ }
1957
+ /**
1958
+ * 预热着色 program,避免首帧同步编译。
1900
1959
  *
1901
- * 翻转期间材质是「错误变体」,所以用 `_prewarming` 让 renderFrame 跳过渲染——
1902
- * 少画一两帧看不出来,把平滑的楼画成平面的就很明显。
1903
- * 优先用 `compileAsync`(KHR_parallel_shader_compile),没有就退回同步 `compile`。
1960
+ * shading 改为 `uFlatShading` 共享 uniform 驱动后(见 `_applyShading`),
1961
+ * flat / smooth 共用同一个 program,不再存在「另一种变体」,也不需要
1962
+ * 「翻变体 → 编译 → 翻回来」的那套流程与 `_prewarming` 跳帧。这里只把当前
1963
+ * 唯一的 program 编一次(优先 `compileAsync`,KHR_parallel_shader_compile)。
1904
1964
  */
1905
1965
  async prewarmShading() {
1906
1966
  if (this._shadingPrewarmed || this._prewarming)
@@ -1910,24 +1970,17 @@ export class S3MViewer {
1910
1970
  const camera = this.camera;
1911
1971
  if (!r || !scene || !camera)
1912
1972
  return;
1913
- const mats = [];
1914
- const seen = new Set();
1973
+ // 场上还没有材质就没必要预热:program 会在首个材质出现时编译
1974
+ let hasMaterial = false;
1915
1975
  for (const p of this._pickables.values()) {
1916
- const m = styledMaterialOf(p.mesh);
1917
- if (!m || seen.has(m))
1918
- continue;
1919
- seen.add(m);
1920
- mats.push(m);
1976
+ if (styledMaterialOf(p.mesh)) {
1977
+ hasMaterial = true;
1978
+ break;
1979
+ }
1921
1980
  }
1922
- if (mats.length === 0)
1981
+ if (!hasMaterial)
1923
1982
  return;
1924
1983
  this._shadingPrewarmed = true;
1925
- this._prewarming = true;
1926
- // 当前是 smooth(flatShading = false)就预热 flat,反之预热 smooth
1927
- const target = this.style.shading === 'smooth';
1928
- const saved = mats.map((m) => m.flatShading);
1929
- for (const m of mats)
1930
- m.flatShading = target;
1931
1984
  try {
1932
1985
  const anyR = r;
1933
1986
  if (typeof anyR.compileAsync === 'function')
@@ -1936,16 +1989,9 @@ export class S3MViewer {
1936
1989
  r.compile(scene, camera);
1937
1990
  }
1938
1991
  catch {
1939
- // 预热失败不影响主流程:最坏情况退回「首次切换时编译一次」
1940
- }
1941
- finally {
1942
- for (let i = 0; i < mats.length; i++) {
1943
- mats[i].flatShading = saved[i];
1944
- mats[i].needsUpdate = true;
1945
- }
1946
- this._prewarming = false;
1947
- this._requestRepaint();
1992
+ // 预热失败不影响主流程:最坏情况退回「首次渲染时编译一次」
1948
1993
  }
1994
+ this._requestRepaint();
1949
1995
  }
1950
1996
  /**
1951
1997
  * 高度范围增量维护。
@@ -2165,7 +2211,7 @@ export class S3MViewer {
2165
2211
  * @param url 棱线缓存地址(二进制 Float32 序列:x,y,z,x,y,z,… 成对成段)
2166
2212
  */
2167
2213
  async loadCreases(url) {
2168
- const resp = await fetch(url);
2214
+ const resp = await authFetch(url, this._authenticate, 'creases');
2169
2215
  if (!resp.ok)
2170
2216
  throw new Error(`[s3m] 棱线缓存加载失败: ${resp.status} ${url}`);
2171
2217
  const buf = await resp.arrayBuffer();
@@ -3447,6 +3493,10 @@ export class S3MViewer {
3447
3493
  vertices: 0,
3448
3494
  triangles: 0,
3449
3495
  datasets: this.datasets.size,
3496
+ drawCalls: 0,
3497
+ programs: 0,
3498
+ textures: 0,
3499
+ geometries: 0,
3450
3500
  };
3451
3501
  for (const entry of this.datasets.values()) {
3452
3502
  const s = entry.tileset?.stats;
@@ -3459,6 +3509,15 @@ export class S3MViewer {
3459
3509
  total.vertices += s.vertices;
3460
3510
  total.triangles += s.triangles;
3461
3511
  }
3512
+ // GPU 侧预算观测:draw call / program / 显存驻留。没有渲染器(未 mount /
3513
+ // 纯解析场景)时保持 0,不抛错。
3514
+ const info = this.renderer?.info;
3515
+ if (info) {
3516
+ total.drawCalls = info.render.calls;
3517
+ total.programs = info.programs?.length ?? 0;
3518
+ total.textures = info.memory.textures;
3519
+ total.geometries = info.memory.geometries;
3520
+ }
3462
3521
  return total;
3463
3522
  }
3464
3523
  /** 所有数据集合并后的经纬度包围盒 */