s3m-three 0.4.18 → 0.4.19

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 (130) hide show
  1. package/dist/browser/assets/s3mWorker-4iTAmWIu.js +1 -0
  2. package/dist/browser/s3m-three.iife.ext-three.js +406 -91
  3. package/dist/browser/s3m-three.iife.js +434 -119
  4. package/dist/core/GaussianSplat.d.ts +64 -0
  5. package/dist/core/GaussianSplat.d.ts.map +1 -0
  6. package/dist/core/GaussianSplat.js +139 -0
  7. package/dist/core/GaussianSplat.js.map +1 -0
  8. package/dist/core/S3M1Parser.d.ts +1 -1
  9. package/dist/core/S3M1Parser.d.ts.map +1 -1
  10. package/dist/core/S3M1Parser.js +320 -25
  11. package/dist/core/S3M1Parser.js.map +1 -1
  12. package/dist/core/S3MBParser.d.ts.map +1 -1
  13. package/dist/core/S3MBParser.js +13 -0
  14. package/dist/core/S3MBParser.js.map +1 -1
  15. package/dist/core/S3MBlockParser.d.ts.map +1 -1
  16. package/dist/core/S3MBlockParser.js +56 -14
  17. package/dist/core/S3MBlockParser.js.map +1 -1
  18. package/dist/core/SplatLod.d.ts +36 -0
  19. package/dist/core/SplatLod.d.ts.map +1 -0
  20. package/dist/core/SplatLod.js +54 -0
  21. package/dist/core/SplatLod.js.map +1 -0
  22. package/dist/core/SplatProjection.d.ts +75 -0
  23. package/dist/core/SplatProjection.d.ts.map +1 -0
  24. package/dist/core/SplatProjection.js +162 -0
  25. package/dist/core/SplatProjection.js.map +1 -0
  26. package/dist/core/SplatSort.d.ts +13 -0
  27. package/dist/core/SplatSort.d.ts.map +1 -0
  28. package/dist/core/SplatSort.js +14 -0
  29. package/dist/core/SplatSort.js.map +1 -0
  30. package/dist/core/TexCoordZ.d.ts +94 -0
  31. package/dist/core/TexCoordZ.d.ts.map +1 -0
  32. package/dist/core/TexCoordZ.js +125 -0
  33. package/dist/core/TexCoordZ.js.map +1 -0
  34. package/dist/core/TextureDecode.d.ts +19 -0
  35. package/dist/core/TextureDecode.d.ts.map +1 -1
  36. package/dist/core/TextureDecode.js +53 -11
  37. package/dist/core/TextureDecode.js.map +1 -1
  38. package/dist/core/TileGeometry.d.ts +29 -0
  39. package/dist/core/TileGeometry.d.ts.map +1 -1
  40. package/dist/core/TileGeometry.js +130 -14
  41. package/dist/core/TileGeometry.js.map +1 -1
  42. package/dist/core/degradations.d.ts +37 -0
  43. package/dist/core/degradations.d.ts.map +1 -0
  44. package/dist/core/degradations.js +32 -0
  45. package/dist/core/degradations.js.map +1 -0
  46. package/dist/core/types.d.ts +36 -0
  47. package/dist/core/types.d.ts.map +1 -1
  48. package/dist/index.d.ts +7 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/render/DatasetManager.d.ts +11 -0
  53. package/dist/render/DatasetManager.d.ts.map +1 -1
  54. package/dist/render/DatasetManager.js +2 -0
  55. package/dist/render/DatasetManager.js.map +1 -1
  56. package/dist/render/FeatureStyleManager.d.ts.map +1 -1
  57. package/dist/render/FeatureStyleManager.js +7 -5
  58. package/dist/render/FeatureStyleManager.js.map +1 -1
  59. package/dist/render/GeometryBuilder.d.ts +24 -0
  60. package/dist/render/GeometryBuilder.d.ts.map +1 -1
  61. package/dist/render/GeometryBuilder.js +196 -5
  62. package/dist/render/GeometryBuilder.js.map +1 -1
  63. package/dist/render/Picker.d.ts.map +1 -1
  64. package/dist/render/Picker.js +19 -5
  65. package/dist/render/Picker.js.map +1 -1
  66. package/dist/render/S3MViewer.d.ts +69 -0
  67. package/dist/render/S3MViewer.d.ts.map +1 -1
  68. package/dist/render/S3MViewer.js +222 -12
  69. package/dist/render/S3MViewer.js.map +1 -1
  70. package/dist/render/SplatMaterial.d.ts +103 -0
  71. package/dist/render/SplatMaterial.d.ts.map +1 -0
  72. package/dist/render/SplatMaterial.js +388 -0
  73. package/dist/render/SplatMaterial.js.map +1 -0
  74. package/dist/render/SplatSorter.d.ts +14 -0
  75. package/dist/render/SplatSorter.d.ts.map +1 -0
  76. package/dist/render/SplatSorter.js +59 -0
  77. package/dist/render/SplatSorter.js.map +1 -0
  78. package/dist/render/StyleMaterial.d.ts +48 -0
  79. package/dist/render/StyleMaterial.d.ts.map +1 -1
  80. package/dist/render/StyleMaterial.js +292 -69
  81. package/dist/render/StyleMaterial.js.map +1 -1
  82. package/dist/render/TextureFactory.d.ts +10 -0
  83. package/dist/render/TextureFactory.d.ts.map +1 -1
  84. package/dist/render/TextureFactory.js +35 -5
  85. package/dist/render/TextureFactory.js.map +1 -1
  86. package/dist/render/lightingPreset.d.ts +53 -0
  87. package/dist/render/lightingPreset.d.ts.map +1 -0
  88. package/dist/render/lightingPreset.js +36 -0
  89. package/dist/render/lightingPreset.js.map +1 -0
  90. package/dist/render/materialAlpha.d.ts +51 -0
  91. package/dist/render/materialAlpha.d.ts.map +1 -0
  92. package/dist/render/materialAlpha.js +68 -0
  93. package/dist/render/materialAlpha.js.map +1 -0
  94. package/dist/tileset/S3MTileset.d.ts +42 -0
  95. package/dist/tileset/S3MTileset.d.ts.map +1 -1
  96. package/dist/tileset/S3MTileset.js +52 -1
  97. package/dist/tileset/S3MTileset.js.map +1 -1
  98. package/dist/vendor/browser-node-stub.js +10 -0
  99. package/dist/worker/s3mWorker.js +1166 -979
  100. package/dist/worker/s3mWorker.js.map +1 -1
  101. package/docs/API.md +55 -1
  102. package/docs/FORMAT-NOTES.md +338 -0
  103. package/package.json +1 -1
  104. package/src/core/GaussianSplat.ts +175 -0
  105. package/src/core/S3M1Parser.ts +330 -24
  106. package/src/core/S3MBParser.ts +18 -0
  107. package/src/core/S3MBlockParser.ts +56 -11
  108. package/src/core/SplatLod.ts +83 -0
  109. package/src/core/SplatProjection.ts +231 -0
  110. package/src/core/SplatSort.ts +30 -0
  111. package/src/core/TexCoordZ.ts +160 -0
  112. package/src/core/TextureDecode.ts +63 -11
  113. package/src/core/TileGeometry.ts +138 -14
  114. package/src/core/degradations.ts +74 -0
  115. package/src/core/types.ts +32 -0
  116. package/src/index.ts +8 -1
  117. package/src/render/DatasetManager.ts +10 -0
  118. package/src/render/FeatureStyleManager.ts +7 -5
  119. package/src/render/GeometryBuilder.ts +239 -6
  120. package/src/render/Picker.ts +21 -5
  121. package/src/render/S3MViewer.ts +255 -11
  122. package/src/render/SplatMaterial.ts +433 -0
  123. package/src/render/SplatSorter.ts +59 -0
  124. package/src/render/StyleMaterial.ts +339 -69
  125. package/src/render/TextureFactory.ts +39 -5
  126. package/src/render/lightingPreset.ts +76 -0
  127. package/src/render/materialAlpha.ts +75 -0
  128. package/src/tileset/S3MTileset.ts +78 -1
  129. package/src/vendor/browser-node-stub.js +10 -0
  130. package/dist/browser/assets/s3mWorker-BjPOUgjg.js +0 -1
