s3m-three 0.3.0 → 0.3.1
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 +1 -1
- package/dist/browser/s3m-three.iife.ext-three.js +163 -15
- package/dist/browser/s3m-three.iife.js +190 -42
- package/dist/core/AtlasAlpha.d.ts +31 -0
- package/dist/core/AtlasAlpha.d.ts.map +1 -0
- package/dist/core/AtlasAlpha.js +82 -0
- package/dist/core/AtlasAlpha.js.map +1 -0
- package/dist/core/AtlasPack.d.ts +57 -0
- package/dist/core/AtlasPack.d.ts.map +1 -0
- package/dist/core/AtlasPack.js +81 -0
- package/dist/core/AtlasPack.js.map +1 -0
- package/dist/core/AtlasUpgrade.d.ts +68 -0
- package/dist/core/AtlasUpgrade.d.ts.map +1 -0
- package/dist/core/AtlasUpgrade.js +154 -0
- package/dist/core/AtlasUpgrade.js.map +1 -0
- package/dist/core/DXTTextureDecode.d.ts.map +1 -1
- package/dist/core/DXTTextureDecode.js +28 -6
- package/dist/core/DXTTextureDecode.js.map +1 -1
- package/dist/core/Draco.d.ts +52 -0
- package/dist/core/Draco.d.ts.map +1 -0
- package/dist/core/Draco.js +323 -0
- package/dist/core/Draco.js.map +1 -0
- package/dist/core/MeshOpt.d.ts +14 -3
- package/dist/core/MeshOpt.d.ts.map +1 -1
- package/dist/core/MeshOpt.js +101 -18
- package/dist/core/MeshOpt.js.map +1 -1
- package/dist/core/S3M1Parser.d.ts +16 -0
- package/dist/core/S3M1Parser.d.ts.map +1 -0
- package/dist/core/S3M1Parser.js +367 -0
- package/dist/core/S3M1Parser.js.map +1 -0
- package/dist/core/S3MBParser.d.ts +43 -1
- package/dist/core/S3MBParser.d.ts.map +1 -1
- package/dist/core/S3MBParser.js +101 -23
- package/dist/core/S3MBParser.js.map +1 -1
- package/dist/core/S3MBlockParser.d.ts +209 -0
- package/dist/core/S3MBlockParser.d.ts.map +1 -0
- package/dist/core/S3MBlockParser.js +789 -0
- package/dist/core/S3MBlockParser.js.map +1 -0
- package/dist/core/TextureFormat.d.ts +0 -1
- package/dist/core/TextureFormat.d.ts.map +1 -1
- package/dist/core/TextureFormat.js +19 -2
- package/dist/core/TextureFormat.js.map +1 -1
- package/dist/core/types.d.ts +65 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- 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.map +1 -1
- package/dist/render/DatasetManager.js +5 -3
- package/dist/render/DatasetManager.js.map +1 -1
- package/dist/render/GeometryBuilder.d.ts +2 -0
- package/dist/render/GeometryBuilder.d.ts.map +1 -1
- package/dist/render/GeometryBuilder.js +185 -16
- package/dist/render/GeometryBuilder.js.map +1 -1
- package/dist/render/GroundManager.d.ts +57 -1
- package/dist/render/GroundManager.d.ts.map +1 -1
- package/dist/render/GroundManager.js +149 -21
- package/dist/render/GroundManager.js.map +1 -1
- package/dist/render/Picker.d.ts.map +1 -1
- package/dist/render/Picker.js +12 -4
- package/dist/render/Picker.js.map +1 -1
- package/dist/render/PointCloudMaterial.d.ts +36 -0
- package/dist/render/PointCloudMaterial.d.ts.map +1 -0
- package/dist/render/PointCloudMaterial.js +159 -0
- package/dist/render/PointCloudMaterial.js.map +1 -0
- package/dist/render/S3MViewer.d.ts +19 -0
- package/dist/render/S3MViewer.d.ts.map +1 -1
- package/dist/render/S3MViewer.js +143 -22
- package/dist/render/S3MViewer.js.map +1 -1
- package/dist/render/StyleMaterial.d.ts +6 -0
- package/dist/render/StyleMaterial.d.ts.map +1 -1
- package/dist/render/StyleMaterial.js +125 -2
- package/dist/render/StyleMaterial.js.map +1 -1
- package/dist/render/TextureFactory.d.ts.map +1 -1
- package/dist/render/TextureFactory.js +64 -10
- package/dist/render/TextureFactory.js.map +1 -1
- package/dist/tileset/S3MTileset.d.ts +152 -1
- package/dist/tileset/S3MTileset.d.ts.map +1 -1
- package/dist/tileset/S3MTileset.js +669 -53
- package/dist/tileset/S3MTileset.js.map +1 -1
- package/dist/vendor/crunch_decoder.module.js +12 -18
- package/dist/vendor/draco_decoder.module.js +3178 -0
- package/docs/API.md +110 -9
- package/package.json +1 -1
- package/src/core/AtlasAlpha.ts +82 -0
- package/src/core/AtlasPack.ts +127 -0
- package/src/core/AtlasUpgrade.ts +182 -0
- package/src/core/DXTTextureDecode.ts +28 -6
- package/src/core/Draco.ts +409 -0
- package/src/core/MeshOpt.ts +124 -18
- package/src/core/S3M1Parser.ts +430 -0
- package/src/core/S3MBParser.ts +112 -21
- package/src/core/S3MBlockParser.ts +953 -0
- package/src/core/TextureFormat.ts +20 -2
- package/src/core/types.ts +63 -0
- package/src/index.ts +2 -1
- package/src/render/DatasetManager.ts +5 -5
- package/src/render/GeometryBuilder.ts +207 -15
- package/src/render/GroundManager.ts +174 -20
- package/src/render/Picker.ts +13 -4
- package/src/render/PointCloudMaterial.ts +174 -0
- package/src/render/S3MViewer.ts +140 -24
- package/src/render/StyleMaterial.ts +135 -2
- package/src/render/TextureFactory.ts +67 -11
- package/src/tileset/S3MTileset.ts +701 -58
- package/src/vendor/crunch_decoder.module.js +12 -18
- package/src/vendor/draco_decoder.module.d.ts +128 -0
- package/src/vendor/draco_decoder.module.js +3178 -0
|
@@ -23,10 +23,48 @@ import { createSharedUniforms, createStyledMaterial } from './StyleMaterial.js';
|
|
|
23
23
|
* 满屏都是放射状的三角面。按 LineSegments 画出来,正好是整片建筑轮廓线。
|
|
24
24
|
*/
|
|
25
25
|
export const LINE_PRIMITIVE = 13;
|
|
26
|
+
/** primitiveType = 1:点云包。索引是点序号,画成三角面就是满屏彩色尖刺。 */
|
|
27
|
+
export const POINT_PRIMITIVE = 1;
|
|
26
28
|
function isLinePrimitive(primitiveType) {
|
|
27
29
|
// 1 = 点,2 = 线段,3 = 折线,13 = 棱线包
|
|
28
30
|
return primitiveType === LINE_PRIMITIVE || primitiveType === 2 || primitiveType === 3;
|
|
29
31
|
}
|
|
32
|
+
function isPointPrimitive(primitiveType) {
|
|
33
|
+
return primitiveType === POINT_PRIMITIVE;
|
|
34
|
+
}
|
|
35
|
+
/* ------------------------------------------------------------------ 图集 UV */
|
|
36
|
+
/**
|
|
37
|
+
* S3MBLOCK 图集的 UV 一律用几何自带的 uv0 原值,这里不再做任何重算。
|
|
38
|
+
*
|
|
39
|
+
* 走过三轮弯路才定下来(每一条都不要再试):
|
|
40
|
+
* 1. 「按世界尺度 fract」—— uv0 是建模工具留下的逐岛坐标,不是世界投影,
|
|
41
|
+
* 全局跨度 279 只是所有岛拼起来的包围盒,拿它除以瓦片尺寸算出的
|
|
42
|
+
* 「1 个 uv 周期 = 1.65 m」是错的;
|
|
43
|
+
* 2. 「按 binding 分组、逐面 0..1」—— 等于把作者排好的映射丢掉,
|
|
44
|
+
* 一面墙强行铺一整张精灵,长墙被横向拉糊;
|
|
45
|
+
* 3. 「按 uv 跨度 ÷ 精灵像素取整重复」—— 同上,而且依赖精灵像素尺寸这个
|
|
46
|
+
* 与几何无关的量。
|
|
47
|
+
*
|
|
48
|
+
* 官方引擎的做法(iClient3D 12.1.1,VS 里 getUVMatrixForBatch / FS 里
|
|
49
|
+
* czm_getTexColorForS3M)就是:fract(uv0) 直接乘子区域尺寸再平移到子区域,
|
|
50
|
+
* 一个 uv 周期 = 一张精灵,作者在 uv0 里已经把重复次数写死了。
|
|
51
|
+
* 唯一需要额外处理的是子区域右 1/3 那条内联 mip 链,见 StyleMaterial.s3mAtlasSample。
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* 点云共享材质:顶点色直接上屏,不受光照影响。
|
|
55
|
+
* 固定像素尺寸(sizeAttenuation: false),远近点大小一致,高空浏览时不会缩成一团。
|
|
56
|
+
*/
|
|
57
|
+
let pointCloudMaterial = null;
|
|
58
|
+
function getPointCloudMaterial() {
|
|
59
|
+
if (!pointCloudMaterial) {
|
|
60
|
+
pointCloudMaterial = new THREE.PointsMaterial({
|
|
61
|
+
size: 2,
|
|
62
|
+
sizeAttenuation: false,
|
|
63
|
+
vertexColors: true,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return pointCloudMaterial;
|
|
67
|
+
}
|
|
30
68
|
/* ------------------------------------------------------------------ 顶点流 */
|
|
31
69
|
function bytesPerElement(dtype) {
|
|
32
70
|
return dtype === 'u8' ? 1 : dtype === 'u16' ? 2 : 4;
|
|
@@ -120,6 +158,8 @@ function toColorAttribute(attr, vertexCount) {
|
|
|
120
158
|
}
|
|
121
159
|
return new THREE.BufferAttribute(out, 3);
|
|
122
160
|
}
|
|
161
|
+
/** SuperMap 内置水面(`103.water`)的基色:偏深的青蓝,配合低粗糙度出一点天光反射 */
|
|
162
|
+
const WATER_COLOR = new THREE.Color(0x1d4e63);
|
|
123
163
|
/** 3.x 是 `{materials:[...]}`,1.x/2.x 是 `{material:[...]}`,桌面导出偶尔直接给数组 */
|
|
124
164
|
function resolveMaterialList(doc) {
|
|
125
165
|
if (!doc)
|
|
@@ -181,12 +221,30 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
181
221
|
});
|
|
182
222
|
group.userData.hasNativeEdges = false;
|
|
183
223
|
// 1) 纹理
|
|
224
|
+
//
|
|
225
|
+
// 缓存 key 不能只用 atlas id:拼图(AtlasPack)是**逐块**做的,同一个 id 在 LOD 兄弟块里
|
|
226
|
+
// 参与的拼图集合可能不同、落位也不同。只按 id 复用会把别块的排布拿过来,
|
|
227
|
+
// 而 aAtlasRect 是本块的 —— 整块贴错图。带 packKey 的按「id#集合签名」隔离。
|
|
228
|
+
const texKeyOf = (code) => {
|
|
229
|
+
const t = tile.textures?.[code];
|
|
230
|
+
return t?.packKey ? `${code}#${t.packKey}` : code;
|
|
231
|
+
};
|
|
184
232
|
for (const [code, tex] of Object.entries(tile.textures ?? {})) {
|
|
185
|
-
|
|
186
|
-
|
|
233
|
+
// 同一个图集 id 会被很多瓦片共用:先到的那块可能只拿到内嵌缩略图(120x184),
|
|
234
|
+
// 后面的块换成了高清版(240x304)。只按 id 判「缓存已有」会让高清永远进不来,
|
|
235
|
+
// 满屏都是马赛克。所以尺寸变大时必须重解码并覆盖。
|
|
236
|
+
const key = texKeyOf(code);
|
|
237
|
+
const prev = textureByCode.get(key);
|
|
238
|
+
if (prev) {
|
|
239
|
+
const img = prev.image;
|
|
240
|
+
const prevPixels = (img?.width ?? 0) * (img?.height ?? 0);
|
|
241
|
+
if (prevPixels >= (tex.width ?? 0) * (tex.height ?? 0))
|
|
242
|
+
continue;
|
|
243
|
+
textureByCode.delete(key);
|
|
244
|
+
}
|
|
187
245
|
const { texture, decoded } = await createTexture(tex);
|
|
188
246
|
if (texture) {
|
|
189
|
-
textureByCode.set(
|
|
247
|
+
textureByCode.set(key, texture);
|
|
190
248
|
stats.textures++;
|
|
191
249
|
}
|
|
192
250
|
else {
|
|
@@ -200,12 +258,18 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
200
258
|
// 就是「81 个 mesh 抢一份 uniform,最后写的赢」——白模瓦片里按单体操作会大面积失效。
|
|
201
259
|
// 材质对象本身很轻(program 由 customProgramCacheKey 复用),一栋一个不心疼。
|
|
202
260
|
const materialList = resolveMaterialList(tile.materials);
|
|
203
|
-
const makeMaterial = (code) => {
|
|
261
|
+
const makeMaterial = (code, hasAtlasRect = false) => {
|
|
204
262
|
const entry = materialList.find((e) => materialName(unwrapMaterial(e)) === code);
|
|
205
263
|
const m = unwrapMaterial(entry);
|
|
206
264
|
const units = materialUnits(m);
|
|
207
265
|
const unit0 = units[0];
|
|
208
|
-
let map = unit0 ? (textureByCode.get(materialName(unit0) ?? unit0.id ?? '') ?? null) : null;
|
|
266
|
+
let map = unit0 ? (textureByCode.get(texKeyOf(materialName(unit0) ?? unit0.id ?? '')) ?? null) : null;
|
|
267
|
+
// S3MBLOCK 的烘焙图(unit1 / BakeTex)是光照烘焙,官方与 base 相乘;缺它建筑就是一片平白
|
|
268
|
+
const unit1 = units[1];
|
|
269
|
+
const noBake = globalThis.__S3M_NO_BAKE === true;
|
|
270
|
+
const secMap = hasAtlasRect && unit1 && !noBake
|
|
271
|
+
? (textureByCode.get(texKeyOf(materialName(unit1) ?? unit1.id ?? '')) ?? null)
|
|
272
|
+
: null;
|
|
209
273
|
// 检查并应用 texmodmatrix 纹理变换矩阵
|
|
210
274
|
const texMod = unit0?.texmodmatrix ?? unit0?.matrix;
|
|
211
275
|
if (map && Array.isArray(texMod) && texMod.length === 16 && !isIdentityMatrix4(texMod)) {
|
|
@@ -233,17 +297,31 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
233
297
|
}
|
|
234
298
|
const diffuse = m?.diffuse ?? { r: 1, g: 1, b: 1, a: 1 };
|
|
235
299
|
const alphaMode = m?.alphaMode;
|
|
236
|
-
|
|
300
|
+
// SuperMap 的内置水面:纹理单元 id 是 `103.water`,块里**根本没有像素**
|
|
301
|
+
// (实测 Waters 的 s3mb 只有 1081 字节,textures = 0,材质 diffuse 还是纯白)。
|
|
302
|
+
// 以前当白色漫反射渲染,整片湖就是一块白板。这里按内置水面材质上色。
|
|
303
|
+
const isWater = [unit0, unit1].some((u) => /\.water$/i.test(String(materialName(u) ?? u?.id ?? '')));
|
|
304
|
+
const transparent = alphaMode === 'AM_BLEND' || (diffuse.a ?? 1) < 0.999 || m?.transparentsorting === true || (isWater && !map);
|
|
237
305
|
// S3M 的 shininess 是旧式 0~128 高光指数,粗略映射到粗糙度
|
|
238
306
|
const roughness = typeof m?.shininess === 'number' && m.shininess > 0 ? Math.max(0.15, 1 - m.shininess / 128) : 0.95;
|
|
307
|
+
// 镂空图集(S3MBLOCK):建筑照片是异形 alpha 抠图,轮廓顶点会采到 alpha=0 的像素,
|
|
308
|
+
// 不丢弃的话就是成片的黑面。cutoff 取材质自带的 alphaCutoff(实测 0.01)。
|
|
309
|
+
// rect 是图集里的原始子区域(含右 1/3 的内联 mip 列),不做任何裁切,
|
|
310
|
+
// 这里保留 alphaTest 只为挡掉轮廓外的零星像素,不会再出现整面墙被抠空。
|
|
311
|
+
const alphaTest = map?.userData?.s3mHasAlpha
|
|
312
|
+
? Math.max(m?.alphaCutoff ?? 0, 0.01)
|
|
313
|
+
: 0;
|
|
239
314
|
const mat = createStyledMaterial({
|
|
240
315
|
uniforms,
|
|
241
316
|
map,
|
|
242
|
-
color: new THREE.Color(diffuse.r ?? 1, diffuse.g ?? 1, diffuse.b ?? 1),
|
|
317
|
+
color: isWater && !map ? WATER_COLOR.clone() : new THREE.Color(diffuse.r ?? 1, diffuse.g ?? 1, diffuse.b ?? 1),
|
|
243
318
|
side: resolveSide(m),
|
|
244
319
|
transparent,
|
|
245
|
-
opacity: diffuse.a ?? 1,
|
|
246
|
-
roughness,
|
|
320
|
+
opacity: isWater && !map ? 0.86 : (diffuse.a ?? 1),
|
|
321
|
+
roughness: isWater && !map ? 0.12 : roughness,
|
|
322
|
+
alphaTest,
|
|
323
|
+
atlas: hasAtlasRect && !!map,
|
|
324
|
+
secMap,
|
|
247
325
|
});
|
|
248
326
|
return mat;
|
|
249
327
|
};
|
|
@@ -282,12 +360,45 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
282
360
|
attributes.aBatchId = batchAttr
|
|
283
361
|
? toBufferAttribute(batchAttr)
|
|
284
362
|
: new THREE.BufferAttribute(new Float32Array(vertexCount).fill(-1), 1);
|
|
363
|
+
// S3MBLOCK 图集:逐顶点带子区域矩形,平铺的 fract 交给片元做(顶点上做会画反)。
|
|
364
|
+
// 烘焙图(材质 unit1)用第二套原始 UV,这里另开一个 aSecUv 槽位,不跟 three 的 uv1 语义纠缠。
|
|
365
|
+
const rects = tile.atlasRects?.[name];
|
|
366
|
+
if (rects) {
|
|
367
|
+
attributes.aAtlasRect = new THREE.BufferAttribute(rects.uv ?? new Float32Array(vertexCount * 4), 4);
|
|
368
|
+
// 没有第二套 UV 的骨架不做烘焙:给一个退化矩形,片元里据此跳过
|
|
369
|
+
const uv1 = attributes.uv1;
|
|
370
|
+
if (rects.uv2 && uv1) {
|
|
371
|
+
attributes.aAtlasRect1 = new THREE.BufferAttribute(rects.uv2, 4);
|
|
372
|
+
attributes.aSecUv = uv1;
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
attributes.aAtlasRect1 = new THREE.BufferAttribute(new Float32Array(vertexCount * 4), 4);
|
|
376
|
+
attributes.aSecUv = attributes.uv ?? new THREE.BufferAttribute(new Float32Array(vertexCount * 2), 2);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
285
379
|
const instanced = vp.instanceIndex !== -1 && (vp.instanceMode === 16 || vp.instanceMode === 17);
|
|
286
380
|
// 注意:indexPackages 属于 Skeleton(geoPackage[name]),不在 vertexPackage 里
|
|
287
|
-
|
|
381
|
+
//
|
|
382
|
+
// 一个索引包都没有的骨架 = 纯点集:高斯泼溅(3DGaussianSplatting)和无索引点云
|
|
383
|
+
// 都是这种——顶点就是点,没有任何三角形可画。不补一个「顶点即点」的伪包,
|
|
384
|
+
// 下面就不会产出任何对象,整块瓦片最后落到「tile 无可用几何」被丢掉。
|
|
385
|
+
let packs = geo.indexPackages ?? [];
|
|
386
|
+
if (packs.length === 0 && vertexCount > 0) {
|
|
387
|
+
packs = [
|
|
388
|
+
{
|
|
389
|
+
indexCount: 0,
|
|
390
|
+
indexType: 0,
|
|
391
|
+
useIndex: 0,
|
|
392
|
+
primitiveType: POINT_PRIMITIVE,
|
|
393
|
+
indices: null,
|
|
394
|
+
passNames: [],
|
|
395
|
+
},
|
|
396
|
+
];
|
|
397
|
+
}
|
|
398
|
+
skeletonInfo.set(name, { indexPackages: packs, instanced });
|
|
288
399
|
stats.vertices += vertexCount;
|
|
289
|
-
|
|
290
|
-
|
|
400
|
+
packs.forEach((pack, pi) => {
|
|
401
|
+
let geometry = new THREE.BufferGeometry();
|
|
291
402
|
for (const [k, v] of Object.entries(attributes))
|
|
292
403
|
geometry.setAttribute(k, v);
|
|
293
404
|
const idx = toIndex(pack);
|
|
@@ -297,7 +408,10 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
297
408
|
geometry.setDrawRange(0, vertexCount);
|
|
298
409
|
// 如果数据本身没有法线且是三角网格,必须在绑定了 index 之后计算法线
|
|
299
410
|
// 绝不能在未索引的 attributes.position 上算,否则非连续顶点会导致法线朝向错乱甚至越界 NaN 导致死黑面
|
|
300
|
-
|
|
411
|
+
// 线 / 点包不需要法线
|
|
412
|
+
if (!isLinePrimitive(pack.primitiveType) &&
|
|
413
|
+
!isPointPrimitive(pack.primitiveType) &&
|
|
414
|
+
!geometry.getAttribute('normal')) {
|
|
301
415
|
geometry.computeVertexNormals();
|
|
302
416
|
}
|
|
303
417
|
geometry.computeBoundingBox();
|
|
@@ -315,6 +429,7 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
315
429
|
let hasUv1 = false;
|
|
316
430
|
let hasAColor = false;
|
|
317
431
|
let hasABatchId = false;
|
|
432
|
+
let hasAtlas = false;
|
|
318
433
|
for (const c of candidates) {
|
|
319
434
|
const g = c.cached.geometry;
|
|
320
435
|
const vCount = g.attributes.position?.count ?? 0;
|
|
@@ -330,6 +445,8 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
330
445
|
hasAColor = true;
|
|
331
446
|
if (g.attributes.aBatchId)
|
|
332
447
|
hasABatchId = true;
|
|
448
|
+
if (g.attributes.aAtlasRect)
|
|
449
|
+
hasAtlas = true;
|
|
333
450
|
}
|
|
334
451
|
const mergedPos = new Float32Array(totalVertices * 3);
|
|
335
452
|
const mergedNorm = hasNormal ? new Float32Array(totalVertices * 3) : null;
|
|
@@ -337,6 +454,25 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
337
454
|
const mergedUv1 = hasUv1 ? new Float32Array(totalVertices * 2) : null;
|
|
338
455
|
const mergedColor = hasAColor ? new Float32Array(totalVertices * 3) : null;
|
|
339
456
|
const mergedBatchId = hasABatchId ? new Float32Array(totalVertices) : null;
|
|
457
|
+
const mergedRect0 = hasAtlas ? new Float32Array(totalVertices * 4) : null;
|
|
458
|
+
const mergedRect1 = hasAtlas ? new Float32Array(totalVertices * 4) : null;
|
|
459
|
+
const mergedSecUv = hasAtlas ? new Float32Array(totalVertices * 2) : null;
|
|
460
|
+
/** 逐顶点拷一个 n 分量的浮点属性;缺失时用 fallbackRect / 0 兜底 */
|
|
461
|
+
const copyAttr = (dst, attr, comp, vCount, vertexOffset, fallback) => {
|
|
462
|
+
if (attr) {
|
|
463
|
+
const src = attr.array;
|
|
464
|
+
for (let i = 0; i < vCount; i++)
|
|
465
|
+
for (let k = 0; k < comp; k++)
|
|
466
|
+
dst[(vertexOffset + i) * comp + k] = src[i * comp + k] ?? 0;
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
for (let i = 0; i < vCount; i++) {
|
|
470
|
+
const out = [];
|
|
471
|
+
fallback ? fallback(i, out) : out.push(...new Array(comp).fill(0));
|
|
472
|
+
for (let k = 0; k < comp; k++)
|
|
473
|
+
dst[(vertexOffset + i) * comp + k] = out[k] ?? 0;
|
|
474
|
+
}
|
|
475
|
+
};
|
|
340
476
|
const IndexArrayType = totalVertices > 65535 ? Uint32Array : Uint16Array;
|
|
341
477
|
const mergedIndices = new IndexArrayType(totalIndices);
|
|
342
478
|
let vertexOffset = 0;
|
|
@@ -457,7 +593,13 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
457
593
|
}
|
|
458
594
|
}
|
|
459
595
|
}
|
|
460
|
-
// 7.
|
|
596
|
+
// 7. 图集矩形(S3MBLOCK)
|
|
597
|
+
if (mergedRect0) {
|
|
598
|
+
copyAttr(mergedRect0, g.attributes.aAtlasRect, 4, vCount, vertexOffset, (_i, out) => out.push(0, 0, 0, 0));
|
|
599
|
+
copyAttr(mergedRect1, g.attributes.aAtlasRect1, 4, vCount, vertexOffset, (_i, out) => out.push(0, 0, 0, 0));
|
|
600
|
+
copyAttr(mergedSecUv, g.attributes.aSecUv, 2, vCount, vertexOffset);
|
|
601
|
+
}
|
|
602
|
+
// 8. Indices
|
|
461
603
|
if (g.index) {
|
|
462
604
|
const idxArr = g.index.array;
|
|
463
605
|
const iCount = g.index.count;
|
|
@@ -486,6 +628,11 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
486
628
|
mergedGeo.setAttribute('aColor', new THREE.BufferAttribute(mergedColor, 3));
|
|
487
629
|
if (mergedBatchId)
|
|
488
630
|
mergedGeo.setAttribute('aBatchId', new THREE.BufferAttribute(mergedBatchId, 1));
|
|
631
|
+
if (mergedRect0) {
|
|
632
|
+
mergedGeo.setAttribute('aAtlasRect', new THREE.BufferAttribute(mergedRect0, 4));
|
|
633
|
+
mergedGeo.setAttribute('aAtlasRect1', new THREE.BufferAttribute(mergedRect1, 4));
|
|
634
|
+
mergedGeo.setAttribute('aSecUv', new THREE.BufferAttribute(mergedSecUv, 2));
|
|
635
|
+
}
|
|
489
636
|
mergedGeo.setIndex(new THREE.BufferAttribute(mergedIndices, 1));
|
|
490
637
|
mergedGeo.computeBoundingBox();
|
|
491
638
|
mergedGeo.computeBoundingSphere();
|
|
@@ -503,7 +650,7 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
503
650
|
};
|
|
504
651
|
const placeObject = (cached, name, geo, matrix) => {
|
|
505
652
|
const { geometry, pack } = cached;
|
|
506
|
-
const material = makeMaterial(pack.passNames?.[0]);
|
|
653
|
+
const material = makeMaterial(pack.passNames?.[0], !!geometry.getAttribute('aAtlasRect'));
|
|
507
654
|
let object;
|
|
508
655
|
const info = skeletonInfo.get(name);
|
|
509
656
|
const vp = geo.vertexPackage;
|
|
@@ -524,6 +671,27 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
524
671
|
stats.edgeLines++;
|
|
525
672
|
return lines;
|
|
526
673
|
}
|
|
674
|
+
// 点云包:顶点即点,按 THREE.Points 渲染。索引只是点序号,直接走 drawRange。
|
|
675
|
+
if (isPointPrimitive(pack.primitiveType)) {
|
|
676
|
+
// PointsMaterial 的顶点色读内置 'color' 槽位,与 aColor 共享同一份 buffer
|
|
677
|
+
if (!geometry.getAttribute('color')) {
|
|
678
|
+
geometry.setAttribute('color', geometry.getAttribute('aColor'));
|
|
679
|
+
}
|
|
680
|
+
const points = new THREE.Points(geometry, getPointCloudMaterial());
|
|
681
|
+
// 点云不是 Mesh:viewer 的样式 / 拾取 / 卸载链路都靠这个标记放行
|
|
682
|
+
points.userData.isPointCloud = true;
|
|
683
|
+
points.userData.skeletonName = name;
|
|
684
|
+
points.userData.geoRef = geo;
|
|
685
|
+
points.userData.tileRef = tile;
|
|
686
|
+
points.userData.primitiveType = pack.primitiveType;
|
|
687
|
+
if (matrix && !matrix.equals(IDENTITY)) {
|
|
688
|
+
matrix.decompose(points.position, points.quaternion, points.scale);
|
|
689
|
+
}
|
|
690
|
+
group.add(points);
|
|
691
|
+
objects.push(points);
|
|
692
|
+
stats.meshes++;
|
|
693
|
+
return points;
|
|
694
|
+
}
|
|
527
695
|
if (info?.instanced && vp.instanceBuffer && vp.instanceCount > 0) {
|
|
528
696
|
// 逐实例的两条属性:
|
|
529
697
|
// aInstanceBatchId —— 单体控制位,着色器靠它查状态纹理(改色 / 隐藏 / 抬高)
|
|
@@ -676,7 +844,8 @@ export async function buildTileObjects(tile, options = {}) {
|
|
|
676
844
|
placeObject(list[0].cached, list[0].name, list[0].geo, list[0].matrix);
|
|
677
845
|
}
|
|
678
846
|
else {
|
|
679
|
-
const
|
|
847
|
+
const hasAtlasRect = !!list[0].cached.geometry.getAttribute('aAtlasRect');
|
|
848
|
+
const material = makeMaterial(matKey === '__default__' ? undefined : matKey, hasAtlasRect);
|
|
680
849
|
const batchedMesh = mergeBatchGeometries(list, material, tile);
|
|
681
850
|
group.add(batchedMesh);
|
|
682
851
|
objects.push(batchedMesh);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeometryBuilder.js","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GeometryBuilder.js","sourceRoot":"","sources":["../../src/render/GeometryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* - 地表相交线(Z = 0):出入口穿透地表处有清晰物理交线。
|
|
10
10
|
* 3. 支持「基坑开挖模式(Excavate)」与「地下透视模式(Translucent)」,
|
|
11
11
|
* 可开辟虚拟基坑井口或全域透视地表。
|
|
12
|
+
*
|
|
13
|
+
* 关于「遮挡」:地表能不能挡住建筑,只取决于有没有一块**先于建筑绘制、并且写了深度**的
|
|
14
|
+
* 几何进到同一深度缓冲里。半透明覆盖网格 `depthWrite = false` 且排在 transparent 队列末尾,
|
|
15
|
+
* 它只是画在上面的一层色,不参与遮挡;真正的遮挡由独立的**纯深度代理**(`_depthMesh`,
|
|
16
|
+
* `colorWrite = false` + `renderOrder` 负值)负责,可用 `occlude` 开关控制。
|
|
17
|
+
* 与 MapLibre terrain 共用同一深度缓冲,两者是「深度来源」的关系而非替代关系。
|
|
12
18
|
*/
|
|
13
19
|
import * as THREE from 'three';
|
|
14
20
|
export type GroundMode = 'none' | 'translucent' | 'excavate';
|
|
@@ -26,6 +32,28 @@ export interface GroundOptions {
|
|
|
26
32
|
excavationBounds?: [number, number, number, number] | null;
|
|
27
33
|
/** 地表范围大小(米,默认 6000) */
|
|
28
34
|
size?: number;
|
|
35
|
+
/**
|
|
36
|
+
* 地表高度是否跟随主数据集的抬升量(`setDatasetHeight`),默认 `true`。
|
|
37
|
+
*
|
|
38
|
+
* `true` 服务贴地工作流:模型整体抬到地面高程时,切割面必须跟着抬到同一高程,
|
|
39
|
+
* 否则整个模型会被齐根切掉。
|
|
40
|
+
* `false` 把地表钉死在当前高度(默认场景 z=0):高程调整只动模型不动切割面,
|
|
41
|
+
* 滑杆变成直观的「控制埋深 / 切掉多少」。
|
|
42
|
+
*/
|
|
43
|
+
trackHeight?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* 地表是否作为深度遮挡源:开启后,位于地表以下的几何(地下站厅 / 隧道 / 管线)
|
|
46
|
+
* 会被地表真正切掉,而不是透过半透明地表显露。
|
|
47
|
+
*
|
|
48
|
+
* **与 mode 解耦**:`mode: 'none'` 时也可以单独开启 —— 不显示任何地表,
|
|
49
|
+
* 只留一块隐形地面把地面以下切掉。默认值取 `mode === 'excavate'`
|
|
50
|
+
* (开挖模式下坑外的地下部分本就该被土体挡住),`'translucent'` 下默认关闭
|
|
51
|
+
* —— 那一模式的全部意义就是「能看穿地表」。
|
|
52
|
+
*
|
|
53
|
+
* 实现上由一块 `colorWrite = false`、排在 opaque 队列最前的纯深度代理完成,
|
|
54
|
+
* 与 MapLibre terrain 写入的深度共用同一个深度缓冲,互不冲突(谁更近谁赢)。
|
|
55
|
+
*/
|
|
56
|
+
occlude?: boolean;
|
|
29
57
|
}
|
|
30
58
|
export declare class GroundManager {
|
|
31
59
|
mode: GroundMode;
|
|
@@ -37,13 +65,34 @@ export declare class GroundManager {
|
|
|
37
65
|
size: number;
|
|
38
66
|
/** 物理地表网格的高度(米,场景 ENU Z 坐标),默认 0 */
|
|
39
67
|
groundHeight: number;
|
|
68
|
+
/** 地表是否作为深度遮挡源(见 `GroundOptions.occlude`) */
|
|
69
|
+
occlude: boolean;
|
|
70
|
+
/** 地表高度是否跟随主数据集抬升量(见 `GroundOptions.trackHeight`),默认 true */
|
|
71
|
+
trackHeight: boolean;
|
|
40
72
|
readonly group: THREE.Group;
|
|
41
73
|
private _mesh;
|
|
42
74
|
private _material;
|
|
75
|
+
/** 纯深度代理:只写深度不写颜色,负责真正的遮挡 */
|
|
76
|
+
private _depthMesh;
|
|
77
|
+
private _depthMaterial;
|
|
78
|
+
private _geom;
|
|
79
|
+
/** 用户显式指定过 occlude 后,setMode 不再自动改写它 */
|
|
80
|
+
private _occludeExplicit;
|
|
43
81
|
constructor(options?: GroundOptions);
|
|
44
82
|
private _initMesh;
|
|
45
83
|
/**
|
|
46
|
-
*
|
|
84
|
+
* 把 mode / occlude 的状态一次性刷到材质和可见性上。
|
|
85
|
+
* 构造与 setMode / setOcclude 都走这里,避免出现「构造时漏设」的分叉。
|
|
86
|
+
*
|
|
87
|
+
* 覆盖网格与深度代理**各自独立控制**:
|
|
88
|
+
* - 覆盖网格(视觉)只跟 mode 走;
|
|
89
|
+
* - 深度代理(遮挡)只跟 occlude 走 —— mode 'none' 时也可以单独开一块
|
|
90
|
+
* 「隐形地面」把地面以下切掉,不显示任何地表。
|
|
91
|
+
*/
|
|
92
|
+
private _applyMode;
|
|
93
|
+
/**
|
|
94
|
+
* 每帧根据相机位置更新地表网格中心,实现地表随相机平移而无限延伸且网格线不漂移。
|
|
95
|
+
* 遮挡代理与地表模式已解耦,所以 mode 'none' 时也要跟着相机走。
|
|
47
96
|
*/
|
|
48
97
|
update(camera?: THREE.Camera | null): void;
|
|
49
98
|
/**
|
|
@@ -54,6 +103,13 @@ export declare class GroundManager {
|
|
|
54
103
|
*/
|
|
55
104
|
setGroundHeight(height: number): void;
|
|
56
105
|
setMode(mode: GroundMode): void;
|
|
106
|
+
/**
|
|
107
|
+
* 开关「地表作为深度遮挡源」。
|
|
108
|
+
*
|
|
109
|
+
* 打开后地表以下的几何会被真正切掉(不再透过地表显露);关闭后回到纯视觉覆盖。
|
|
110
|
+
* 与宿主是否开启 MapLibre terrain 无关:两者都在同一个深度缓冲里比深度,谁更近谁赢。
|
|
111
|
+
*/
|
|
112
|
+
setOcclude(enabled: boolean): void;
|
|
57
113
|
setOpacity(opacity: number): void;
|
|
58
114
|
setColors(color: string, gridColor?: string): void;
|
|
59
115
|
setExcavationBounds(bounds: [number, number, number, number] | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroundManager.d.ts","sourceRoot":"","sources":["../../src/render/GroundManager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GroundManager.d.ts","sourceRoot":"","sources":["../../src/render/GroundManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3D,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAQ;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,YAAY,SAAK;IACjB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;IAErB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC5B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,SAAS,CAAqC;IACtD,6BAA6B;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,KAAK,CAAoC;IACjD,wCAAwC;IACxC,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,OAAO,GAAE,aAAkB;IAoBvC,OAAO,CAAC,SAAS;IAmJjB;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAgBlB;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;IAK1C;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAO/B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IASlD,mBAAmB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAK1E;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC,GAAG,IAAI;IAoC/F,OAAO,CAAC,aAAa;IAyBrB,OAAO,IAAI,IAAI;CAYhB"}
|