s3m-maplibre 0.2.3 → 0.2.4

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/README.md CHANGED
@@ -45,6 +45,8 @@ iServer / 本地目录 → .scp 配置 + .s3mb 瓦片
45
45
  | 全局棱线 | ✅ | 优先用数据自带棱线包,没有才 CPU 现算 |
46
46
  | 单体级点选 + 属性 | ✅ | GPU 拾取,代价与面数无关 |
47
47
  | 实例化几何 | ✅ | `instanceMode` 16 / 17 |
48
+ | 瓦片同材质合批 | ✅ | 倾斜摄影大瓦片自动合批,大幅降低 DrawCall |
49
+ | 纹理变换与寻址 | ✅ | 支持 `texmodmatrix` 仿射变换与 `addressmode` |
48
50
  | DXT / WebP 纹理 | ✅ | |
49
51
  | Draco 压缩几何 | ❌ | 遇到会抛明确错误 |
50
52
  | KTX2 / CRN | ❌ | |
@@ -228,8 +230,6 @@ S3M 顶点(数据集局部 ENU,米)
228
230
 
229
231
  - **Draco 压缩几何**未实现。MeshOpt 已支持;遇到 Draco 会抛带说明的错误。
230
232
  - **地形遮挡**未实现:MapLibre 的地形深度没进 custom layer 的深度缓冲,建筑不会被地形裁掉。
231
- - 每个 `indexPackage` 一个 `Mesh`,倾斜摄影大瓦片需要合批。
232
- - `texmodmatrix`(纹理变换)未应用。
233
233
  - 跨城市量级的数据集叠加会重新引入 float32 精度问题。
234
234
 
235
235
  ---
@@ -29,6 +29,8 @@ export interface TileBuildStats {
29
29
  instanced: number;
30
30
  /** 数据自带的棱线包(primitiveType 13)数量 */
31
31
  edgeLines: number;
32
+ /** 合批前原有独立网格数 */
33
+ originalMeshes?: number;
32
34
  /** 被跳过的东西,加载完可以直接在控制台看 */
33
35
  skipped: string[];
34
36
  }
@@ -39,6 +41,11 @@ export interface BuildTileOptions {
39
41
  /** 是否显示数据自带的棱线包 */
40
42
  edges?: boolean;
41
43
  edgeColor?: THREE.ColorRepresentation;
44
+ /**
45
+ * 是否开启瓦片内同材质网格合批(默认 true)。
46
+ * 对倾斜摄影、大网格切片瓦片可减少 90%+ DrawCall,显著提高渲染帧率。
47
+ */
48
+ batching?: boolean;
42
49
  }
43
50
  export interface BuildTileResult {
44
51
  group: THREE.Group;
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryBuilder.d.ts","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAIV,UAAU,EACV,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAI1B;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AA8JjC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,mBAAmB;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;CAC3B;AAYD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAiP1B"}
1
+ {"version":3,"file":"GeometryBuilder.d.ts","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAIV,UAAU,EACV,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAI1B;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AA+KjC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,mBAAmB;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;CAC3B;AAYD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA0iB1B"}
@@ -56,21 +56,24 @@ function typedArrayOf(dtype, length) {
56
56
  }
57
57
  }