@@ -50,6 +50,11 @@ export interface PrimitiveAttributes {
50
50
  aAtlasRect?: PlainAttribute;
51
51
  aAtlasRect1?: PlainAttribute;
52
52
  aSecUv?: PlainAttribute;
53
+ /**
54
+ * uv 第三分量(文件里的 `custom0`,官方 `aTextureCoordMatrix`)。
55
+ * 只有存在该流时才产生;解码语义见 core/TexCoordZ.ts。
56
+ */
57
+ aTexCoordZ?: PlainAttribute;
53
58
  }
54
59
  export interface PrimitiveData {
55
60
  /** 首个候选骨架名(userData.skeletonName) */
@@ -74,6 +79,8 @@ export interface TileGeometryStats {
74
79
  edgeLines: number;
75
80
  /** 合批前独立网格数(batching 生效时 > meshes) */
76
81
  originalMeshes?: number;
82
+ /** 被剔除的「同单体共面重复」三角形数(数据自重叠,见 dropCoincidentTriangles) */
83
+ deduped?: number;
77
84
  skipped: string[];
78
85
  }
79
86
  export interface TileGeometryData {
@@ -84,6 +91,28 @@ export interface AssembleOptions {
84
91
  /** 是否对 primitiveType=4 的三角面做瓦片内同材质合批(默认 true) */
85
92
  batching?: boolean;
86
93
  }
94
+ /**
95
+ * 丢弃「同单体、同位置、同绕向」的重复三角形。
96
+ *
97
+ * 为什么需要:OSGB 转出来的 S3M 里确实存在**模型自重叠**。实测
98
+ * `3D-BIMbuilding-2` 的 `Tile_-85071_248749_0000` 中 geo E2F8F0 有 7156 个三角形,
99
+ * 其中 2276 个与前面某个三角形的三个顶点坐标完全相同(4 位小数,0.1 mm 内),
100
+ * `Tile_-85071_248750_0000` 的 geo 386340 是 58/156 —— 文件级统计,不是我们合批造出来的。
101
+ *
102
+ * 两个共面三角形各自光栅化时深度值只差最后几位,深度缓冲分不出谁在前,
103
+ * 屏幕上就是一片斜向摩尔纹(用户说的「模型重叠的斜线」);若两份材质不同,
104
+ * 还会随绘制顺序闪成另一种颜色。
105
+ *
106
+ * 只丢**同 batchId** 的重复:跨单体的重叠是数据本身两个单体压在一起,
107
+ * 丢掉任何一个都会让那个 SMID 变得不可见 / 不可拾取,只能留给业务层处理。
108
+ *
109
+ * @param quantum 顶点坐标量化步长(米)。1 mm 足以合并「同一条边」的重复,
110
+ * 又不会误伤真正相邻的两个面。
111
+ */
112
+ export declare function dropCoincidentTriangles(index: Uint16Array | Uint32Array, positions: ArrayLike<number>, batchIds: ArrayLike<number> | null, quantum?: number): {
113
+ index: Uint16Array | Uint32Array;
114
+ dropped: number;
115
+ };
87
116
  /**
88
117
  * 瓦片几何组装入口。与 GeometryBuilder 的摆放/分组逻辑逐位对齐,
89
118
  * 但只产出纯数据 —— three 包装在渲染层。
@@ -1 +1 @@
1
- {"version":3,"file":"TileGeometry.d.ts","sourceRoot":"","sources":["../../src/core/TileGeometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAIV,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,IAAI,CAAC;AAQjC,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AA4BD,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAgClE;AAkFD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAwB1F;AAID,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAmWD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAkHtG"}
1
+ {"version":3,"file":"TileGeometry.d.ts","sourceRoot":"","sources":["../../src/core/TileGeometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAIV,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,IAAI,CAAC;AAQjC,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AA4BD,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CAgClE;AA6FD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAwB1F;AAID,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqXD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,GAAG,WAAW,EAChC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAClC,OAAO,SAAO,GACb;IAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA8CvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAmItG"}
@@ -68,8 +68,16 @@ export function deinterleave(attr) {
68
68
  return { array: out, components, normalized };
69
69
  }
70
70
  /** 把 u8 顶点色转成 float vec3,供着色器直接相乘(原 toColorAttribute) */
71
+ /**
72
+ * 顶点色解成 RGBA。
73
+ *
74
+ * **必须带 alpha**:BIM 数据里"材质不透明、靠顶点色 alpha 表达半透明"是常见做法。
75
+ * 实测 `3D-BIMbuilding-2` 的 SMID 4421(`WhiteMaterial_1`,无纹理、`diffuse.a=1`)
76
+ * 顶点色是 u8 `(0,128,192,63)`,alpha = 0.247 —— 之前只取 RGB,这一片就变成实心青色。
77
+ * 官方片元里 `baseColorWithAlpha = vColor` 是 vec4,走的就是这条路。
78
+ */
71
79
  function colorData(attr, vertexCount) {
72
- const out = new Float32Array(vertexCount * 3);
80
+ const out = new Float32Array(vertexCount * 4);
73
81
  if (!attr) {
74
82
  out.fill(1);
75
83
  return out;
@@ -77,11 +85,14 @@ function colorData(attr, vertexCount) {
77
85
  const src = attr.data;
78
86
  const comp = attr.components ?? 4;
79
87
  const scale = attr.dtype === 'u8' ? 1 / 255 : 1;
88
+ // 只有 RGB 的旧数据补 alpha = 1,避免留下 0(那会整片全透明)
89
+ const hasAlpha = comp >= 4;
80
90
  for (let i = 0; i < vertexCount; i++) {
81
91
  const o = i * comp;
82
- out[i * 3] = (src[o] ?? 255) * scale;
83
- out[i * 3 + 1] = (src[o + 1] ?? 255) * scale;
84
- out[i * 3 + 2] = (src[o + 2] ?? 255) * scale;
92
+ out[i * 4] = (src[o] ?? 255) * scale;
93
+ out[i * 4 + 1] = (src[o + 1] ?? 255) * scale;
94
+ out[i * 4 + 2] = (src[o + 2] ?? 255) * scale;
95
+ out[i * 4 + 3] = hasAlpha ? (src[o + 3] ?? 255) * scale : 1;
85
96
  }
86
97
  return out;
87
98
  }
@@ -239,6 +250,7 @@ function mergeCandidates(candidates) {
239
250
  let hasUv = false;
240
251
  let hasUv1 = false;
241
252
  let hasAtlas = false;
253
+ let hasTexZ = false;
242
254
  for (const c of candidates) {
243
255
  totalVertices += c.vertexCount;
244
256
  totalIndices += c.index ? c.indexCount : c.vertexCount;
@@ -250,16 +262,19 @@ function mergeCandidates(candidates) {
250
262
  hasUv1 = true;
251
263
  if (c.attrs.aAtlasRect)
252
264
  hasAtlas = true;
265
+ if (c.attrs.aTexCoordZ)
266
+ hasTexZ = true;
253
267
  }
254
268
  const mergedPos = { array: new Float32Array(totalVertices * 3), components: 3, normalized: false };
255
269
  const mergedNorm = hasNormal ? { array: new Float32Array(totalVertices * 3), components: 3, normalized: false } : null;
256
270
  const mergedUv = hasUv ? { array: new Float32Array(totalVertices * 2), components: 2, normalized: false } : null;
257
271
  const mergedUv1 = hasUv1 ? { array: new Float32Array(totalVertices * 2), components: 2, normalized: false } : null;
258
- const mergedColor = { array: new Float32Array(totalVertices * 3), components: 3, normalized: false };
272
+ const mergedColor = { array: new Float32Array(totalVertices * 4), components: 4, normalized: false };
259
273
  const mergedBatchId = { array: new Float32Array(totalVertices), components: 1, normalized: false };
260
274
  const mergedRect0 = hasAtlas ? { array: new Float32Array(totalVertices * 4), components: 4, normalized: false } : null;
261
275
  const mergedRect1 = hasAtlas ? { array: new Float32Array(totalVertices * 4), components: 4, normalized: false } : null;
262
276
  const mergedSecUv = hasAtlas ? { array: new Float32Array(totalVertices * 2), components: 2, normalized: false } : null;
277
+ const mergedTexZ = hasTexZ ? { array: new Float32Array(totalVertices), components: 1, normalized: false } : null;
263
278
  const mergedIndices = (totalVertices > 65535 ? new Uint32Array(totalIndices) : new Uint16Array(totalIndices));
264
279
  const tmp = [0, 0, 0];
265
280
  let vertexOffset = 0;
@@ -273,6 +288,8 @@ function mergeCandidates(candidates) {
273
288
  const normArr = attrs.normal?.array;
274
289
  const uvArr = attrs.uv?.array;
275
290
  const uv1Arr = attrs.uv1?.array;
291
+ const tzArr = attrs.aTexCoordZ?.array;
292
+ const tzOut = mergedTexZ?.array;
276
293
  const colArr = attrs.aColor.array;
277
294
  const bArr = attrs.aBatchId.array;
278
295
  const posOut = mergedPos.array;
@@ -318,16 +335,21 @@ function mergeCandidates(candidates) {
318
335
  uv1Out[dst * 2] = uv1Arr[i * 2];
319
336
  uv1Out[dst * 2 + 1] = uv1Arr[i * 2 + 1];
320
337
  }
321
- // aColor
338
+ // aTexCoordZ(uv 第三分量):缺这条流的候选补 0 = 单位变换
339
+ if (tzOut)
340
+ tzOut[dst] = tzArr ? tzArr[i] : 0;
341
+ // aColor(RGBA:alpha 是 4421 这类「材质不透明、顶点半透明」的唯一来源)
322
342
  if (colArr) {
323
- colOut[dst * 3] = colArr[i * 3];
324
- colOut[dst * 3 + 1] = colArr[i * 3 + 1];
325
- colOut[dst * 3 + 2] = colArr[i * 3 + 2];
343
+ colOut[dst * 4] = colArr[i * 4];
344
+ colOut[dst * 4 + 1] = colArr[i * 4 + 1];
345
+ colOut[dst * 4 + 2] = colArr[i * 4 + 2];
346
+ colOut[dst * 4 + 3] = colArr[i * 4 + 3] ?? 1;
326
347
  }
327
348
  else {
328
- colOut[dst * 3] = 1;
329
- colOut[dst * 3 + 1] = 1;
330
- colOut[dst * 3 + 2] = 1;
349
+ colOut[dst * 4] = 1;
350
+ colOut[dst * 4 + 1] = 1;
351
+ colOut[dst * 4 + 2] = 1;
352
+ colOut[dst * 4 + 3] = 1;
331
353
  }
332
354
  // aBatchId
333
355
  bOut[dst] = bArr ? bArr[i] : -1;
@@ -384,6 +406,7 @@ function mergeCandidates(candidates) {
384
406
  aAtlasRect: mergedRect0 ?? undefined,
385
407
  aAtlasRect1: mergedRect1 ?? undefined,
386
408
  aSecUv: mergedSecUv ?? undefined,
409
+ aTexCoordZ: mergedTexZ ?? undefined,
387
410
  },
388
411
  index: mergedIndices,
389
412
  bounds,
@@ -401,7 +424,7 @@ function assembleSkeleton(name, geo, tile, skipped) {
401
424
  const vertexCount = vp.verticesCount || 0;
402
425
  const attrs = {
403
426
  position: deinterleave(positionAttr),
404
- aColor: { array: new Float32Array(0), components: 3, normalized: false },
427
+ aColor: { array: new Float32Array(0), components: 4, normalized: false },
405
428
  aBatchId: { array: new Float32Array(0), components: 1, normalized: false },
406
429
  };
407
430
  let colorAttr = null;
@@ -409,6 +432,7 @@ function assembleSkeleton(name, geo, tile, skipped) {
409
432
  let normalData = null;
410
433
  let uvData = null;
411
434
  let uv1Data = null;
435
+ let texCoordZData = null;
412
436
  for (const attr of vp.vertexAttributes) {
413
437
  if (attr.divisor !== undefined)
414
438
  continue; // 实例属性不进顶点流
@@ -424,8 +448,14 @@ function assembleSkeleton(name, geo, tile, skipped) {
424
448
  uvData = deinterleave(attr);
425
449
  else if (attr.semantic === 'uv2')
426
450
  uv1Data = deinterleave(attr);
451
+ // custom0 = uv 的第三分量,官方 aTextureCoordMatrix:决定「这张贴图用不用、
452
+ // 用图集的哪个子区域、按 2 的几次幂缩放」。BIM/OSGB 转出来的数据依赖它,
453
+ // 丢掉就会把本该纯色的墙面贴上整张材质图。语义见 core/TexCoordZ.ts。
454
+ else if (attr.semantic === 'custom0' && (attr.components ?? 1) >= 1) {
455
+ texCoordZData = deinterleave(attr);
456
+ }
427
457
  }
428
- attrs.aColor = { array: colorData(colorAttr, vertexCount), components: 3, normalized: false };
458
+ attrs.aColor = { array: colorData(colorAttr, vertexCount), components: 4, normalized: false };
429
459
  attrs.aBatchId = batchAttr
430
460
  ? { array: deinterleave(batchAttr).array, components: 1, normalized: false }
431
461
  : { array: new Float32Array(vertexCount).fill(-1), components: 1, normalized: false };
@@ -435,6 +465,8 @@ function assembleSkeleton(name, geo, tile, skipped) {
435
465
  attrs.uv = uvData;
436
466
  if (uv1Data)
437
467
  attrs.uv1 = uv1Data;
468
+ if (texCoordZData)
469
+ attrs.aTexCoordZ = texCoordZData;
438
470
  // S3MBLOCK 图集:逐顶点带子区域矩形;烘焙图用第二套 UV(aSecUv)
439
471
  const rects = tile.atlasRects?.[name];
440
472
  if (rects) {
@@ -493,6 +525,71 @@ function primitiveOf(skeletonName, geoName, geo, asm, pack, matrix) {
493
525
  bounds: computeBounds(attrs.position.array, vertexCount),
494
526
  };
495
527
  }
528
+ /**
529
+ * 丢弃「同单体、同位置、同绕向」的重复三角形。
530
+ *
531
+ * 为什么需要:OSGB 转出来的 S3M 里确实存在**模型自重叠**。实测
532
+ * `3D-BIMbuilding-2` 的 `Tile_-85071_248749_0000` 中 geo E2F8F0 有 7156 个三角形,
533
+ * 其中 2276 个与前面某个三角形的三个顶点坐标完全相同(4 位小数,0.1 mm 内),
534
+ * `Tile_-85071_248750_0000` 的 geo 386340 是 58/156 —— 文件级统计,不是我们合批造出来的。
535
+ *
536
+ * 两个共面三角形各自光栅化时深度值只差最后几位,深度缓冲分不出谁在前,
537
+ * 屏幕上就是一片斜向摩尔纹(用户说的「模型重叠的斜线」);若两份材质不同,
538
+ * 还会随绘制顺序闪成另一种颜色。
539
+ *
540
+ * 只丢**同 batchId** 的重复:跨单体的重叠是数据本身两个单体压在一起,
541
+ * 丢掉任何一个都会让那个 SMID 变得不可见 / 不可拾取,只能留给业务层处理。
542
+ *
543
+ * @param quantum 顶点坐标量化步长(米)。1 mm 足以合并「同一条边」的重复,
544
+ * 又不会误伤真正相邻的两个面。
545
+ */
546
+ export function dropCoincidentTriangles(index, positions, batchIds, quantum = 1e-3) {
547
+ const triCount = Math.floor(index.length / 3);
548
+ if (triCount === 0)
549
+ return { index, dropped: 0 };
550
+ const inv = 1 / quantum;
551
+ const keyOf = (v) => `${Math.round(positions[v * 3] * inv)},${Math.round(positions[v * 3 + 1] * inv)},${Math.round(positions[v * 3 + 2] * inv)}`;
552
+ const seen = new Set();
553
+ const out = new (index instanceof Uint32Array ? Uint32Array : Uint16Array)(index.length);
554
+ let w = 0;
555
+ let dropped = 0;
556
+ for (let t = 0; t < triCount; t++) {
557
+ const a = index[t * 3];
558
+ const b = index[t * 3 + 1];
559
+ const c = index[t * 3 + 2];
560
+ const ka = keyOf(a);
561
+ const kb = keyOf(b);
562
+ const kc = keyOf(c);
563
+ // 把字典序最小的顶点转到首位,**保持绕向**:
564
+ // 绕向相同的两份才是「同一个面画了两遍」;正反两份是有意做的双面片,
565
+ // 它们共面且绕向相反,深度相等时后者覆盖前者、着色一致,不会出摩尔纹。
566
+ let k1 = ka;
567
+ let k2 = kb;
568
+ let k3 = kc;
569
+ if (kb <= ka && kb <= kc) {
570
+ k1 = kb;
571
+ k2 = kc;
572
+ k3 = ka;
573
+ }
574
+ else if (kc <= ka && kc <= kb) {
575
+ k1 = kc;
576
+ k2 = ka;
577
+ k3 = kb;
578
+ }
579
+ const key = k1 + k2 + k3 + (batchIds ? `#${batchIds[a]}` : '');
580
+ if (seen.has(key)) {
581
+ dropped++;
582
+ continue;
583
+ }
584
+ seen.add(key);
585
+ out[w++] = a;
586
+ out[w++] = b;
587
+ out[w++] = c;
588
+ }
589
+ if (dropped === 0)
590
+ return { index, dropped: 0 };
591
+ return { index: out.slice(0, w), dropped };
592
+ }
496
593
  /**
497
594
  * 瓦片几何组装入口。与 GeometryBuilder 的摆放/分组逻辑逐位对齐,
498
595
  * 但只产出纯数据 —— three 包装在渲染层。
@@ -602,6 +699,25 @@ export function assembleTileGeometry(tile, options = {}) {
602
699
  }
603
700
  }
604
701
  }
702
+ // 数据自重叠:同单体、同位置、同绕向的重复三角形会互相压深度,出斜向摩尔纹。
703
+ // 只在**单 geo** 的 primitive 上做:合批产物里多个 geo 的 batchId 各自从 0 起,
704
+ // 混在一起会把「不同单体恰好共面」误判成同一条。
705
+ for (const p of primitives) {
706
+ if (p.primitiveType !== 4 || !p.index)
707
+ continue;
708
+ if (p.geoNames.length > 1)
709
+ continue;
710
+ const positions = p.attributes.position?.array;
711
+ if (!positions)
712
+ continue;
713
+ const batchIds = p.attributes.aBatchId?.array ?? null;
714
+ const { index, dropped } = dropCoincidentTriangles(p.index, positions, batchIds);
715
+ if (dropped > 0) {
716
+ p.index = index;
717
+ p.indexCount = index.length;
718
+ stats.deduped = (stats.deduped ?? 0) + dropped;
719
+ }
720
+ }
605
721
  return { primitives, stats };
606
722
  }
607
723
  //# sourceMappingURL=TileGeometry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileGeometry.js","sourceRoot":"","sources":["../../src/core/TileGeometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileGeometry.js","sourceRoot":"","sources":["../../src/core/TileGeometry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 降级上报:解析成功、但能力不完整的数据要让调用方看得见
3
+ *
4
+ * 分界:**「解析不了」应该抛错,「解析得了但画不出该有的样子」必须显式说明。**
5
+ * 前者是 fail loudly,后者最容易被写成静默降级 —— 用户看到一个能跑但不对的画面,
6
+ * 会去怀疑数据、怀疑网络、怀疑显卡,很难怀疑到「这个分支还没做完」。
7
+ *
8
+ * 目前唯一一类降级是 3DGS:数据里的 `gsScale` / `gsRotation` 已经保留成顶点属性,
9
+ * 但那 4 字节的量化格式没有标定,所以只能按 Points 渲染,画不出 EWA splatting。
10
+ * 详见 `docs/FORMAT-NOTES.md` 第九节。
11
+ *
12
+ * 策略:
13
+ * 'warn'(默认) —— 首次遇到告警一次,画照画。不传参时与旧版行为一致(旧版不抛)。
14
+ * 'throw' —— 直接拒绝这块瓦片,标 `permanent` 让调度器不要重试。
15
+ * 给「宁可不出图,也不要出一张错的图」的场景用。
16
+ * 'silent' —— 只记录到 `stats.degradations`,不告警。给已经自己接管提示的 UI 用。
17
+ */
18
+ export type DegradationKind = 'gaussian-splatting-points';
19
+ export type UnsupportedPolicy = 'warn' | 'throw' | 'silent';
20
+ export interface DegradationPlan {
21
+ /** 本次新出现的降级项(调用方据此告警) */
22
+ fresh: DegradationKind[];
23
+ /** 合并后的已知清单,写回 `stats.degradations` */
24
+ known: DegradationKind[];
25
+ /** 需要输出的告警文案(`silent` 时为空) */
26
+ messages: string[];
27
+ /** `throw` 策略下要抛的错(已标 `permanent`,调度器不要重试) */
28
+ error?: Error;
29
+ }
30
+ /**
31
+ * 纯函数:给定「本次遇到的降级项」和「已经报过的」,算出要做什么。
32
+ *
33
+ * 去重是必须的:一个 3DGS 服务一上来几十块瓦片都是同一个原因,
34
+ * 不去重就是几十条一模一样的告警,把真正有用的日志冲掉。
35
+ */
36
+ export declare function planDegradations(incoming: readonly DegradationKind[], known: readonly DegradationKind[], policy: UnsupportedPolicy): DegradationPlan;
37
+ //# sourceMappingURL=degradations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degradations.d.ts","sourceRoot":"","sources":["../../src/core/degradations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAU5D,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,uCAAuC;IACvC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,MAAM,EAAE,iBAAiB,GACxB,eAAe,CAuBjB"}
@@ -0,0 +1,32 @@
1
+ /** 告警文案要自己解释清楚「看到了什么」和「为什么不对」,不要只说一句 "unsupported" */
2
+ const MESSAGES = {
3
+ 'gaussian-splatting-points': '[s3m] 数据声明是 3DGS(高斯泼溅),但骨架里没有 gsScale / gsRotation 这两条流,' +
4
+ '只能按点云渲染。这不是数据损坏,但也不是预期的泼溅效果 —— ' +
5
+ '若确认是导出配置问题,可以 unsupported: "throw" 让它直接报错。',
6
+ };
7
+ /**
8
+ * 纯函数:给定「本次遇到的降级项」和「已经报过的」,算出要做什么。
9
+ *
10
+ * 去重是必须的:一个 3DGS 服务一上来几十块瓦片都是同一个原因,
11
+ * 不去重就是几十条一模一样的告警,把真正有用的日志冲掉。
12
+ */
13
+ export function planDegradations(incoming, known, policy) {
14
+ const knownSet = new Set(known);
15
+ const fresh = [];
16
+ for (const kind of incoming) {
17
+ if (!knownSet.has(kind)) {
18
+ knownSet.add(kind);
19
+ fresh.push(kind);
20
+ }
21
+ }
22
+ const messages = policy === 'warn' ? fresh.map((k) => MESSAGES[k] ?? `[s3m] 降级:${k}`) : [];
23
+ if (policy === 'throw' && fresh.length > 0) {
24
+ const err = new Error(`[s3m] 数据包含当前实现不完整的特性,已按 unsupported: "throw" 拒绝:${fresh.join(', ')}。` +
25
+ `详见 docs/FORMAT-NOTES.md`);
26
+ // 格式层面的能力缺失,重试一万次也不会变好
27
+ err.permanent = true;
28
+ return { fresh, known: [...knownSet], messages, error: err };
29
+ }
30
+ return { fresh, known: [...knownSet], messages };
31
+ }
32
+ //# sourceMappingURL=degradations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degradations.js","sourceRoot":"","sources":["../../src/core/degradations.ts"],"names":[],"mappings":"AAqBA,sDAAsD;AACtD,MAAM,QAAQ,GAAoC;IAChD,2BAA2B,EACzB,0DAA0D;QAC1D,iCAAiC;QACjC,4CAA4C;CAC/C,CAAC;AAaF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAoC,EACpC,KAAiC,EACjC,MAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3F,IAAI,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,mDAAmD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACpE,yBAAyB,CACO,CAAC;QACrC,uBAAuB;QACvB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * 这里只放「跨模块共享」的结构定义。模块内部的私有类型各自就近声明。
5
5
  */
6
6
  import type { Color } from 'three';
7
+ import type { DegradationKind } from './degradations.js';
7
8
  export interface Vec3 {
8
9
  x: number;
9
10
  y: number;
@@ -181,6 +182,14 @@ export interface ParsedTile {
181
182
  materials: unknown;
182
183
  pickInfo: unknown;
183
184
  extensions?: unknown;
185
+ /**
186
+ * 解析成功、但渲染能力不完整的项(机器可读)。
187
+ *
188
+ * 空 / 不传 = 这份数据的每一项能力都实现了。目前只会由 3DGS 数据填上
189
+ * `'gaussian-splatting-points'` —— 那种数据能加载、能看出轮廓,但画不出泼溅。
190
+ * 处置策略见 `core/degradations.ts` 与 `S3MTilesetOptions.unsupported`。
191
+ */
192
+ degradations?: DegradationKind[];
184
193
  /** 实际消费的字节数,应与 bytesTotal 相等 */
185
194
  bytesRead: number;
186
195
  bytesTotal: number;
@@ -207,6 +216,20 @@ export interface Stats {
207
216
  textures: number;
208
217
  /** 显存里驻留的几何数(renderer.info.memory.geometries) */
209
218
  geometries: number;
219
+ /**
220
+ * 泼溅瓦片里高斯最长轴的中位长度(米),用来估「屏幕上一个高斯多大」。
221
+ * 非泼溅数据为 undefined;顶点统计接口也会带上这个可选字段。
222
+ */
223
+ splatSigma?: number;
224
+ /** 泼溅瓦片里的高斯实例数;非泼溅数据为 undefined */
225
+ splatCount?: number;
226
+ /**
227
+ * 当前场景里出现过的降级项(去重)。空数组 = 所有数据的能力都完整实现了。
228
+ *
229
+ * 这是给 UI 用的:状态栏 / 诊断面板可以直接读它,不必去翻 console。
230
+ * 语义与 `ParsedTile.degradations` 一致,只是从「单块瓦片」聚到「整个场景」。
231
+ */
232
+ degradations: DegradationKind[];
210
233
  }
211
234
  export interface FeatureAttributes {
212
235
  smid: number | null;
@@ -305,6 +328,19 @@ export interface StyleUniforms {
305
328
  uAmbientGain?: {
306
329
  value: number;
307
330
  };
331
+ /**
332
+ * 金属度覆盖(0~1,**负数 = 不覆盖**,保持材质自身的值)。
333
+ *
334
+ * PBR 材质才有意义:注入在 `metalnessmap_fragment` 之后直接改写 metalnessFactor,
335
+ * 不重建材质也就不会重编译 program。lambert 光照模型没有这个 chunk,会被忽略。
336
+ */
337
+ uMetalness?: {
338
+ value: number;
339
+ };
340
+ /** 粗糙度覆盖(0~1,负数 = 不覆盖)。同上,只有 pbr 生效。 */
341
+ uRoughness?: {
342
+ value: number;
343
+ };
308
344
  /** 双纹理交叉淡化插值因子(0~1,0 = 状态 A,1 = 状态 B) */
309
345
  uBatchMix?: {
310
346
  value: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}