s3m-three 0.3.8 → 0.3.10
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/s3m-three.iife.ext-three.js +322 -47
- package/dist/browser/s3m-three.iife.js +322 -47
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/render/EdgeLines.d.ts +18 -0
- package/dist/render/EdgeLines.d.ts.map +1 -1
- package/dist/render/EdgeLines.js +95 -13
- package/dist/render/EdgeLines.js.map +1 -1
- package/dist/render/FeatureStyleManager.d.ts +78 -0
- package/dist/render/FeatureStyleManager.d.ts.map +1 -1
- package/dist/render/FeatureStyleManager.js +407 -59
- package/dist/render/FeatureStyleManager.js.map +1 -1
- package/dist/render/GPUPathManager.d.ts +95 -0
- package/dist/render/GPUPathManager.d.ts.map +1 -0
- package/dist/render/GPUPathManager.js +265 -0
- package/dist/render/GPUPathManager.js.map +1 -0
- package/dist/render/OrthoProjection.d.ts +6 -0
- package/dist/render/OrthoProjection.d.ts.map +1 -1
- package/dist/render/OrthoProjection.js +48 -0
- package/dist/render/OrthoProjection.js.map +1 -1
- package/dist/render/S3MViewer.d.ts +66 -0
- package/dist/render/S3MViewer.d.ts.map +1 -1
- package/dist/render/S3MViewer.js +218 -6
- package/dist/render/S3MViewer.js.map +1 -1
- package/dist/render/StyleMaterial.d.ts +21 -0
- package/dist/render/StyleMaterial.d.ts.map +1 -1
- package/dist/render/StyleMaterial.js +256 -21
- package/dist/render/StyleMaterial.js.map +1 -1
- package/package.json +1 -1
- package/src/core/types.ts +10 -0
- package/src/index.ts +8 -0
- package/src/render/EdgeLines.ts +101 -13
- package/src/render/FeatureStyleManager.ts +524 -64
- package/src/render/GPUPathManager.ts +306 -0
- package/src/render/OrthoProjection.ts +52 -0
- package/src/render/S3MViewer.ts +272 -5
- package/src/render/StyleMaterial.ts +264 -21
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import * as THREE from 'three';
|
|
12
12
|
import { DEFAULT_FLOOR_HEIGHT } from '../core/FeatureInfo.js';
|
|
13
|
+
import { GPUPathManager } from './GPUPathManager.js';
|
|
13
14
|
/** 着色模式,数值与着色器里的 uMode 一一对应 */
|
|
14
15
|
export const STYLE = {
|
|
15
16
|
WHITE: 0, // 白膜:忽略贴图与顶点色,纯色 + 光照
|
|
@@ -82,8 +83,15 @@ export const DEFAULT_STYLE = {
|
|
|
82
83
|
depthWrite: true,
|
|
83
84
|
fadeIn: 0,
|
|
84
85
|
};
|
|
85
|
-
const DUMMY_DATA = new Float32Array([
|
|
86
|
-
|
|
86
|
+
const DUMMY_DATA = new Float32Array([
|
|
87
|
+
-1, -1, -1, 0, // Row 0: color rgb, elevation/hidden
|
|
88
|
+
0, 0, 0, 0, // Row 1: translation xyz, opacity
|
|
89
|
+
1, 0, 0, 0, // Row 2: rot row 0, pivot.x
|
|
90
|
+
0, 1, 0, 0, // Row 3: rot row 1, pivot.y
|
|
91
|
+
0, 0, 1, 0, // Row 4: rot row 2, pivot.z
|
|
92
|
+
-1, 0, 0, 0, // Row 5: pathId (-1=none), speed, phase, modeFlag
|
|
93
|
+
]);
|
|
94
|
+
export const DUMMY_BATCH_TEX = new THREE.DataTexture(DUMMY_DATA, 1, 6, THREE.RGBAFormat, THREE.FloatType);
|
|
87
95
|
DUMMY_BATCH_TEX.minFilter = THREE.NearestFilter;
|
|
88
96
|
DUMMY_BATCH_TEX.magFilter = THREE.NearestFilter;
|
|
89
97
|
DUMMY_BATCH_TEX.needsUpdate = true;
|
|
@@ -126,6 +134,16 @@ export function createSharedUniforms() {
|
|
|
126
134
|
uTexMix: { value: 0 },
|
|
127
135
|
/** 基础底色增益 / 暗部补偿(0~1,默认 0.0) */
|
|
128
136
|
uAmbientGain: { value: 0 },
|
|
137
|
+
/** 双纹理交叉淡化插值系数(0 = 纯 uBatchTex, 1 = 纯 uBatchTex2) */
|
|
138
|
+
uBatchMix: { value: 0 },
|
|
139
|
+
/** GPU 路径数据采样纹理 */
|
|
140
|
+
uPathTex: { value: GPUPathManager.DUMMY_PATH_TEX },
|
|
141
|
+
/** GPU 路径纹理中包含的路径条数(高度) */
|
|
142
|
+
uPathCount: { value: 1 },
|
|
143
|
+
/** 是否激活 GPU 路径动画(0 = 未激活,1 = 激活) */
|
|
144
|
+
uPathTexActive: { value: 0 },
|
|
145
|
+
/** GPU 路径时间戳(秒) */
|
|
146
|
+
uPathTime: { value: 0 },
|
|
129
147
|
/**
|
|
130
148
|
* 图层整体透明度:在片元里乘进 diffuseColor.a。
|
|
131
149
|
*
|
|
@@ -164,14 +182,25 @@ const VERT_PARS = /* glsl */ `
|
|
|
164
182
|
uniform float uSelWhole;
|
|
165
183
|
uniform float uSelElevation;
|
|
166
184
|
uniform sampler2D uBatchTex;
|
|
185
|
+
uniform sampler2D uBatchTex2;
|
|
186
|
+
uniform float uBatchMix;
|
|
167
187
|
uniform float uBatchTexWidth;
|
|
168
188
|
uniform int uBatchTexActive;
|
|
189
|
+
uniform sampler2D uPathTex;
|
|
190
|
+
uniform float uPathCount;
|
|
191
|
+
uniform float uPathTime;
|
|
192
|
+
uniform int uPathTexActive;
|
|
169
193
|
varying float vBatchId;
|
|
170
194
|
varying vec3 vVertColor;
|
|
171
195
|
varying float vWorldZ;
|
|
172
196
|
varying vec3 vWorldNormal;
|
|
173
197
|
varying vec3 vWorldPos;
|
|
174
198
|
|
|
199
|
+
// 跨 chunk 共享的顶点姿态变量(在 beginnormal_vertex 建立,begin_vertex / worldpos 使用)
|
|
200
|
+
vec3 s3mCustomOffset;
|
|
201
|
+
mat3 s3mRot;
|
|
202
|
+
vec3 s3mPivot;
|
|
203
|
+
|
|
175
204
|
/** 当前图元所属单体的控制位:实例化取实例属性,其余取逐顶点属性 */
|
|
176
205
|
float s3mBatchRaw() {
|
|
177
206
|
#ifdef USE_INSTANCING
|
|
@@ -180,26 +209,124 @@ const VERT_PARS = /* glsl */ `
|
|
|
180
209
|
return aBatchId;
|
|
181
210
|
#endif
|
|
182
211
|
}
|
|
212
|
+
|
|
213
|
+
vec4 s3mSampleBatch( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
214
|
+
vec4 vA = texture2D( texA, uv );
|
|
215
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
216
|
+
vec4 vB = texture2D( texB, uv );
|
|
217
|
+
return mix( vA, vB, mixVal );
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
vec4 s3mSampleBatchRow0( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
221
|
+
vec4 vA = texture2D( texA, uv );
|
|
222
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
223
|
+
vec4 vB = texture2D( texB, uv );
|
|
224
|
+
vec4 res = mix( vA, vB, mixVal );
|
|
225
|
+
if ( vA.r < 0.0 && vB.r >= 0.0 ) {
|
|
226
|
+
res.rgb = vB.rgb;
|
|
227
|
+
} else if ( vA.r >= 0.0 && vB.r < 0.0 ) {
|
|
228
|
+
res.rgb = vA.rgb;
|
|
229
|
+
}
|
|
230
|
+
if ( vA.a < -0.5 || vB.a < -0.5 ) {
|
|
231
|
+
res.a = ( mixVal >= 0.5 ) ? vB.a : vA.a;
|
|
232
|
+
}
|
|
233
|
+
return res;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
vec4 s3mSampleBatchRow1( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
237
|
+
vec4 vA = texture2D( texA, uv );
|
|
238
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
239
|
+
vec4 vB = texture2D( texB, uv );
|
|
240
|
+
vec4 res = mix( vA, vB, mixVal );
|
|
241
|
+
if ( vA.a == 0.0 && vB.a > 0.0 ) {
|
|
242
|
+
res.a = mix( 1.0, vB.a, mixVal );
|
|
243
|
+
} else if ( vA.a > 0.0 && vB.a == 0.0 ) {
|
|
244
|
+
res.a = mix( vA.a, 1.0, mixVal );
|
|
245
|
+
}
|
|
246
|
+
return res;
|
|
247
|
+
}
|
|
183
248
|
`;
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
249
|
+
const VERT_SETUP = /* glsl */ `
|
|
250
|
+
s3mCustomOffset = vec3( 0.0 );
|
|
251
|
+
s3mRot = mat3( 1.0 );
|
|
252
|
+
s3mPivot = vec3( 0.0 );
|
|
253
|
+
float s3mBatchSetup = s3mBatchRaw();
|
|
254
|
+
if ( uBatchTexActive > 0 && s3mBatchSetup >= 0.0 ) {
|
|
255
|
+
float s3mU = ( s3mBatchSetup + 0.5 ) / uBatchTexWidth;
|
|
256
|
+
vec4 bState = s3mSampleBatchRow0( uBatchTex, uBatchTex2, vec2( s3mU, 0.08333333 ), uBatchMix );
|
|
257
|
+
if ( bState.a >= -0.5 ) {
|
|
258
|
+
vec4 bOffset = s3mSampleBatchRow1( uBatchTex, uBatchTex2, vec2( s3mU, 0.25 ), uBatchMix );
|
|
193
259
|
s3mCustomOffset = bOffset.xyz;
|
|
194
260
|
if ( s3mCustomOffset.z == 0.0 && bState.a > 0.0 ) {
|
|
195
261
|
s3mCustomOffset.z = bState.a;
|
|
196
262
|
}
|
|
263
|
+
vec4 r2 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.41666667 ), uBatchMix );
|
|
264
|
+
vec4 r3 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.58333333 ), uBatchMix );
|
|
265
|
+
vec4 r4 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.75 ), uBatchMix );
|
|
266
|
+
s3mRot = mat3(
|
|
267
|
+
vec3( r2.x, r3.x, r4.x ),
|
|
268
|
+
vec3( r2.y, r3.y, r4.y ),
|
|
269
|
+
vec3( r2.z, r3.z, r4.z )
|
|
270
|
+
);
|
|
271
|
+
s3mPivot = vec3( r2.w, r3.w, r4.w );
|
|
272
|
+
|
|
273
|
+
// Row 5: GPU 路径动画计算
|
|
274
|
+
if ( uPathTexActive > 0 ) {
|
|
275
|
+
vec4 r5 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.91666667 ), uBatchMix );
|
|
276
|
+
float pathId = r5.x;
|
|
277
|
+
float speed = r5.y;
|
|
278
|
+
float phase = r5.z;
|
|
279
|
+
float mode = r5.w;
|
|
280
|
+
if ( pathId >= 0.0 && mode > 0.5 && uPathCount > 0.0 ) {
|
|
281
|
+
float t = phase + uPathTime * speed;
|
|
282
|
+
bool autoHeading = true;
|
|
283
|
+
if ( mode >= 4.0 ) {
|
|
284
|
+
autoHeading = false;
|
|
285
|
+
mode -= 3.0;
|
|
286
|
+
}
|
|
287
|
+
if ( mode < 1.5 ) {
|
|
288
|
+
t = fract( t );
|
|
289
|
+
} else if ( mode < 2.5 ) {
|
|
290
|
+
t = clamp( t, 0.0, 1.0 );
|
|
291
|
+
} else {
|
|
292
|
+
t = mod( t, 2.0 );
|
|
293
|
+
t = ( t > 1.0 ) ? ( 2.0 - t ) : t;
|
|
294
|
+
}
|
|
295
|
+
float pathU = ( t * 255.0 + 0.5 ) / 256.0;
|
|
296
|
+
float pathV = ( pathId + 0.5 ) / uPathCount;
|
|
297
|
+
vec4 pathSample = texture2D( uPathTex, vec2( pathU, pathV ) );
|
|
298
|
+
vec3 pathPos = pathSample.xyz;
|
|
299
|
+
float pathYaw = pathSample.w;
|
|
300
|
+
if ( autoHeading ) {
|
|
301
|
+
float c = cos( pathYaw );
|
|
302
|
+
float s = sin( pathYaw );
|
|
303
|
+
mat3 rotHeading = mat3(
|
|
304
|
+
c, -s, 0.0,
|
|
305
|
+
s, c, 0.0,
|
|
306
|
+
0.0, 0.0, 1.0
|
|
307
|
+
);
|
|
308
|
+
s3mRot = rotHeading * s3mRot;
|
|
309
|
+
}
|
|
310
|
+
s3mCustomOffset += pathPos;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
objectNormal = normalize( s3mRot * objectNormal );
|
|
316
|
+
`;
|
|
317
|
+
const VERT_ELEVATION = /* glsl */ `
|
|
318
|
+
float s3mBatchElev = s3mBatchRaw();
|
|
319
|
+
if ( uBatchTexActive > 0 && s3mBatchElev >= 0.0 ) {
|
|
320
|
+
float s3mU = ( s3mBatchElev + 0.5 ) / uBatchTexWidth;
|
|
321
|
+
vec4 bState = s3mSampleBatchRow0( uBatchTex, uBatchTex2, vec2( s3mU, 0.08333333 ), uBatchMix );
|
|
322
|
+
if ( bState.a < -0.5 ) {
|
|
323
|
+
transformed = vec3( 0.0 );
|
|
197
324
|
}
|
|
198
325
|
}
|
|
199
326
|
|
|
200
|
-
float s3mSelElev = max( step( 0.0, uSelBatch ) * step( abs(
|
|
201
|
-
//
|
|
202
|
-
transformed
|
|
327
|
+
float s3mSelElev = max( step( 0.0, uSelBatch ) * step( abs( s3mBatchElev - uSelBatch ), 0.5 ), uSelWhole );
|
|
328
|
+
// 刚体旋转以 s3mPivot 为中心,再叠加自定义平移与选中拔高
|
|
329
|
+
transformed = s3mRot * ( transformed - s3mPivot ) + s3mPivot + s3mCustomOffset;
|
|
203
330
|
transformed.z += s3mSelElev * uSelElevation;
|
|
204
331
|
`;
|
|
205
332
|
const VERT_WORLD = /* glsl */ `
|
|
@@ -226,7 +353,7 @@ const VERT_WORLD = /* glsl */ `
|
|
|
226
353
|
#else
|
|
227
354
|
mat3 s3mNormMat = mat3( modelMatrix );
|
|
228
355
|
#endif
|
|
229
|
-
vWorldNormal = normalize( s3mNormMat * normal );
|
|
356
|
+
vWorldNormal = normalize( s3mNormMat * ( s3mRot * normal ) );
|
|
230
357
|
`;
|
|
231
358
|
const FRAG_PARS = /* glsl */ `
|
|
232
359
|
#ifdef S3M_ATLAS
|
|
@@ -308,6 +435,8 @@ const FRAG_PARS = /* glsl */ `
|
|
|
308
435
|
uniform float uSelEmissive;
|
|
309
436
|
uniform float uDimFactor;
|
|
310
437
|
uniform sampler2D uBatchTex;
|
|
438
|
+
uniform sampler2D uBatchTex2;
|
|
439
|
+
uniform float uBatchMix;
|
|
311
440
|
uniform float uBatchTexWidth;
|
|
312
441
|
uniform int uBatchTexActive;
|
|
313
442
|
uniform float uFilterMinZ;
|
|
@@ -333,6 +462,35 @@ const FRAG_PARS = /* glsl */ `
|
|
|
333
462
|
varying vec3 vWorldNormal;
|
|
334
463
|
varying vec3 vWorldPos;
|
|
335
464
|
|
|
465
|
+
vec4 s3mSampleBatchRow0( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
466
|
+
vec4 vA = texture2D( texA, uv );
|
|
467
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
468
|
+
vec4 vB = texture2D( texB, uv );
|
|
469
|
+
vec4 res = mix( vA, vB, mixVal );
|
|
470
|
+
if ( vA.r < 0.0 && vB.r >= 0.0 ) {
|
|
471
|
+
res.rgb = vB.rgb;
|
|
472
|
+
} else if ( vA.r >= 0.0 && vB.r < 0.0 ) {
|
|
473
|
+
res.rgb = vA.rgb;
|
|
474
|
+
}
|
|
475
|
+
if ( vA.a < -0.5 || vB.a < -0.5 ) {
|
|
476
|
+
res.a = ( mixVal >= 0.5 ) ? vB.a : vA.a;
|
|
477
|
+
}
|
|
478
|
+
return res;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
vec4 s3mSampleBatchRow1( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
482
|
+
vec4 vA = texture2D( texA, uv );
|
|
483
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
484
|
+
vec4 vB = texture2D( texB, uv );
|
|
485
|
+
vec4 res = mix( vA, vB, mixVal );
|
|
486
|
+
if ( vA.a == 0.0 && vB.a > 0.0 ) {
|
|
487
|
+
res.a = mix( 1.0, vB.a, mixVal );
|
|
488
|
+
} else if ( vA.a > 0.0 && vB.a == 0.0 ) {
|
|
489
|
+
res.a = mix( vA.a, 1.0, mixVal );
|
|
490
|
+
}
|
|
491
|
+
return res;
|
|
492
|
+
}
|
|
493
|
+
|
|
336
494
|
float s3mHash( float p ) {
|
|
337
495
|
p = fract( p * 0.1031 );
|
|
338
496
|
p *= p + 33.33;
|
|
@@ -427,7 +585,8 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
427
585
|
bool hasCustomColor = false;
|
|
428
586
|
if ( uBatchTexActive > 0 && s3mBid >= 0.0 ) {
|
|
429
587
|
// 用取整后的 id 采样:否则逐像素的插值误差会让纹素在边界上来回跳,同样出彩色噪点
|
|
430
|
-
|
|
588
|
+
float s3mU = ( s3mBid + 0.5 ) / uBatchTexWidth;
|
|
589
|
+
vec4 bState = s3mSampleBatchRow0( uBatchTex, uBatchTex2, vec2( s3mU, 0.08333333 ), uBatchMix );
|
|
431
590
|
if ( bState.a < -0.5 ) {
|
|
432
591
|
discard; // 属于被过滤隐藏的单体
|
|
433
592
|
}
|
|
@@ -438,7 +597,7 @@ const FRAG_COLOR = /* glsl */ `
|
|
|
438
597
|
}
|
|
439
598
|
// 单体独立透明度(状态纹理第 2 行 alpha,0 = 无覆盖)。
|
|
440
599
|
// 与全局 uOpacity(diffuseColor.a 初值)和图集贴图自带 alpha 逐级叠乘
|
|
441
|
-
vec4 bOffset =
|
|
600
|
+
vec4 bOffset = s3mSampleBatchRow1( uBatchTex, uBatchTex2, vec2( s3mU, 0.25 ), uBatchMix );
|
|
442
601
|
if ( bOffset.a > 0.0 ) {
|
|
443
602
|
diffuseColor.a *= bOffset.a;
|
|
444
603
|
}
|
|
@@ -518,6 +677,7 @@ export function createStyledMaterial(opts) {
|
|
|
518
677
|
// 没有单体化信息的几何(batchId = -1)只能整块选中
|
|
519
678
|
const uSelWhole = { value: 0 };
|
|
520
679
|
const uBatchTex = { value: DUMMY_BATCH_TEX };
|
|
680
|
+
const uBatchTex2 = { value: DUMMY_BATCH_TEX };
|
|
521
681
|
const uBatchTexWidth = { value: 1.0 };
|
|
522
682
|
const uBatchTexActive = { value: 0 };
|
|
523
683
|
/** 单块瓦片的淡入系数:逐材质独享(每块网格一份材质),默认 1 = 完全显示 */
|
|
@@ -537,6 +697,7 @@ export function createStyledMaterial(opts) {
|
|
|
537
697
|
uSelBatch,
|
|
538
698
|
uSelWhole,
|
|
539
699
|
uBatchTex,
|
|
700
|
+
uBatchTex2,
|
|
540
701
|
uBatchTexWidth,
|
|
541
702
|
uBatchTexActive,
|
|
542
703
|
uTileFade,
|
|
@@ -546,6 +707,7 @@ export function createStyledMaterial(opts) {
|
|
|
546
707
|
});
|
|
547
708
|
shader.vertexShader = shader.vertexShader
|
|
548
709
|
.replace('#include <common>', `#include <common>\n${VERT_PARS}`)
|
|
710
|
+
.replace('#include <beginnormal_vertex>', `#include <beginnormal_vertex>\n${VERT_SETUP}`)
|
|
549
711
|
.replace('#include <begin_vertex>', `#include <begin_vertex>\n${VERT_ELEVATION}`)
|
|
550
712
|
.replace('#include <worldpos_vertex>', VERT_WORLD);
|
|
551
713
|
shader.fragmentShader = shader.fragmentShader
|
|
@@ -573,6 +735,7 @@ export function createStyledMaterial(opts) {
|
|
|
573
735
|
mat.userData.uSelBatch = uSelBatch;
|
|
574
736
|
mat.userData.uSelWhole = uSelWhole;
|
|
575
737
|
mat.userData.uBatchTex = uBatchTex;
|
|
738
|
+
mat.userData.uBatchTex2 = uBatchTex2;
|
|
576
739
|
mat.userData.uBatchTexWidth = uBatchTexWidth;
|
|
577
740
|
mat.userData.uBatchTexActive = uBatchTexActive;
|
|
578
741
|
mat.userData.uTileFade = uTileFade;
|
|
@@ -587,26 +750,92 @@ const OUTLINE_VERT = /* glsl */ `
|
|
|
587
750
|
uniform float uWidth;
|
|
588
751
|
uniform float uElevation;
|
|
589
752
|
uniform sampler2D uBatchTex;
|
|
753
|
+
uniform sampler2D uBatchTex2;
|
|
754
|
+
uniform float uBatchMix;
|
|
590
755
|
uniform float uBatchTexWidth;
|
|
591
756
|
uniform int uBatchTexActive;
|
|
757
|
+
uniform sampler2D uPathTex;
|
|
758
|
+
uniform float uPathCount;
|
|
759
|
+
uniform float uPathTime;
|
|
760
|
+
uniform int uPathTexActive;
|
|
592
761
|
varying float vSel;
|
|
762
|
+
|
|
763
|
+
vec4 s3mSampleBatch( sampler2D texA, sampler2D texB, vec2 uv, float mixVal ) {
|
|
764
|
+
vec4 vA = texture2D( texA, uv );
|
|
765
|
+
if ( mixVal <= 0.0001 ) return vA;
|
|
766
|
+
vec4 vB = texture2D( texB, uv );
|
|
767
|
+
return mix( vA, vB, mixVal );
|
|
768
|
+
}
|
|
769
|
+
|
|
593
770
|
void main() {
|
|
594
771
|
vSel = max( step( 0.0, uSelBatch ) * step( abs( aBatchId - uSelBatch ), 0.5 ), uSelWhole );
|
|
595
772
|
vec3 s3mCustomOffset = vec3( 0.0 );
|
|
773
|
+
mat3 s3mRot = mat3( 1.0 );
|
|
774
|
+
vec3 s3mPivot = vec3( 0.0 );
|
|
596
775
|
if ( uBatchTexActive > 0 && aBatchId >= 0.0 ) {
|
|
597
|
-
|
|
776
|
+
float s3mU = ( aBatchId + 0.5 ) / uBatchTexWidth;
|
|
777
|
+
vec4 bState = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.08333333 ), uBatchMix );
|
|
598
778
|
if ( bState.a < -0.5 ) {
|
|
599
779
|
vSel = 0.0; // 过滤隐藏的单体不显示描边
|
|
600
780
|
} else {
|
|
601
|
-
vec4 bOffset =
|
|
781
|
+
vec4 bOffset = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.25 ), uBatchMix );
|
|
602
782
|
s3mCustomOffset = bOffset.xyz;
|
|
603
783
|
if ( s3mCustomOffset.z == 0.0 && bState.a > 0.0 ) {
|
|
604
784
|
s3mCustomOffset.z = bState.a;
|
|
605
785
|
}
|
|
786
|
+
vec4 r2 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.41666667 ), uBatchMix );
|
|
787
|
+
vec4 r3 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.58333333 ), uBatchMix );
|
|
788
|
+
vec4 r4 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.75 ), uBatchMix );
|
|
789
|
+
s3mRot = mat3(
|
|
790
|
+
vec3( r2.x, r3.x, r4.x ),
|
|
791
|
+
vec3( r2.y, r3.y, r4.y ),
|
|
792
|
+
vec3( r2.z, r3.z, r4.z )
|
|
793
|
+
);
|
|
794
|
+
s3mPivot = vec3( r2.w, r3.w, r4.w );
|
|
795
|
+
|
|
796
|
+
if ( uPathTexActive > 0 ) {
|
|
797
|
+
vec4 r5 = s3mSampleBatch( uBatchTex, uBatchTex2, vec2( s3mU, 0.91666667 ), uBatchMix );
|
|
798
|
+
float pathId = r5.x;
|
|
799
|
+
float speed = r5.y;
|
|
800
|
+
float phase = r5.z;
|
|
801
|
+
float mode = r5.w;
|
|
802
|
+
if ( pathId >= 0.0 && mode > 0.5 && uPathCount > 0.0 ) {
|
|
803
|
+
float t = phase + uPathTime * speed;
|
|
804
|
+
bool autoHeading = true;
|
|
805
|
+
if ( mode >= 4.0 ) {
|
|
806
|
+
autoHeading = false;
|
|
807
|
+
mode -= 3.0;
|
|
808
|
+
}
|
|
809
|
+
if ( mode < 1.5 ) {
|
|
810
|
+
t = fract( t );
|
|
811
|
+
} else if ( mode < 2.5 ) {
|
|
812
|
+
t = clamp( t, 0.0, 1.0 );
|
|
813
|
+
} else {
|
|
814
|
+
t = mod( t, 2.0 );
|
|
815
|
+
t = ( t > 1.0 ) ? ( 2.0 - t ) : t;
|
|
816
|
+
}
|
|
817
|
+
float pathU = ( t * 255.0 + 0.5 ) / 256.0;
|
|
818
|
+
float pathV = ( pathId + 0.5 ) / uPathCount;
|
|
819
|
+
vec4 pathSample = texture2D( uPathTex, vec2( pathU, pathV ) );
|
|
820
|
+
vec3 pathPos = pathSample.xyz;
|
|
821
|
+
float pathYaw = pathSample.w;
|
|
822
|
+
if ( autoHeading ) {
|
|
823
|
+
float c = cos( pathYaw );
|
|
824
|
+
float s = sin( pathYaw );
|
|
825
|
+
mat3 rotHeading = mat3(
|
|
826
|
+
c, -s, 0.0,
|
|
827
|
+
s, c, 0.0,
|
|
828
|
+
0.0, 0.0, 1.0
|
|
829
|
+
);
|
|
830
|
+
s3mRot = rotHeading * s3mRot;
|
|
831
|
+
}
|
|
832
|
+
s3mCustomOffset += pathPos;
|
|
833
|
+
}
|
|
834
|
+
}
|
|
606
835
|
}
|
|
607
836
|
}
|
|
608
|
-
vec3 p = position + normal * uWidth * vSel;
|
|
609
|
-
p
|
|
837
|
+
vec3 p = position + ( s3mRot * normal ) * uWidth * vSel;
|
|
838
|
+
p = s3mRot * ( p - s3mPivot ) + s3mPivot + s3mCustomOffset;
|
|
610
839
|
p.z += vSel * uElevation;
|
|
611
840
|
gl_Position = projectionMatrix * modelViewMatrix * vec4( p, 1.0 );
|
|
612
841
|
}
|
|
@@ -628,8 +857,14 @@ export function createOutlineMaterial(shared, initialWidth = 0.9) {
|
|
|
628
857
|
uWidth: { value: initialWidth },
|
|
629
858
|
uElevation: { value: 0 },
|
|
630
859
|
uBatchTex: { value: DUMMY_BATCH_TEX },
|
|
860
|
+
uBatchTex2: { value: DUMMY_BATCH_TEX },
|
|
861
|
+
uBatchMix: shared.uBatchMix ?? { value: 0 },
|
|
631
862
|
uBatchTexWidth: { value: 1.0 },
|
|
632
863
|
uBatchTexActive: { value: 0 },
|
|
864
|
+
uPathTex: shared.uPathTex ?? { value: GPUPathManager.DUMMY_PATH_TEX },
|
|
865
|
+
uPathCount: shared.uPathCount ?? { value: 1 },
|
|
866
|
+
uPathTexActive: shared.uPathTexActive ?? { value: 0 },
|
|
867
|
+
uPathTime: shared.uPathTime ?? { value: 0 },
|
|
633
868
|
uColor: { value: shared.uSelColor.value.clone() },
|
|
634
869
|
},
|
|
635
870
|
vertexShader: OUTLINE_VERT,
|
|
@@ -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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"}
|
package/package.json
CHANGED
package/src/core/types.ts
CHANGED
|
@@ -283,11 +283,21 @@ export interface StyleUniforms {
|
|
|
283
283
|
uTexMix?: { value: number };
|
|
284
284
|
/** 基础漫反射底色增益 / 直通自发光微调(0~1,默认 0.0) */
|
|
285
285
|
uAmbientGain?: { value: number };
|
|
286
|
+
/** 双纹理交叉淡化插值因子(0~1,0 = 状态 A,1 = 状态 B) */
|
|
287
|
+
uBatchMix?: { value: number };
|
|
286
288
|
/** 图层整体透明度(共享 uniform,透明度动画靠它做到 O(1)) */
|
|
287
289
|
uOpacity?: { value: number };
|
|
288
290
|
/** 棱线淡入淡出乘子(setEdges 过渡期间 0→1) */
|
|
289
291
|
uEdgeFade?: { value: number };
|
|
290
292
|
/** 整体压暗乘子(mode 切换的 fade-through) */
|
|
291
293
|
uFade?: { value: number };
|
|
294
|
+
/** GPU 路径数据采样纹理 */
|
|
295
|
+
uPathTex?: { value: unknown };
|
|
296
|
+
/** GPU 路径纹理中包含的路径条数(高度) */
|
|
297
|
+
uPathCount?: { value: number };
|
|
298
|
+
/** 是否激活 GPU 路径动画(0 = 未激活,1 = 激活) */
|
|
299
|
+
uPathTexActive?: { value: number };
|
|
300
|
+
/** GPU 路径全局时间戳(秒) */
|
|
301
|
+
uPathTime?: { value: number };
|
|
292
302
|
[key: string]: { value: unknown } | undefined;
|
|
293
303
|
}
|
package/src/index.ts
CHANGED
|
@@ -78,6 +78,13 @@ export {
|
|
|
78
78
|
DatasetManager,
|
|
79
79
|
FeatureStyleManager,
|
|
80
80
|
} from './render/S3MViewer.js';
|
|
81
|
+
export {
|
|
82
|
+
resolveRotationMatrix,
|
|
83
|
+
extractEulerAngles,
|
|
84
|
+
} from './render/FeatureStyleManager.js';
|
|
85
|
+
export type { RotationMatrix9, GPUPathOptions } from './render/FeatureStyleManager.js';
|
|
86
|
+
export { GPUPathManager, SAMPLES_PER_PATH } from './render/GPUPathManager.js';
|
|
87
|
+
export type { GPUPathInfo } from './render/GPUPathManager.js';
|
|
81
88
|
export type {
|
|
82
89
|
DatasetAlignment,
|
|
83
90
|
S3MDatasetOptions,
|
|
@@ -129,6 +136,7 @@ export type {
|
|
|
129
136
|
|
|
130
137
|
export {
|
|
131
138
|
buildOrthoMVP,
|
|
139
|
+
buildBlendedMVP,
|
|
132
140
|
extractProjectionMatrix,
|
|
133
141
|
extractNearFar,
|
|
134
142
|
extractFovRadians,
|