s3m-three 0.4.18 → 0.4.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/assets/s3mWorker-DvAUA8NJ.js +1 -0
- package/dist/browser/s3m-three.iife.ext-three.js +619 -304
- package/dist/browser/s3m-three.iife.js +647 -332
- package/dist/core/Draco.d.ts.map +1 -1
- package/dist/core/Draco.js +0 -1
- package/dist/core/Draco.js.map +1 -1
- package/dist/core/GaussianSplat.d.ts +64 -0
- package/dist/core/GaussianSplat.d.ts.map +1 -0
- package/dist/core/GaussianSplat.js +139 -0
- package/dist/core/GaussianSplat.js.map +1 -0
- package/dist/core/S3M1Parser.d.ts +1 -1
- package/dist/core/S3M1Parser.d.ts.map +1 -1
- package/dist/core/S3M1Parser.js +320 -25
- package/dist/core/S3M1Parser.js.map +1 -1
- package/dist/core/S3MBParser.d.ts.map +1 -1
- package/dist/core/S3MBParser.js +13 -0
- package/dist/core/S3MBParser.js.map +1 -1
- package/dist/core/S3MBlockParser.d.ts.map +1 -1
- package/dist/core/S3MBlockParser.js +83 -28
- package/dist/core/S3MBlockParser.js.map +1 -1
- package/dist/core/SplatLod.d.ts +36 -0
- package/dist/core/SplatLod.d.ts.map +1 -0
- package/dist/core/SplatLod.js +54 -0
- package/dist/core/SplatLod.js.map +1 -0
- package/dist/core/SplatProjection.d.ts +75 -0
- package/dist/core/SplatProjection.d.ts.map +1 -0
- package/dist/core/SplatProjection.js +162 -0
- package/dist/core/SplatProjection.js.map +1 -0
- package/dist/core/SplatSort.d.ts +26 -0
- package/dist/core/SplatSort.d.ts.map +1 -0
- package/dist/core/SplatSort.js +61 -0
- package/dist/core/SplatSort.js.map +1 -0
- package/dist/core/TexCoordZ.d.ts +94 -0
- package/dist/core/TexCoordZ.d.ts.map +1 -0
- package/dist/core/TexCoordZ.js +125 -0
- package/dist/core/TexCoordZ.js.map +1 -0
- package/dist/core/TextureDecode.d.ts +19 -0
- package/dist/core/TextureDecode.d.ts.map +1 -1
- package/dist/core/TextureDecode.js +53 -11
- package/dist/core/TextureDecode.js.map +1 -1
- package/dist/core/TileGeometry.d.ts +39 -0
- package/dist/core/TileGeometry.d.ts.map +1 -1
- package/dist/core/TileGeometry.js +133 -14
- package/dist/core/TileGeometry.js.map +1 -1
- package/dist/core/degradations.d.ts +37 -0
- package/dist/core/degradations.d.ts.map +1 -0
- package/dist/core/degradations.js +32 -0
- package/dist/core/degradations.js.map +1 -0
- package/dist/core/types.d.ts +36 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/render/DatasetManager.d.ts +11 -0
- package/dist/render/DatasetManager.d.ts.map +1 -1
- package/dist/render/DatasetManager.js +2 -0
- package/dist/render/DatasetManager.js.map +1 -1
- package/dist/render/FeatureStyleManager.d.ts.map +1 -1
- package/dist/render/FeatureStyleManager.js +7 -5
- package/dist/render/FeatureStyleManager.js.map +1 -1
- package/dist/render/GeometryBuilder.d.ts +31 -0
- package/dist/render/GeometryBuilder.d.ts.map +1 -1
- package/dist/render/GeometryBuilder.js +229 -6
- package/dist/render/GeometryBuilder.js.map +1 -1
- package/dist/render/Picker.d.ts.map +1 -1
- package/dist/render/Picker.js +19 -5
- package/dist/render/Picker.js.map +1 -1
- package/dist/render/S3MViewer.d.ts +106 -379
- package/dist/render/S3MViewer.d.ts.map +1 -1
- package/dist/render/S3MViewer.js +324 -1494
- package/dist/render/S3MViewer.js.map +1 -1
- package/dist/render/SplatMaterial.d.ts +103 -0
- package/dist/render/SplatMaterial.d.ts.map +1 -0
- package/dist/render/SplatMaterial.js +388 -0
- package/dist/render/SplatMaterial.js.map +1 -0
- package/dist/render/SplatSorter.d.ts +14 -0
- package/dist/render/SplatSorter.d.ts.map +1 -0
- package/dist/render/SplatSorter.js +66 -0
- package/dist/render/SplatSorter.js.map +1 -0
- package/dist/render/StyleMaterial.d.ts +48 -0
- package/dist/render/StyleMaterial.d.ts.map +1 -1
- package/dist/render/StyleMaterial.js +292 -69
- package/dist/render/StyleMaterial.js.map +1 -1
- package/dist/render/TextureFactory.d.ts +10 -0
- package/dist/render/TextureFactory.d.ts.map +1 -1
- package/dist/render/TextureFactory.js +35 -5
- package/dist/render/TextureFactory.js.map +1 -1
- package/dist/render/lightingPreset.d.ts +53 -0
- package/dist/render/lightingPreset.d.ts.map +1 -0
- package/dist/render/lightingPreset.js +36 -0
- package/dist/render/lightingPreset.js.map +1 -0
- package/dist/render/materialAlpha.d.ts +51 -0
- package/dist/render/materialAlpha.d.ts.map +1 -0
- package/dist/render/materialAlpha.js +68 -0
- package/dist/render/materialAlpha.js.map +1 -0
- package/dist/render/viewer/EdgeDecorator.d.ts +206 -0
- package/dist/render/viewer/EdgeDecorator.d.ts.map +1 -0
- package/dist/render/viewer/EdgeDecorator.js +628 -0
- package/dist/render/viewer/EdgeDecorator.js.map +1 -0
- package/dist/render/viewer/HeightIndex.d.ts +36 -0
- package/dist/render/viewer/HeightIndex.d.ts.map +1 -0
- package/dist/render/viewer/HeightIndex.js +98 -0
- package/dist/render/viewer/HeightIndex.js.map +1 -0
- package/dist/render/viewer/LightRig.d.ts +88 -0
- package/dist/render/viewer/LightRig.d.ts.map +1 -0
- package/dist/render/viewer/LightRig.js +229 -0
- package/dist/render/viewer/LightRig.js.map +1 -0
- package/dist/render/viewer/PickService.d.ts +109 -0
- package/dist/render/viewer/PickService.d.ts.map +1 -0
- package/dist/render/viewer/PickService.js +591 -0
- package/dist/render/viewer/PickService.js.map +1 -0
- package/dist/render/viewer/SelectionDecorator.d.ts +84 -0
- package/dist/render/viewer/SelectionDecorator.d.ts.map +1 -0
- package/dist/render/viewer/SelectionDecorator.js +339 -0
- package/dist/render/viewer/SelectionDecorator.js.map +1 -0
- package/dist/render/viewer/SplatLayer.d.ts +26 -0
- package/dist/render/viewer/SplatLayer.d.ts.map +1 -0
- package/dist/render/viewer/SplatLayer.js +44 -0
- package/dist/render/viewer/SplatLayer.js.map +1 -0
- package/dist/render/viewer/types.d.ts +250 -0
- package/dist/render/viewer/types.d.ts.map +1 -0
- package/dist/render/viewer/types.js +3 -0
- package/dist/render/viewer/types.js.map +1 -0
- package/dist/tileset/S3MTileset.d.ts +42 -1
- package/dist/tileset/S3MTileset.d.ts.map +1 -1
- package/dist/tileset/S3MTileset.js +52 -2
- package/dist/tileset/S3MTileset.js.map +1 -1
- package/dist/vendor/browser-node-stub.js +10 -0
- package/dist/worker/s3mWorker.js +1166 -979
- package/dist/worker/s3mWorker.js.map +1 -1
- package/docs/API.md +55 -1
- package/docs/FORMAT-NOTES.md +362 -0
- package/package.json +1 -1
- package/src/core/Draco.ts +1 -2
- package/src/core/GaussianSplat.ts +175 -0
- package/src/core/S3M1Parser.ts +330 -24
- package/src/core/S3MBParser.ts +18 -0
- package/src/core/S3MBlockParser.ts +83 -27
- package/src/core/SplatLod.ts +83 -0
- package/src/core/SplatProjection.ts +231 -0
- package/src/core/SplatSort.ts +92 -0
- package/src/core/TexCoordZ.ts +160 -0
- package/src/core/TextureDecode.ts +63 -11
- package/src/core/TileGeometry.ts +151 -14
- package/src/core/degradations.ts +74 -0
- package/src/core/types.ts +32 -0
- package/src/index.ts +8 -1
- package/src/render/DatasetManager.ts +10 -0
- package/src/render/FeatureStyleManager.ts +8 -6
- package/src/render/GeometryBuilder.ts +271 -7
- package/src/render/Picker.ts +21 -5
- package/src/render/S3MViewer.ts +358 -1727
- package/src/render/SplatMaterial.ts +433 -0
- package/src/render/SplatSorter.ts +66 -0
- package/src/render/StyleMaterial.ts +339 -69
- package/src/render/TextureFactory.ts +39 -5
- package/src/render/lightingPreset.ts +76 -0
- package/src/render/materialAlpha.ts +75 -0
- package/src/render/viewer/EdgeDecorator.ts +722 -0
- package/src/render/viewer/HeightIndex.ts +94 -0
- package/src/render/viewer/LightRig.ts +267 -0
- package/src/render/viewer/PickService.ts +651 -0
- package/src/render/viewer/SelectionDecorator.ts +377 -0
- package/src/render/viewer/SplatLayer.ts +44 -0
- package/src/render/viewer/types.ts +258 -0
- package/src/tileset/S3MTileset.ts +78 -2
- package/src/vendor/browser-node-stub.js +10 -0
- package/dist/browser/assets/s3mWorker-BjPOUgjg.js +0 -1
|
@@ -139,6 +139,13 @@ export function setMaterialQuality(q) {
|
|
|
139
139
|
export function getMaterialQuality() {
|
|
140
140
|
return materialQuality;
|
|
141
141
|
}
|
|
142
|
+
let colorPipeline = 'linear';
|
|
143
|
+
export function setColorPipeline(p) {
|
|
144
|
+
colorPipeline = p === 'direct' ? 'direct' : 'linear';
|
|
145
|
+
}
|
|
146
|
+
export function getColorPipeline() {
|
|
147
|
+
return colorPipeline;
|
|
148
|
+
}
|
|
142
149
|
const DUMMY_DATA = new Float32Array([
|
|
143
150
|
-1, -1, -1, 0, // Row 0: color rgb, elevation/hidden
|
|
144
151
|
0, 0, 0, 0, // Row 1: translation xyz, opacity
|
|
@@ -155,6 +162,8 @@ DUMMY_BATCH_TEX.needsUpdate = true;
|
|
|
155
162
|
export function createSharedUniforms() {
|
|
156
163
|
return {
|
|
157
164
|
uMode: { value: STYLE.TEXTURE },
|
|
165
|
+
/** 主光世界方向(direct 管线的官方 Lambert 用;headlamp/fixed 都随 _updateLights 更新) */
|
|
166
|
+
uSunDirection: { value: new THREE.Vector3(0.5, 0.5, 0.7071).normalize() },
|
|
158
167
|
uColorA: { value: new THREE.Color('#dfe6ee') },
|
|
159
168
|
uColorB: { value: new THREE.Color('#1d4ed8') },
|
|
160
169
|
uColorC: { value: new THREE.Color('#fbbf24') },
|
|
@@ -190,6 +199,10 @@ export function createSharedUniforms() {
|
|
|
190
199
|
uTexMix: { value: 0 },
|
|
191
200
|
/** 基础底色增益 / 暗部补偿(0~1,默认 0.0) */
|
|
192
201
|
uAmbientGain: { value: 0 },
|
|
202
|
+
/** 金属度覆盖(<0 = 不覆盖,用材质自身的值) */
|
|
203
|
+
uMetalness: { value: -1 },
|
|
204
|
+
/** 粗糙度覆盖(<0 = 不覆盖,用材质自身的值) */
|
|
205
|
+
uRoughness: { value: -1 },
|
|
193
206
|
/** 双纹理交叉淡化插值系数(0 = 纯 uBatchTex, 1 = 纯 uBatchTex2) */
|
|
194
207
|
uBatchMix: { value: 0 },
|
|
195
208
|
/** GPU 路径数据采样纹理 */
|
|
@@ -225,7 +238,8 @@ export function createSharedUniforms() {
|
|
|
225
238
|
}
|
|
226
239
|
const VERT_PARS = /* glsl */ `
|
|
227
240
|
attribute float aBatchId;
|
|
228
|
-
|
|
241
|
+
// vec4:alpha 是「材质不透明、顶点半透明」这类数据的唯一透明度来源(官方 baseColorWithAlpha = vColor)
|
|
242
|
+
attribute vec4 aColor;
|
|
229
243
|
#ifdef S3M_ATLAS
|
|
230
244
|
attribute vec4 aAtlasRect;
|
|
231
245
|
#ifdef S3M_ATLAS_SEC
|
|
@@ -240,6 +254,15 @@ const VERT_PARS = /* glsl */ `
|
|
|
240
254
|
#ifdef USE_INSTANCING
|
|
241
255
|
attribute float aInstanceBatchId;
|
|
242
256
|
#endif
|
|
257
|
+
// uv 第三分量:官方 aTextureCoordMatrix,决定该顶点采不采样纹理 / 用图集哪一块。
|
|
258
|
+
// 解码必须在**顶点着色器**做:z 的量级是 65536~327680,片元里若落到 mediump(fp16
|
|
259
|
+
// 上限 65504)会直接溢出成 inf,官方也是在 VS 解完再用 varying 传。
|
|
260
|
+
#ifdef S3M_TEXCOORD_Z
|
|
261
|
+
attribute float aTexCoordZ;
|
|
262
|
+
varying vec4 vTexMatrix; // x=xTran y=yTran z=scale w=log2(scale*texWidth)
|
|
263
|
+
varying float vTexCoordTransform; // 原始 z,-90000 以下表示不采样
|
|
264
|
+
uniform vec2 uAtlasDim; // 与片元共用:纹理像素尺寸
|
|
265
|
+
#endif
|
|
243
266
|
uniform float uSelBatch;
|
|
244
267
|
uniform float uSelWhole;
|
|
245
268
|
uniform float uSelElevation;
|
|
@@ -253,7 +276,7 @@ const VERT_PARS = /* glsl */ `
|
|
|
253
276
|
uniform float uPathTime;
|
|
254
277
|
uniform int uPathTexActive;
|
|
255
278
|
varying float vBatchId;
|
|
256
|
-
varying
|
|
279
|
+
varying vec4 vVertColor;
|
|
257
280
|
varying float vWorldZ;
|
|
258
281
|
varying vec3 vWorldNormal;
|
|
259
282
|
varying vec3 vWorldPos;
|
|
@@ -283,29 +306,37 @@ const VERT_PARS = /* glsl */ `
|
|
|
283
306
|
|
|
284
307
|
vec4 s3mSampleBatchRow0( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
285
308
|
vec4 vA = texture2D( texA, uv );
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
309
|
+
vec4 res;
|
|
310
|
+
if ( mixVal <= 0.0001 ) {
|
|
311
|
+
res = vA;
|
|
312
|
+
} else {
|
|
313
|
+
vec4 vB = texture2D( texB, uv );
|
|
314
|
+
res = mix( vA, vB, mixVal );
|
|
315
|
+
if ( vA.r < 0.0 && vB.r >= 0.0 ) {
|
|
316
|
+
res.rgb = vB.rgb;
|
|
317
|
+
} else if ( vA.r >= 0.0 && vB.r < 0.0 ) {
|
|
318
|
+
res.rgb = vA.rgb;
|
|
319
|
+
}
|
|
320
|
+
if ( vA.a < -0.5 || vB.a < -0.5 ) {
|
|
321
|
+
res.a = ( mixVal >= 0.5 ) ? vB.a : vA.a;
|
|
322
|
+
}
|
|
296
323
|
}
|
|
297
324
|
return res;
|
|
298
325
|
}
|
|
299
326
|
|
|
300
327
|
vec4 s3mSampleBatchRow1( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
301
328
|
vec4 vA = texture2D( texA, uv );
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
329
|
+
vec4 res;
|
|
330
|
+
if ( mixVal <= 0.0001 ) {
|
|
331
|
+
res = vA;
|
|
332
|
+
} else {
|
|
333
|
+
vec4 vB = texture2D( texB, uv );
|
|
334
|
+
res = mix( vA, vB, mixVal );
|
|
335
|
+
if ( vA.a == 0.0 && vB.a > 0.0 ) {
|
|
336
|
+
res.a = mix( 1.0, vB.a, mixVal );
|
|
337
|
+
} else if ( vA.a > 0.0 && vB.a == 0.0 ) {
|
|
338
|
+
res.a = mix( vA.a, 1.0, mixVal );
|
|
339
|
+
}
|
|
309
340
|
}
|
|
310
341
|
return res;
|
|
311
342
|
}
|
|
@@ -406,6 +437,31 @@ const VERT_WORLD = /* glsl */ `
|
|
|
406
437
|
vWorldPos = s3mWorld.xyz;
|
|
407
438
|
vBatchId = s3mBatchRaw();
|
|
408
439
|
vVertColor = aColor;
|
|
440
|
+
#ifdef S3M_TEXCOORD_Z
|
|
441
|
+
// 官方 S3MTilesVS.js:192-198(getTextureMatrixFromZValue)+ bundle getTextureColor
|
|
442
|
+
// 的三档哨兵,档位编码在 vTexMatrix.z 的符号上:
|
|
443
|
+
// -2 → 白(z < -99900 档:官方 texCoordZ < -99900 返回 vec4(1.0),平涂顶点色面)
|
|
444
|
+
// -1 → 平铺(-99900 ≤ z < -9000:uv 原样采样)
|
|
445
|
+
// >0 → 图集子区域公式
|
|
446
|
+
vTexCoordTransform = aTexCoordZ;
|
|
447
|
+
vTexMatrix = vec4( 0.0, 0.0, 1.0, 0.0 );
|
|
448
|
+
if ( vTexCoordTransform < -99900.0 ) {
|
|
449
|
+
vTexMatrix.z = -2.0;
|
|
450
|
+
} else if ( vTexCoordTransform < -9000.0 ) {
|
|
451
|
+
vTexMatrix.z = -1.0;
|
|
452
|
+
} else {
|
|
453
|
+
float s3mNz = floor( vTexCoordTransform );
|
|
454
|
+
if ( s3mNz > 0.0 ) {
|
|
455
|
+
float nDel8 = floor( s3mNz / 256.0 );
|
|
456
|
+
float nDel16 = floor( nDel8 / 256.0 );
|
|
457
|
+
float nDel20 = floor( nDel16 / 16.0 );
|
|
458
|
+
vTexMatrix.x = nDel8 - nDel16 * 256.0;
|
|
459
|
+
vTexMatrix.y = s3mNz - nDel8 * 256.0;
|
|
460
|
+
vTexMatrix.z = 1.0 / pow( 2.0, nDel16 - nDel20 * 16.0 );
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
vTexMatrix.w = vTexMatrix.z > 0.0 ? log2( uAtlasDim.x * vTexMatrix.z ) : 0.0;
|
|
464
|
+
#endif
|
|
409
465
|
|
|
410
466
|
#ifdef S3M_ATLAS
|
|
411
467
|
vAtlasRect = aAtlasRect;
|
|
@@ -426,31 +482,85 @@ const VERT_WORLD = /* glsl */ `
|
|
|
426
482
|
vS3MViewPos = vViewPosition;
|
|
427
483
|
`;
|
|
428
484
|
const FRAG_PARS = /* glsl */ `
|
|
485
|
+
// 纹理像素尺寸:图集分支用它把 rect 换算成像素宽,uv-z 分支用它算 uv 周期。
|
|
486
|
+
// 两个分支都需要,所以无条件声明(值恒为 map 的实际像素尺寸)。
|
|
487
|
+
uniform vec2 uAtlasDim;
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* 官方 CalculateMipLevel(vec2 版),逐字照抄 iClient3D 12.1.1。
|
|
491
|
+
* 用**未 fract** 的 uv 求屏幕空间导数 —— 先 fract 再求导会在平铺接缝处炸出
|
|
492
|
+
* 一个巨大导数,GPU 直接把整块砖采成最糊的 mip,表现为每块砖边缘一条暗线。
|
|
493
|
+
*/
|
|
494
|
+
void s3mMipLevel( vec2 uv, vec2 texSize, float maxMip, out float mip ) {
|
|
495
|
+
vec2 dx = dFdx( uv * texSize.x );
|
|
496
|
+
vec2 dy = dFdy( uv * texSize.y );
|
|
497
|
+
float dotX = dot( dx, dx );
|
|
498
|
+
float dotY = dot( dy, dy );
|
|
499
|
+
float dMax = max( dotX, dotY );
|
|
500
|
+
float dMin = min( dotX, dotY );
|
|
501
|
+
float off = clamp( ( dMax - dMin ) / max( dMax + dMin, 1e-8 ), 0.0, 1.0 );
|
|
502
|
+
float d = dMax * ( 1.0 - off ) + dMin * off;
|
|
503
|
+
mip = clamp( 0.5 * log2( max( d, 1e-8 ) ), 0.0, maxMip - 1.62 );
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
#ifdef S3M_TEXCOORD_Z
|
|
507
|
+
// 矩阵在顶点着色器解好(vTexMatrix),这里只做 mip 收缩 + 采样。
|
|
508
|
+
varying vec4 vTexMatrix;
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* 官方 S3MTilesFS.js 的 getTextureColor → getTexColorForS3M → calculateTexCoord
|
|
512
|
+
* 逐行移植,数学等价物见 core/TexCoordZ.ts(单测钉住两边一致):
|
|
513
|
+
*
|
|
514
|
+
* vTexMatrix.z < 0 → 不采样,返回白(官方 if ( vTexMatrix.z < 0.0 ))
|
|
515
|
+
* fTile = scale * texWidth
|
|
516
|
+
* inner = 2^mip / fTile; f = clamp( fract(uv), inner, 1 - inner )
|
|
517
|
+
* out = ( f + T ) * scale
|
|
518
|
+
*
|
|
519
|
+
* ★ 采样必须用**显式 LOD**(官方 textureLod / texture2DLodEXT)。
|
|
520
|
+
* 交给硬件自动求导时,导数从 (fract(uv)+T)*scale 上取,而 fract 每个周期
|
|
521
|
+
* 都有一次跳变,接缝像素的导数会炸掉 → GPU 采到最糊的 mip,画面上每隔一个
|
|
522
|
+
* 周期就出现一条暗带 / 摩尔纹。近处周期密,这些带子最明显。
|
|
523
|
+
*/
|
|
524
|
+
vec4 s3mTexCoordZUnit( vec2 uv, vec4 m, sampler2D tex, float texWidth ) {
|
|
525
|
+
// 官方 bundle getTextureColor 三档语义(逐行核对 SuperMap3D.js):
|
|
526
|
+
// texCoordZ < -99900 → vec4(1.0) 纯白,不采样(平涂顶点色面,如 SMID 3464)
|
|
527
|
+
// texCoordZ < -9000 → uv 原样平铺(自动 mip 平均成贴图色)
|
|
528
|
+
// 其余 → 图集子区域公式
|
|
529
|
+
// 之前误读成「-99999 也平铺」,3464 的米制 uv 就把整张纹理平铺上百次 = 「uv 整图」。
|
|
530
|
+
// 单出口结构:ANGLE 把返回值翻译成 out 参数,函数内提前 return
|
|
531
|
+
// 会让 D3D 编译器报 X4000「use of potentially uninitialized variable」。
|
|
532
|
+
vec4 s3mResult;
|
|
533
|
+
if ( m.z < -1.5 ) {
|
|
534
|
+
s3mResult = vec4( 1.0 );
|
|
535
|
+
} else if ( m.z < 0.0 ) {
|
|
536
|
+
s3mResult = texture2D( tex, uv );
|
|
537
|
+
} else {
|
|
538
|
+
float fTile = max( m.z * texWidth, 1.0 );
|
|
539
|
+
float mip = 0.0;
|
|
540
|
+
s3mMipLevel( uv, vec2( fTile ), m.w, mip );
|
|
541
|
+
|
|
542
|
+
vec2 f = fract( uv );
|
|
543
|
+
float inner = pow( 2.0, mip ) / fTile;
|
|
544
|
+
f = clamp( f, vec2( inner ), vec2( 1.0 - inner ) );
|
|
545
|
+
vec2 c = ( f + m.xy ) * m.z;
|
|
546
|
+
|
|
547
|
+
#if __VERSION__ >= 300
|
|
548
|
+
s3mResult = textureLod( tex, c, mip );
|
|
549
|
+
#else
|
|
550
|
+
s3mResult = texture2D( tex, c );
|
|
551
|
+
#endif
|
|
552
|
+
}
|
|
553
|
+
return s3mResult;
|
|
554
|
+
}
|
|
555
|
+
#endif
|
|
429
556
|
#ifdef S3M_ATLAS
|
|
430
557
|
varying vec4 vAtlasRect;
|
|
431
|
-
uniform vec2 uAtlasDim;
|
|
432
558
|
#ifdef S3M_ATLAS_SEC
|
|
433
559
|
uniform sampler2D uSecMap;
|
|
434
560
|
uniform vec2 uAtlasDim1;
|
|
435
561
|
varying vec2 vSecUv;
|
|
436
562
|
varying vec4 vSecRect;
|
|
437
563
|
#endif
|
|
438
|
-
/**
|
|
439
|
-
* 官方 CalculateMipLevel(vec2 版),逐字照抄 iClient3D 12.1.1。
|
|
440
|
-
* 用**未 fract** 的 uv 求屏幕空间导数 —— 先 fract 再求导会在平铺接缝处炸出
|
|
441
|
-
* 一个巨大导数,GPU 直接把整块砖采成最糊的 mip,表现为每块砖边缘一条暗线。
|
|
442
|
-
*/
|
|
443
|
-
void s3mMipLevel( vec2 uv, vec2 texSize, float maxMip, out float mip ) {
|
|
444
|
-
vec2 dx = dFdx( uv * texSize.x );
|
|
445
|
-
vec2 dy = dFdy( uv * texSize.y );
|
|
446
|
-
float dotX = dot( dx, dx );
|
|
447
|
-
float dotY = dot( dy, dy );
|
|
448
|
-
float dMax = max( dotX, dotY );
|
|
449
|
-
float dMin = min( dotX, dotY );
|
|
450
|
-
float off = clamp( ( dMax - dMin ) / max( dMax + dMin, 1e-8 ), 0.0, 1.0 );
|
|
451
|
-
float d = dMax * ( 1.0 - off ) + dMin * off;
|
|
452
|
-
mip = clamp( 0.5 * log2( max( d, 1e-8 ) ), 0.0, maxMip - 1.62 );
|
|
453
|
-
}
|
|
454
564
|
|
|
455
565
|
/**
|
|
456
566
|
* 按指定 mip 档采样子区域(官方 czm_getTexColorForS3M 的内层循环体)。
|
|
@@ -482,17 +592,22 @@ const FRAG_PARS = /* glsl */ `
|
|
|
482
592
|
* 因为内联金字塔只有 2 的整数次幂,中间档必须靠混合。
|
|
483
593
|
*/
|
|
484
594
|
vec4 s3mAtlasUnit( vec2 uv, vec4 rect, vec2 atlasDim, sampler2D tex ) {
|
|
485
|
-
// 退化矩形 = 官方 batchId < 0
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
595
|
+
// 退化矩形 = 官方 batchId < 0:该纹理单元不参与合成(单出口,同 X4000 规避)
|
|
596
|
+
vec4 s3mResult;
|
|
597
|
+
if ( rect.z <= 0.0 || rect.w <= 0.0 ) {
|
|
598
|
+
s3mResult = vec4( 1.0 );
|
|
599
|
+
} else {
|
|
600
|
+
vec2 dimPx = vec2( rect.z * atlasDim.x, rect.w * atlasDim.y );
|
|
601
|
+
vec2 texSize = vec2( dimPx.x * ( 2.0 / 3.0 ), dimPx.y );
|
|
602
|
+
float maxMip = log2( max( min( texSize.x, texSize.y ), 1.0 ) );
|
|
603
|
+
vec2 scale = texSize / atlasDim;
|
|
604
|
+
float mip = 0.0;
|
|
605
|
+
s3mMipLevel( uv, texSize, maxMip, mip );
|
|
606
|
+
vec4 hi = s3mAtlasLod( uv, rect.xy, scale, texSize, tex, ceil( mip ) );
|
|
607
|
+
vec4 lo = s3mAtlasLod( uv, rect.xy, scale, texSize, tex, floor( mip ) );
|
|
608
|
+
s3mResult = hi * 0.5 + lo * 0.5;
|
|
609
|
+
}
|
|
610
|
+
return s3mResult;
|
|
496
611
|
}
|
|
497
612
|
#endif
|
|
498
613
|
uniform int uMode;
|
|
@@ -523,11 +638,13 @@ const FRAG_PARS = /* glsl */ `
|
|
|
523
638
|
uniform float uRoofThreshold;
|
|
524
639
|
uniform float uTexMix;
|
|
525
640
|
uniform float uAmbientGain;
|
|
641
|
+
uniform float uMetalness;
|
|
642
|
+
uniform float uRoughness;
|
|
526
643
|
uniform float uOpacity;
|
|
527
644
|
uniform float uTileFade;
|
|
528
645
|
uniform float uFade;
|
|
529
646
|
varying float vBatchId;
|
|
530
|
-
varying
|
|
647
|
+
varying vec4 vVertColor;
|
|
531
648
|
varying float vWorldZ;
|
|
532
649
|
varying vec3 vWorldNormal;
|
|
533
650
|
varying vec3 vWorldPos;
|
|
@@ -536,29 +653,37 @@ const FRAG_PARS = /* glsl */ `
|
|
|
536
653
|
|
|
537
654
|
vec4 s3mSampleBatchRow0( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
538
655
|
vec4 vA = texture2D( texA, uv );
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
656
|
+
vec4 res;
|
|
657
|
+
if ( mixVal <= 0.0001 ) {
|
|
658
|
+
res = vA;
|
|
659
|
+
} else {
|
|
660
|
+
vec4 vB = texture2D( texB, uv );
|
|
661
|
+
res = mix( vA, vB, mixVal );
|
|
662
|
+
if ( vA.r < 0.0 && vB.r >= 0.0 ) {
|
|
663
|
+
res.rgb = vB.rgb;
|
|
664
|
+
} else if ( vA.r >= 0.0 && vB.r < 0.0 ) {
|
|
665
|
+
res.rgb = vA.rgb;
|
|
666
|
+
}
|
|
667
|
+
if ( vA.a < -0.5 || vB.a < -0.5 ) {
|
|
668
|
+
res.a = ( mixVal >= 0.5 ) ? vB.a : vA.a;
|
|
669
|
+
}
|
|
549
670
|
}
|
|
550
671
|
return res;
|
|
551
672
|
}
|
|
552
673
|
|
|
553
674
|
vec4 s3mSampleBatchRow1( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
554
675
|
vec4 vA = texture2D( texA, uv );
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
676
|
+
vec4 res;
|
|
677
|
+
if ( mixVal <= 0.0001 ) {
|
|
678
|
+
res = vA;
|
|
679
|
+
} else {
|
|
680
|
+
vec4 vB = texture2D( texB, uv );
|
|
681
|
+
res = mix( vA, vB, mixVal );
|
|
682
|
+
if ( vA.a == 0.0 && vB.a > 0.0 ) {
|
|
683
|
+
res.a = mix( 1.0, vB.a, mixVal );
|
|
684
|
+
} else if ( vA.a > 0.0 && vB.a == 0.0 ) {
|
|
685
|
+
res.a = mix( vA.a, 1.0, mixVal );
|
|
686
|
+
}
|
|
562
687
|
}
|
|
563
688
|
return res;
|
|
564
689
|
}
|
|
@@ -597,6 +722,10 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
597
722
|
vec3 s3mBase = diffuseColor.rgb; // 已含 diffuse × map
|
|
598
723
|
// 图层整体透明度(共享 uniform)+ 单瓦片淡入系数(逐材质),逐帧改都不产生重编译
|
|
599
724
|
diffuseColor.a *= uOpacity * uTileFade;
|
|
725
|
+
// 顶点色 alpha:官方 outColor = baseColorWithAlpha * uDiffuseColor,alpha 走的就是这条路。
|
|
726
|
+
// 实测 3D-BIMbuilding-2 / SMID 4421 的材质无纹理、diffuse.a = 1,透明度只存在于
|
|
727
|
+
// 顶点色 alpha(u8 63/255 ≈ 0.247)。不乘进来,这一片就是实心色。
|
|
728
|
+
diffuseColor.a *= vVertColor.a;
|
|
600
729
|
// 所有按单体取值(配色 / 状态纹理 / 选中判定)都走取整后的 id,避免插值噪声
|
|
601
730
|
float s3mBid = s3mBatchId();
|
|
602
731
|
|
|
@@ -608,7 +737,7 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
608
737
|
diffuseColor.rgb = uColorA;
|
|
609
738
|
} else if ( uMode == 1 ) {
|
|
610
739
|
// 原色:贴图 × 顶点色
|
|
611
|
-
diffuseColor.rgb = s3mBase * vVertColor;
|
|
740
|
+
diffuseColor.rgb = s3mBase * vVertColor.rgb;
|
|
612
741
|
} else if ( uMode == 2 ) {
|
|
613
742
|
diffuseColor.rgb = uColorA;
|
|
614
743
|
} else if ( uMode == 3 ) {
|
|
@@ -643,7 +772,7 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
643
772
|
|
|
644
773
|
// 叠加在原色贴图上:保留窗框、玻璃幕墙、材质纹理与顶点色
|
|
645
774
|
if ( uMode != 1 && uTexMix > 0.001 ) {
|
|
646
|
-
vec3 origTex = s3mBase * vVertColor;
|
|
775
|
+
vec3 origTex = s3mBase * vVertColor.rgb;
|
|
647
776
|
vec3 overlay = origTex * diffuseColor.rgb * 1.35;
|
|
648
777
|
diffuseColor.rgb = mix( diffuseColor.rgb, overlay, uTexMix );
|
|
649
778
|
}
|
|
@@ -704,6 +833,34 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
704
833
|
// 放在前面会被覆盖掉。setMode 的 fade-through 就靠它。
|
|
705
834
|
diffuseColor.rgb *= uFade;
|
|
706
835
|
`;
|
|
836
|
+
/**
|
|
837
|
+
* direct 管线(lightingPreset: 'supermap' 完整版)的着色器片段。
|
|
838
|
+
*
|
|
839
|
+
* 官方整条管线(S3MTilesFS.js):贴图字节值不解码 → sRGB 数值空间直乘
|
|
840
|
+
* Lambert(Sun 0.8 / Ambient 0.7,无高光无 tonemap)→ 直出。
|
|
841
|
+
* 我们保留 three 的 sRGB 输出 OETF(不动共享 renderer,底图不受影响),
|
|
842
|
+
* 在片元末尾把颜色先压回 linear,OETF 再把它还原成官方直乘的原始数值。
|
|
843
|
+
*/
|
|
844
|
+
const FRAG_DIRECT_PARS = /* glsl */ `
|
|
845
|
+
#ifdef S3M_DIRECT_COLOR
|
|
846
|
+
uniform vec3 uSunDirection;
|
|
847
|
+
|
|
848
|
+
// 精确 sRGB EOTF 逆(与 renderer 输出端的 OETF 互逆),不是 pow 2.2 近似
|
|
849
|
+
vec3 s3mSRGBToLinear( vec3 c ) {
|
|
850
|
+
return mix( c / 12.92, pow( ( c + 0.055 ) / 1.055, vec3( 2.4 ) ), step( vec3( 0.04045 ), c ) );
|
|
851
|
+
}
|
|
852
|
+
#endif
|
|
853
|
+
`;
|
|
854
|
+
const FRAG_DIRECT_MAIN = /* glsl */ `
|
|
855
|
+
#ifdef S3M_DIRECT_COLOR
|
|
856
|
+
// 官方 S3MTilesFS.js:255-263:uDiffuseColor.rgb * (SunLightColor * NdotL + AmbientLightColor)
|
|
857
|
+
// Sun=0.8、Ambient=0.7;uAmbientColor 数据里恒为 (1,1,1),并入常数
|
|
858
|
+
float s3mNL = max( dot( s3mNorm, normalize( uSunDirection ) ), 0.0 );
|
|
859
|
+
vec3 s3mDirectOut = diffuseColor.rgb * ( 0.8 * s3mNL + vec3( 0.7 ) );
|
|
860
|
+
s3mDirectOut = s3mSRGBToLinear( max( s3mDirectOut, vec3( 0.0 ) ) );
|
|
861
|
+
outgoingLight = s3mDirectOut;
|
|
862
|
+
#endif
|
|
863
|
+
`;
|
|
707
864
|
const FRAG_EMISSIVE = /* glsl */ `
|
|
708
865
|
float s3mSelE = max( step( 0.0, uSelBatch ) * step( abs( s3mBatchId() - uSelBatch ), 0.5 ), uSelWhole );
|
|
709
866
|
// glowOnly 模式下表面不自发光,只保留描边边框;其他模式下适度发光
|
|
@@ -746,6 +903,23 @@ const FRAG_NORMAL = /* glsl */ `
|
|
|
746
903
|
normal = s3mFlatN;
|
|
747
904
|
}
|
|
748
905
|
`;
|
|
906
|
+
/**
|
|
907
|
+
* 金属度 / 粗糙度覆盖。
|
|
908
|
+
*
|
|
909
|
+
* 注入点必须是 `#include <metalnessmap_fragment>` 之后 —— 两个 chunk 各自
|
|
910
|
+
* `float roughnessFactor = roughness;` / `float metalnessFactor = metalness;`,
|
|
911
|
+
* 之前引用会「变量未声明」,之后就落在 `lights_physical_fragment` 之前,
|
|
912
|
+
* 改完立刻参与 GGX 计算。
|
|
913
|
+
*
|
|
914
|
+
* 用共享 uniform 而不是改 `material.metalness`:材质是一 mesh 一份,逐 mesh 改是
|
|
915
|
+
* O(meshes);uniform 改一次全场景生效,也能走样式动画插值。
|
|
916
|
+
*
|
|
917
|
+
* 注意:`lambert` 光照模型里没有这两个 include,注入是 no-op,金属度自然无效。
|
|
918
|
+
*/
|
|
919
|
+
const FRAG_SURFACE = /* glsl */ `
|
|
920
|
+
if ( uMetalness >= 0.0 ) metalnessFactor = clamp( uMetalness, 0.0, 1.0 );
|
|
921
|
+
if ( uRoughness >= 0.0 ) roughnessFactor = clamp( uRoughness, 0.04, 1.0 );
|
|
922
|
+
`;
|
|
749
923
|
export function createStyledMaterial(opts) {
|
|
750
924
|
const uniforms = opts.uniforms;
|
|
751
925
|
// 两种光照模型共用的参数。注入的 chunk 只动 diffuseColor / normal / transformed,
|
|
@@ -788,11 +962,20 @@ export function createStyledMaterial(opts) {
|
|
|
788
962
|
const uTileFade = { value: 1 };
|
|
789
963
|
// 图集材质:只有几何确实带了 aAtlasRect 才开这个宏,否则缺属性会采到 (0,0) 的默认值
|
|
790
964
|
const atlas = !!opts.atlas && !!opts.map;
|
|
965
|
+
// uv 第三分量:同样要求几何真的带 aTexCoordZ,且没有贴图时没有意义。
|
|
966
|
+
// atlas 优先——S3MBLOCK 图集的 aAtlasRect 已经表达了子区域,两者不会同时出现。
|
|
967
|
+
const texCoordZ = !atlas && !!opts.texCoordZ && !!opts.map;
|
|
791
968
|
const secMap = atlas ? (opts.secMap ?? null) : null;
|
|
792
969
|
if (atlas)
|
|
793
970
|
mat.defines = { ...mat.defines, S3M_ATLAS: '' };
|
|
971
|
+
if (texCoordZ)
|
|
972
|
+
mat.defines = { ...mat.defines, S3M_TEXCOORD_Z: '' };
|
|
794
973
|
if (secMap)
|
|
795
974
|
mat.defines = { ...mat.defines, S3M_ATLAS_SEC: '' };
|
|
975
|
+
// supermap 完整版:官方 sRGB 直乘管线(配合 setSrgbTextureDecode(false))
|
|
976
|
+
const direct = colorPipeline === 'direct';
|
|
977
|
+
if (direct)
|
|
978
|
+
mat.defines = { ...mat.defines, S3M_DIRECT_COLOR: '' };
|
|
796
979
|
// 官方 uTextureDim = (base宽, base高, bake宽, bake高),取实际绑定纹理的像素尺寸
|
|
797
980
|
const uAtlasDim = { value: new THREE.Vector2(opts.map?.image?.width || 1, opts.map?.image?.height || 1) };
|
|
798
981
|
const uAtlasDim1 = { value: new THREE.Vector2(secMap?.image?.width || 1, secMap?.image?.height || 1) };
|
|
@@ -807,6 +990,8 @@ export function createStyledMaterial(opts) {
|
|
|
807
990
|
uBatchTexActive,
|
|
808
991
|
uTileFade,
|
|
809
992
|
uSecMap: { value: secMap },
|
|
993
|
+
// direct 管线需要主光方向;没接共享 uniforms 时(单测/独立构建)给个默认值保证能编译
|
|
994
|
+
...(direct ? { uSunDirection: uniforms?.uSunDirection ?? { value: new THREE.Vector3(0.5, 0.5, 0.7071).normalize() } } : {}),
|
|
810
995
|
uAtlasDim,
|
|
811
996
|
uAtlasDim1,
|
|
812
997
|
});
|
|
@@ -816,9 +1001,14 @@ export function createStyledMaterial(opts) {
|
|
|
816
1001
|
.replace('#include <begin_vertex>', `#include <begin_vertex>\n${VERT_ELEVATION}`)
|
|
817
1002
|
.replace('#include <worldpos_vertex>', VERT_WORLD);
|
|
818
1003
|
shader.fragmentShader = shader.fragmentShader
|
|
819
|
-
.replace('#include <common>', `#include <common>\n${FRAG_PARS}`)
|
|
1004
|
+
.replace('#include <common>', `#include <common>\n${FRAG_PARS}${direct ? FRAG_DIRECT_PARS : ''}`)
|
|
820
1005
|
.replace('#include <color_fragment>', `#include <color_fragment>\n${FRAG_COLOR}`)
|
|
821
1006
|
.replace('#include <emissivemap_fragment>', `#include <emissivemap_fragment>\n${FRAG_EMISSIVE}`);
|
|
1007
|
+
if (direct) {
|
|
1008
|
+
// s3mNorm(FRAG_COLOR 里定义)之后、three 组装 outgoingLight 之前整体接管:
|
|
1009
|
+
// PBR 的 specular / 环境项全被丢弃 —— 官方模型里 totalSpecularLight 恒为 0
|
|
1010
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <opaque_fragment>', `${FRAG_DIRECT_MAIN}\n#include <opaque_fragment>`);
|
|
1011
|
+
}
|
|
822
1012
|
if (atlas) {
|
|
823
1013
|
// onBeforeCompile 收到的还是未展开的 `#include <map_fragment>`,不是 include 里的
|
|
824
1014
|
// `texture2D( map, vMapUv )`。只替换后者会静默 no-op,最终仍按整张图集普通采样。
|
|
@@ -830,15 +1020,29 @@ export function createStyledMaterial(opts) {
|
|
|
830
1020
|
`;
|
|
831
1021
|
shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', `${atlasMapFragment}${secMap ? `\n${FRAG_BAKE}` : ''}`);
|
|
832
1022
|
}
|
|
1023
|
+
else if (texCoordZ) {
|
|
1024
|
+
// 普通 S3M + uv 第三分量:逐顶点决定「用不用贴图 / 用哪块子区域」。
|
|
1025
|
+
// 官方就是这个分支让 BIM 的墙体保持纯色(custom0 = -99999 的顶点直接返回白),
|
|
1026
|
+
// 而我们过去一律整张平铺,才会出现「一个面重复铺满整张 uv 贴片」。
|
|
1027
|
+
const texCoordZFragment = /* glsl */ `
|
|
1028
|
+
#ifdef USE_MAP
|
|
1029
|
+
diffuseColor *= s3mTexCoordZUnit( vMapUv, vTexMatrix, map, uAtlasDim.x );
|
|
1030
|
+
#endif
|
|
1031
|
+
`;
|
|
1032
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', texCoordZFragment);
|
|
1033
|
+
}
|
|
833
1034
|
else if (secMap) {
|
|
834
1035
|
shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', `#include <map_fragment>\n${FRAG_BAKE}`);
|
|
835
1036
|
}
|
|
836
1037
|
// 平面 / 平滑着色:运行期分支(见 FRAG_NORMAL),不再依赖 flatShading define
|
|
837
1038
|
shader.fragmentShader = shader.fragmentShader.replace('#include <normal_fragment_begin>', `#include <normal_fragment_begin>\n${FRAG_NORMAL}`);
|
|
1039
|
+
// 金属度 / 粗糙度覆盖:紧跟在 metalnessmap_fragment 之后
|
|
1040
|
+
// (lambert 模板里没有这个 include,replace 会静默 no-op,符合预期)
|
|
1041
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <metalnessmap_fragment>', `#include <metalnessmap_fragment>\n${FRAG_SURFACE}`);
|
|
838
1042
|
};
|
|
839
1043
|
// 不同材质共用同一段注入代码,必须让 three 认为它们的 program 可复用;
|
|
840
1044
|
// 但图集 / 烘焙两套宏会改注入结果,必须进 cacheKey,否则会复用错 program。
|
|
841
|
-
mat.customProgramCacheKey = () => `s3m-styled${atlas ? '-atlas' : ''}${secMap ? '-bake' : ''}`;
|
|
1045
|
+
mat.customProgramCacheKey = () => `s3m-styled${atlas ? '-atlas' : ''}${texCoordZ ? '-texz' : ''}${secMap ? '-bake' : ''}${direct ? '-direct' : ''}`;
|
|
842
1046
|
mat.userData.uSelBatch = uSelBatch;
|
|
843
1047
|
mat.userData.uSelWhole = uSelWhole;
|
|
844
1048
|
// 拾取材质要读这些共享 uniform 的当前值:挂引用而不是拷数值,主材质更新后拾取自动跟上
|
|
@@ -861,6 +1065,25 @@ export function createStyledMaterial(opts) {
|
|
|
861
1065
|
mat.userData.isStyled = true;
|
|
862
1066
|
return mat;
|
|
863
1067
|
}
|
|
1068
|
+
/**
|
|
1069
|
+
* 恢复材质的「基础」混合状态(淡入结束 / 清除单体淡化 / 全局透明度滑回 1 时调用)。
|
|
1070
|
+
*
|
|
1071
|
+
* 材质的最终透明 = **自身语义透明**(alphaMode blend / 顶点色 alpha < 1 / 水面,
|
|
1072
|
+
* 创建时算好记在 `userData.s3mOpts.transparent`)|| 图层全局半透明。
|
|
1073
|
+
*
|
|
1074
|
+
* 以前各处恢复逻辑只看图层透明度(`transparent && !layerTransparent → false`),
|
|
1075
|
+
* 会把自身就是透明的材质(如 3D-BIMbuilding-2 的 SMID 4421)误关成不透明——
|
|
1076
|
+
* 症状是「刚进场景没透明度,切换材质质感重建后又有了」。
|
|
1077
|
+
*
|
|
1078
|
+
* depthWrite 跟随:自身 blend 材质保持创建时的 false;临时透明(淡入 / 全局淡出)
|
|
1079
|
+
* 则尊重调用方的 keepDepthWrite(默认 true,保持深度写入防漏背面)。
|
|
1080
|
+
*/
|
|
1081
|
+
export function restoreBaseBlendState(mat, layerTransparent, keepDepthWrite = true) {
|
|
1082
|
+
const opts = mat.userData?.s3mOpts;
|
|
1083
|
+
const baseTransparent = opts?.transparent === true;
|
|
1084
|
+
mat.transparent = baseTransparent || layerTransparent;
|
|
1085
|
+
mat.depthWrite = baseTransparent ? false : mat.transparent ? keepDepthWrite : true;
|
|
1086
|
+
}
|
|
864
1087
|
/* ------------------------------------------------------------------ 选中描边 */
|
|
865
1088
|
const OUTLINE_VERT = /* glsl */ `
|
|
866
1089
|
attribute float aBatchId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleMaterial.js","sourceRoot":"","sources":["../../src/render/StyleMaterial.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StyleMaterial.js","sourceRoot":"","sources":["../../src/render/StyleMaterial.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,13 @@ import type { S3MTexture } from '../core/types.js';
|
|
|
12
12
|
import type { DecodedTextureData } from '../core/TextureDecode.js';
|
|
13
13
|
export { PixelFormat } from '../core/TextureFormat.js';
|
|
14
14
|
export declare function setMaxAnisotropy(n: number, cap?: number): void;
|
|
15
|
+
/**
|
|
16
|
+
* 单独调各向异性上限(只影响之后创建的纹理)。
|
|
17
|
+
* supermap 预设会设成 1 —— 官方 iClient3D 不开各向异性,斜视角直接采高 mip
|
|
18
|
+
* 平均成纯色;我们默认拉满(Infinity)是为了倾斜摄影立面清晰度,代价是
|
|
19
|
+
* 米制平铺纹理的远处高频纹(点阵/砖缝)被硬保下来,怎么调光照都"不像官方"。
|
|
20
|
+
*/
|
|
21
|
+
export declare function setAnisotropyCap(cap: number): void;
|
|
15
22
|
export declare function setMaxTextureSize(n: number): void;
|
|
16
23
|
export declare function setCompressedTexturesSupported(v: boolean): void;
|
|
17
24
|
export interface DecodedTexture {
|
|
@@ -20,5 +27,8 @@ export interface DecodedTexture {
|
|
|
20
27
|
decoded: string;
|
|
21
28
|
}
|
|
22
29
|
export declare function setTextureOffThreadDecode(fn: ((tex: S3MTexture, compressed: boolean, maxSize?: number) => Promise<DecodedTextureData | null>) | null): void;
|
|
30
|
+
/** 切换纹理解码(只影响之后创建的纹理,已上传 GPU 的不受影响) */
|
|
31
|
+
export declare function setSrgbTextureDecode(v: boolean): void;
|
|
32
|
+
export declare function getSrgbTextureDecode(): boolean;
|
|
23
33
|
export declare function createTexture(tex: S3MTexture | null | undefined): Promise<DecodedTexture>;
|
|
24
34
|
//# sourceMappingURL=TextureFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureFactory.d.ts","sourceRoot":"","sources":["../../src/render/TextureFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAcvD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAW,GAAG,IAAI,CAGhE;AAQD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAEjD;AAUD,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAC1G,IAAI,CAEN;
|
|
1
|
+
{"version":3,"file":"TextureFactory.d.ts","sourceRoot":"","sources":["../../src/render/TextureFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAcvD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAW,GAAG,IAAI,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD;AAQD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAEjD;AAUD,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAC1G,IAAI,CAEN;AAuBD,uCAAuC;AACvC,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAErD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAmCD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAwD/F"}
|