58
58
  function toBufferAttribute(attr) {
59
- const { data, components, stride, offsetInBytes, dtype = 'f32' } = attr;
59
+ const { data, stride, offsetInBytes, dtype = 'f32' } = attr;
60
+ const components = attr.components ?? attr.comp ?? 3;
60
61
  const bpe = bytesPerElement(dtype);
61
62
  const itemBytes = components * bpe;
63
+ const actualStride = stride ?? itemBytes;
64
+ const actualOffset = offsetInBytes ?? 0;
62
65
  const normalized = dtype === 'u8';
63
66
  // 非交错:整段直接铺开
64
- if (stride === itemBytes && offsetInBytes === 0) {
67
+ if (actualStride === itemBytes && actualOffset === 0) {
65
68
  const view = typedArray(dtype, data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength));
66
69
  return new THREE.BufferAttribute(view, components, normalized);
67
70
  }
68
71
  // 交错:逐元素抽取
69
- const count = Math.floor(data.byteLength / stride);
72
+ const count = Math.floor(data.byteLength / actualStride);
70
73
  const out = typedArrayOf(dtype, count * components);
71
74
  const dv = new DataView(data.buffer, data.byteOffset, data.byteLength);
72
75
  for (let i = 0; i < count; i++) {
73
- const base = i * stride + offsetInBytes;
76
+ const base = i * actualStride + actualOffset;
74
77
  for (let c = 0; c < components; c++) {
75
78
  const o = base + c * bpe;
76
79
  out[i * components + c] =
@@ -137,6 +140,15 @@ function materialUnits(m) {
137
140
  const raw = m?.textureStates ?? m?.textureunitstates ?? [];
138
141
  return raw.map((u) => u?.textureunitstate ?? u).filter((u) => !!u);
139
142
  }
143
+ /** 判断 4x4 矩阵是否为标准单位矩阵 */
144
+ function isIdentityMatrix4(m) {
145
+ if (m.length !== 16)
146
+ return false;
147
+ return (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 0 &&
148
+ m[4] === 0 && m[5] === 1 && m[6] === 0 && m[7] === 0 &&
149
+ m[8] === 0 && m[9] === 0 && m[10] === 1 && m[11] === 0 &&
150
+ m[12] === 0 && m[13] === 0 && m[14] === 0 && m[15] === 1);
151
+ }
140
152
  /** cullMode:1.x 用 none/clockwise/backward,3.x 用 CULL_NONE / CULL_BACK / CULL_FRONT */
141
153
  function resolveSide(m) {
142
154
  const cull = String(m?.cullMode ?? '').toUpperCase();
@@ -181,19 +193,50 @@ export async function buildTileObjects(tile, options = {}) {
181
193
  stats.skipped.push(`texture ${code} → ${decoded}`);
182
194
  }
183
195
  }
184
- // 2) 材质描述表
196
+ // 2) 材质描述表与材质池缓存
185
197
  const materialList = resolveMaterialList(tile.materials);
198
+ const materialCache = new Map();
186
199
  const makeMaterial = (code) => {
200
+ const cacheKey = code ?? '__default__';
201
+ const cached = materialCache.get(cacheKey);
202
+ if (cached)
203
+ return cached;
187
204
  const entry = materialList.find((e) => materialName(unwrapMaterial(e)) === code);
188
205
  const m = unwrapMaterial(entry);
189
206
  const units = materialUnits(m);
190
- const map = units[0] ? (textureByCode.get(materialName(units[0]) ?? units[0].id ?? '') ?? null) : null;
207
+ const unit0 = units[0];
208
+ let map = unit0 ? (textureByCode.get(materialName(unit0) ?? unit0.id ?? '') ?? null) : null;
209
+ // 检查并应用 texmodmatrix 纹理变换矩阵
210
+ const texMod = unit0?.texmodmatrix ?? unit0?.matrix;
211
+ if (map && Array.isArray(texMod) && texMod.length === 16 && !isIdentityMatrix4(texMod)) {
212
+ map = map.clone();
213
+ map.matrixAutoUpdate = false;
214
+ // S3M texmodmatrix 为 4x4 列主序矩阵 [m0..m15],对应 2D 仿射变换:
215
+ // u' = m[0]*u + m[4]*v + m[12]
216
+ // v' = m[1]*u + m[5]*v + m[13]
217
+ // Three.js Matrix3.set 按行主序接收参数
218
+ map.matrix.set(texMod[0], texMod[4], texMod[12], texMod[1], texMod[5], texMod[13], 0, 0, 1);
219
+ }
220
+ // 纹理寻址模式(addressmode)
221
+ if (map && unit0?.addressmode) {
222
+ const u = unit0.addressmode.u;
223
+ const v = unit0.addressmode.v;
224
+ if (u !== undefined || v !== undefined) {
225
+ if (map.matrixAutoUpdate) {
226
+ map = map.clone();
227
+ }
228
+ if (u !== undefined)
229
+ map.wrapS = u === 0 ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
230
+ if (v !== undefined)
231
+ map.wrapT = v === 0 ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
232
+ }
233
+ }
191
234
  const diffuse = m?.diffuse ?? { r: 1, g: 1, b: 1, a: 1 };
192
235
  const alphaMode = m?.alphaMode;
193
236
  const transparent = alphaMode === 'AM_BLEND' || (diffuse.a ?? 1) < 0.999 || m?.transparentsorting === true;
194
237
  // S3M 的 shininess 是旧式 0~128 高光指数,粗略映射到粗糙度
195
238
  const roughness = typeof m?.shininess === 'number' && m.shininess > 0 ? Math.max(0.15, 1 - m.shininess / 128) : 0.95;
196
- return createStyledMaterial({
239
+ const mat = createStyledMaterial({
197
240
  uniforms,
198
241
  map,
199
242
  color: new THREE.Color(diffuse.r ?? 1, diffuse.g ?? 1, diffuse.b ?? 1),
@@ -202,6 +245,8 @@ export async function buildTileObjects(tile, options = {}) {
202
245
  opacity: diffuse.a ?? 1,
203
246
  roughness,
204
247
  });
248
+ materialCache.set(cacheKey, mat);
249
+ return mat;
205
250
  };
206
251
  // 3) 骨架 → 几何。顶点是「骨架局部坐标」,真正位置由引用它的 Geode 矩阵决定。
207
252
  const geoCache = new Map();
@@ -262,6 +307,201 @@ export async function buildTileObjects(tile, options = {}) {
262
307
  });
263
308
  }
264
309
  const IDENTITY = new THREE.Matrix4();
310
+ const batchGroups = new Map();
311
+ const mergeBatchGeometries = (candidates, material, tileRef) => {
312
+ let totalVertices = 0;
313
+ let totalIndices = 0;
314
+ let hasNormal = false;
315
+ let hasUv = false;
316
+ let hasUv1 = false;
317
+ let hasAColor = false;
318
+ let hasABatchId = false;
319
+ for (const c of candidates) {
320
+ const g = c.cached.geometry;
321
+ const vCount = g.attributes.position?.count ?? 0;
322
+ totalVertices += vCount;
323
+ totalIndices += g.index ? g.index.count : vCount;
324
+ if (g.attributes.normal)
325
+ hasNormal = true;
326
+ if (g.attributes.uv)
327
+ hasUv = true;
328
+ if (g.attributes.uv1)
329
+ hasUv1 = true;
330
+ if (g.attributes.aColor)
331
+ hasAColor = true;
332
+ if (g.attributes.aBatchId)
333
+ hasABatchId = true;
334
+ }
335
+ const mergedPos = new Float32Array(totalVertices * 3);
336
+ const mergedNorm = hasNormal ? new Float32Array(totalVertices * 3) : null;
337
+ const mergedUv = hasUv ? new Float32Array(totalVertices * 2) : null;
338
+ const mergedUv1 = hasUv1 ? new Float32Array(totalVertices * 2) : null;
339
+ const mergedColor = hasAColor ? new Float32Array(totalVertices * 3) : null;
340
+ const mergedBatchId = hasABatchId ? new Float32Array(totalVertices) : null;
341
+ const IndexArrayType = totalVertices > 65535 ? Uint32Array : Uint16Array;
342
+ const mergedIndices = new IndexArrayType(totalIndices);
343
+ let vertexOffset = 0;
344
+ let indexOffset = 0;
345
+ const tmpVec = new THREE.Vector3();
346
+ const normalMatrix = new THREE.Matrix3();
347
+ const geoByBatchId = new Map();
348
+ for (const c of candidates) {
349
+ const g = c.cached.geometry;
350
+ const vCount = g.attributes.position.count;
351
+ const m = c.matrix;
352
+ const hasTransform = m && !m.equals(IDENTITY);
353
+ if (hasTransform && hasNormal) {
354
+ normalMatrix.getNormalMatrix(m);
355
+ }
356
+ if (c.geo.pickInfo) {
357
+ for (const entry of Object.values(c.geo.pickInfo)) {
358
+ if (typeof entry.batchId === 'number' && entry.batchId >= 0) {
359
+ geoByBatchId.set(entry.batchId, c.geo);
360
+ }
361
+ }
362
+ }
363
+ // 1. Position
364
+ const posArr = g.attributes.position.array;
365
+ for (let i = 0; i < vCount; i++) {
366
+ const srcIdx = i * 3;
367
+ const dstIdx = (vertexOffset + i) * 3;
368
+ if (hasTransform) {
369
+ tmpVec.set(posArr[srcIdx], posArr[srcIdx + 1], posArr[srcIdx + 2]).applyMatrix4(m);
370
+ mergedPos[dstIdx] = tmpVec.x;
371
+ mergedPos[dstIdx + 1] = tmpVec.y;
372
+ mergedPos[dstIdx + 2] = tmpVec.z;
373
+ }
374
+ else {
375
+ mergedPos[dstIdx] = posArr[srcIdx];
376
+ mergedPos[dstIdx + 1] = posArr[srcIdx + 1];
377
+ mergedPos[dstIdx + 2] = posArr[srcIdx + 2];
378
+ }
379
+ }
380
+ // 2. Normal
381
+ if (mergedNorm) {
382
+ const normAttr = g.attributes.normal;
383
+ if (normAttr) {
384
+ const normArr = normAttr.array;
385
+ for (let i = 0; i < vCount; i++) {
386
+ const srcIdx = i * 3;
387
+ const dstIdx = (vertexOffset + i) * 3;
388
+ if (hasTransform) {
389
+ tmpVec
390
+ .set(normArr[srcIdx], normArr[srcIdx + 1], normArr[srcIdx + 2])
391
+ .applyMatrix3(normalMatrix)
392
+ .normalize();
393
+ mergedNorm[dstIdx] = tmpVec.x;
394
+ mergedNorm[dstIdx + 1] = tmpVec.y;
395
+ mergedNorm[dstIdx + 2] = tmpVec.z;
396
+ }
397
+ else {
398
+ mergedNorm[dstIdx] = normArr[srcIdx];
399
+ mergedNorm[dstIdx + 1] = normArr[srcIdx + 1];
400
+ mergedNorm[dstIdx + 2] = normArr[srcIdx + 2];
401
+ }
402
+ }
403
+ }
404
+ }
405
+ // 3. UV
406
+ if (mergedUv) {
407
+ const uvAttr = g.attributes.uv;
408
+ if (uvAttr) {
409
+ const uvArr = uvAttr.array;
410
+ for (let i = 0; i < vCount; i++) {
411
+ mergedUv[(vertexOffset + i) * 2] = uvArr[i * 2];
412
+ mergedUv[(vertexOffset + i) * 2 + 1] = uvArr[i * 2 + 1];
413
+ }
414
+ }
415
+ }
416
+ // 4. UV1
417
+ if (mergedUv1) {
418
+ const uv1Attr = g.attributes.uv1;
419
+ if (uv1Attr) {
420
+ const uvArr = uv1Attr.array;
421
+ for (let i = 0; i < vCount; i++) {
422
+ mergedUv1[(vertexOffset + i) * 2] = uvArr[i * 2];
423
+ mergedUv1[(vertexOffset + i) * 2 + 1] = uvArr[i * 2 + 1];
424
+ }
425
+ }
426
+ }
427
+ // 5. aColor
428
+ if (mergedColor) {
429
+ const colAttr = g.attributes.aColor;
430
+ if (colAttr) {
431
+ const colArr = colAttr.array;
432
+ for (let i = 0; i < vCount; i++) {
433
+ mergedColor[(vertexOffset + i) * 3] = colArr[i * 3];
434
+ mergedColor[(vertexOffset + i) * 3 + 1] = colArr[i * 3 + 1];
435
+ mergedColor[(vertexOffset + i) * 3 + 2] = colArr[i * 3 + 2];
436
+ }
437
+ }
438
+ else {
439
+ for (let i = 0; i < vCount; i++) {
440
+ mergedColor[(vertexOffset + i) * 3] = 1;
441
+ mergedColor[(vertexOffset + i) * 3 + 1] = 1;
442
+ mergedColor[(vertexOffset + i) * 3 + 2] = 1;
443
+ }
444
+ }
445
+ }
446
+ // 6. aBatchId
447
+ if (mergedBatchId) {
448
+ const bAttr = g.attributes.aBatchId;
449
+ if (bAttr) {
450
+ const bArr = bAttr.array;
451
+ for (let i = 0; i < vCount; i++) {
452
+ mergedBatchId[vertexOffset + i] = bArr[i];
453
+ }
454
+ }
455
+ else {
456
+ for (let i = 0; i < vCount; i++) {
457
+ mergedBatchId[vertexOffset + i] = -1;
458
+ }
459
+ }
460
+ }
461
+ // 7. Indices
462
+ if (g.index) {
463
+ const idxArr = g.index.array;
464
+ const iCount = g.index.count;
465
+ for (let k = 0; k < iCount; k++) {
466
+ mergedIndices[indexOffset + k] = idxArr[k] + vertexOffset;
467
+ }
468
+ indexOffset += iCount;
469
+ }
470
+ else {
471
+ for (let k = 0; k < vCount; k++) {
472
+ mergedIndices[indexOffset + k] = k + vertexOffset;
473
+ }
474
+ indexOffset += vCount;
475
+ }
476
+ vertexOffset += vCount;
477
+ }
478
+ const mergedGeo = new THREE.BufferGeometry();
479
+ mergedGeo.setAttribute('position', new THREE.BufferAttribute(mergedPos, 3));
480
+ if (mergedNorm)
481
+ mergedGeo.setAttribute('normal', new THREE.BufferAttribute(mergedNorm, 3));
482
+ if (mergedUv)
483
+ mergedGeo.setAttribute('uv', new THREE.BufferAttribute(mergedUv, 2));
484
+ if (mergedUv1)
485
+ mergedGeo.setAttribute('uv1', new THREE.BufferAttribute(mergedUv1, 2));
486
+ if (mergedColor)
487
+ mergedGeo.setAttribute('aColor', new THREE.BufferAttribute(mergedColor, 3));
488
+ if (mergedBatchId)
489
+ mergedGeo.setAttribute('aBatchId', new THREE.BufferAttribute(mergedBatchId, 1));
490
+ mergedGeo.setIndex(new THREE.BufferAttribute(mergedIndices, 1));
491
+ mergedGeo.computeBoundingBox();
492
+ mergedGeo.computeBoundingSphere();
493
+ const mesh = new THREE.Mesh(mergedGeo, material);
494
+ mesh.userData.skeletonName = candidates[0].name;
495
+ mesh.userData.geoRef = candidates[0].geo;
496
+ mesh.userData.tileRef = tileRef;
497
+ mesh.userData.primitiveType = 4;
498
+ mesh.userData.isBatched = true;
499
+ mesh.userData.batchedCount = candidates.length;
500
+ if (geoByBatchId.size > 0) {
501
+ mesh.userData.geoByBatchId = geoByBatchId;
502
+ }
503
+ return mesh;
504
+ };
265
505
  const placeObject = (cached, name, geo, matrix) => {
266
506
  const { geometry, pack } = cached;
267
507
  const material = makeMaterial(pack.passNames?.[0]);
@@ -346,12 +586,32 @@ export async function buildTileObjects(tile, options = {}) {
346
586
  const geo = tile.geoPackage[name];
347
587
  if (!geo)
348
588
  continue;
589
+ const vp = geo.vertexPackage;
349
590
  for (let pi = 0; pi < info.indexPackages.length; pi++) {
350
591
  const cached = geoCache.get(`${name}|${pi}`);
351
- if (cached) {
592
+ if (!cached)
593
+ continue;
594
+ // 棱线包或实例化网格:保持单独摆放
595
+ if (isLinePrimitive(cached.pack.primitiveType) ||
596
+ (info.instanced && vp.instanceBuffer && vp.instanceCount > 0)) {
352
597
  placeObject(cached, name, geo, matrix);
353
598
  placed++;
599
+ continue;
354
600
  }
601
+ // 普通三角面网格:若开启合批,按材质进行分组收集
602
+ if (options.batching !== false && cached.pack.primitiveType === 4) {
603
+ const matKey = cached.pack.passNames?.[0] ?? '__default__';
604
+ let list = batchGroups.get(matKey);
605
+ if (!list) {
606
+ list = [];
607
+ batchGroups.set(matKey, list);
608
+ }
609
+ list.push({ cached, name, geo, matrix });
610
+ placed++;
611
+ continue;
612
+ }
613
+ placeObject(cached, name, geo, matrix);
614
+ placed++;
355
615
  }
356
616
  }
357
617
  }
@@ -362,10 +622,46 @@ export async function buildTileObjects(tile, options = {}) {
362
622
  const geo = tile.geoPackage[name];
363
623
  if (!geo)
364
624
  continue;
625
+ const vp = geo.vertexPackage;
365
626
  for (let pi = 0; pi < info.indexPackages.length; pi++) {
366
627
  const cached = geoCache.get(`${name}|${pi}`);
367
- if (cached)
628
+ if (!cached)
629
+ continue;
630
+ if (isLinePrimitive(cached.pack.primitiveType) ||
631
+ (info.instanced && vp.instanceBuffer && vp.instanceCount > 0)) {
368
632
  placeObject(cached, name, geo, null);
633
+ continue;
634
+ }
635
+ if (options.batching !== false && cached.pack.primitiveType === 4) {
636
+ const matKey = cached.pack.passNames?.[0] ?? '__default__';
637
+ let list = batchGroups.get(matKey);
638
+ if (!list) {
639
+ list = [];
640
+ batchGroups.set(matKey, list);
641
+ }
642
+ list.push({ cached, name, geo, matrix: null });
643
+ continue;
644
+ }
645
+ placeObject(cached, name, geo, null);
646
+ }
647
+ }
648
+ }
649
+ // 执行同材质几何合批
650
+ if (batchGroups.size > 0) {
651
+ for (const [matKey, list] of batchGroups) {
652
+ stats.originalMeshes = (stats.originalMeshes ?? 0) + list.length;
653
+ if (list.length === 1) {
654
+ placeObject(list[0].cached, list[0].name, list[0].geo, list[0].matrix);
655
+ }
656
+ else {
657
+ const material = makeMaterial(matKey === '__default__' ? undefined : matKey);
658
+ const batchedMesh = mergeBatchGeometries(list, material, tile);
659
+ group.add(batchedMesh);
660
+ objects.push(batchedMesh);
661
+ stats.meshes++;
662
+ for (const item of list) {
663
+ stats.triangles += (item.cached.pack.indexCount || 0) / 3;
664
+ }
369
665
  }
370
666
  }
371
667
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryBuilder.js","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAWhF,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,SAAS,eAAe,CAAC,aAAqB;IAC5C,+BAA+B;IAC/B,OAAO,aAAa,KAAK,cAAc,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,4EAA4E;AAE5E,SAAS,eAAe,CAAC,KAAgB;IACvC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,KAAgB,EAAE,MAAuB;IAC3D,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,IAAI;YACP,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC;YACE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB,EAAE,MAAc;IACpD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,IAAI;YACP,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC;YACE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqB;IAC9C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACxE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC;IAElC,aAAa;IACb,IAAI,MAAM,KAAK,SAAS,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtG,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,WAAW;IACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;YACzB,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;gBACrB,KAAK,KAAK,IAAI;oBACZ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,KAAK,KAAK,KAAK;wBACf,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;wBACvB,CAAC,CAAC,KAAK,KAAK,KAAK;4BACf,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;4BACvB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,OAAO,CAAC,SAAuB;IACtC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,sDAAsD;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,qCAAqC;AACrC,SAAS,gBAAgB,CAAC,IAA4B,EAAE,WAAmB;IACzE,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;QACrC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7C,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAwBD,yEAAyE;AACzE,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAyB,CAAC;IACzD,MAAM,CAAC,GAAG,GAAkD,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,KAAmC;IACzD,OAAO,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,CAA+C;IACnE,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,CAA6B;IAClD,MAAM,GAAG,GAAG,CAAC,EAAE,aAAa,IAAI,CAAC,EAAE,iBAAiB,IAAI,EAAE,CAAC;IAC3D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,CAA6B;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAyCD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAgB,EAChB,UAA4B,EAAE;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,EAAE,CAAC;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,GAAG,EAAyB,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAmB;QAC5B,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC;QACnD,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;QACtD,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;IAEtC,QAAQ;IACR,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,WAAW;IACX,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAkB,EAAE;QACrD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvG,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAEzD,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC;QAC/B,MAAM,WAAW,GAAG,SAAS,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAE3G,0CAA0C;QAC1C,MAAM,SAAS,GACb,OAAO,CAAC,EAAE,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErG,OAAO,oBAAoB,CAAC;YAC1B,QAAQ;YACR,GAAG;YACH,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpB,WAAW;YACX,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;YACvB,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;QAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC;QAC1C,MAAM,UAAU,GAA0C,EAAE,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;QACxG,IAAI,SAAS,GAA2B,IAAI,CAAC;QAC7C,IAAI,SAAS,GAA2B,IAAI,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,SAAS,CAAC,YAAY;YACtD,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;gBAAE,SAAS;YAC3C,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;gBAAE,SAAS,GAAG,IAAI,CAAC;iBAC3C,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,SAAS,GAAG,IAAI,CAAC;iBAClD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAAE,UAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBAC5E,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;gBAAE,UAAU,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBACpE,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBAAE,UAAU,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,8BAA8B;QAC9B,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,UAAU,CAAC,QAAQ,GAAG,SAAS;YAC7B,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC9B,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAChG,oEAAoE;QACpE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;QAE9B,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG;gBAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;gBAC3B,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAE3C,uCAAuC;YACvC,iEAAiE;YACjE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7E,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YAClC,CAAC;YAED,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC9B,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,CAClB,MAAsB,EACtB,IAAY,EACZ,GAAoB,EACpB,MAA4B,EACZ,EAAE;QAClB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,MAAwC,CAAC;QAE7C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;QAE7B,yCAAyC;QACzC,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACjE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;YACvC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;YACtB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;YACnC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC;YACrC,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;YAChF,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;YAChH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACrB,mCAAmC;gBACnC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACtC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;oBAClB,+BAA+B;oBAC/B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACtE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBAChE,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,SAAS,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5C,IAAI,SAAS,CAAC,aAAa;gBAAE,SAAS,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACxE,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC;YAChC,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,qFAAqF;QACrF,0DAA0D;QAC1D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC;YAAE,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,wCAAwC;IACxC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YACvB,kDAAkD;YAClD,wDAAwD;YACxD,yCAAyC;YACzC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;oBACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;wBACvC,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7C,IAAI,MAAM;oBAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE7D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"GeometryBuilder.js","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"S3MLayer.d.ts","sourceRoot":"","sources":["../../src/render/S3MLayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"S3MLayer.d.ts","sourceRoot":"","sources":["../../src/render/S3MLayer.ts"],"names":[],"mappings":"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"}
@@ -808,7 +808,8 @@ export class S3MLayer {
808
808
  if (!ref)
809
809
  return null;
810
810
  const ud = ref.mesh.userData;
811
- const { smid, segments } = resolveFeature(ud.geoRef, hit.batchId);
811
+ const geoRef = ud.geoByBatchId?.get(hit.batchId) ?? ud.geoRef;
812
+ const { smid, segments } = resolveFeature(geoRef, hit.batchId);
812
813
  if (this._isFeatureHidden(smid, hit.batchId))
813
814
  return null;
814
815
  const box = measureSegments(ref.mesh.geometry, segments);