@deck.gl/extensions 9.0.0-beta.10 → 9.0.0-beta.11
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/collision-filter/collision-filter-effect.d.ts +4 -2
- package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-effect.js +10 -9
- package/dist/collision-filter/collision-filter-pass.d.ts +3 -2
- package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-pass.js +5 -7
- package/dist/data-filter/data-filter-extension.d.ts +5 -5
- package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +45 -38
- package/dist/data-filter/shader-module.d.ts +30 -0
- package/dist/data-filter/shader-module.d.ts.map +1 -1
- package/dist/data-filter/shader-module.js +40 -20
- package/dist/dist.dev.js +571 -535
- package/dist/index.cjs +517 -478
- package/dist/index.cjs.map +4 -4
- package/dist/mask/mask-effect.d.ts +5 -4
- package/dist/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +9 -11
- package/dist/mask/mask-pass.d.ts +45 -3
- package/dist/mask/mask-pass.d.ts.map +1 -1
- package/dist/mask/mask-pass.js +17 -9
- package/dist/path-style/path-style-extension.d.ts.map +1 -1
- package/dist/path-style/path-style-extension.js +1 -0
- package/dist/terrain/terrain-cover.d.ts.map +1 -1
- package/dist/terrain/terrain-cover.js +2 -1
- package/dist/terrain/terrain-effect.d.ts +4 -5
- package/dist/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +6 -16
- package/dist/terrain/terrain-pass.d.ts +42 -0
- package/dist/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +24 -16
- package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +9 -8
- package/dist/terrain/utils.d.ts +1 -0
- package/dist/terrain/utils.d.ts.map +1 -1
- package/dist/terrain/utils.js +10 -6
- package/dist.min.js +63 -40
- package/package.json +6 -6
- package/src/collision-filter/collision-filter-effect.ts +23 -23
- package/src/collision-filter/collision-filter-pass.ts +7 -11
- package/src/data-filter/data-filter-extension.ts +57 -49
- package/src/data-filter/shader-module.ts +109 -43
- package/src/mask/mask-effect.ts +30 -19
- package/src/mask/mask-pass.ts +22 -16
- package/src/path-style/path-style-extension.ts +1 -0
- package/src/terrain/terrain-cover.ts +2 -1
- package/src/terrain/terrain-effect.ts +8 -19
- package/src/terrain/terrain-pass.ts +37 -34
- package/src/terrain/terrain-picking-pass.ts +19 -23
- package/src/terrain/utils.ts +12 -6
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {RenderPipelineParameters} from '@luma.gl/core';
|
|
2
2
|
import {Layer, Viewport, _LayersPass as LayersPass, LayersPassRenderOptions} from '@deck.gl/core';
|
|
3
3
|
import type {HeightMapBuilder} from './height-map-builder';
|
|
4
4
|
import type {TerrainCover} from './terrain-cover';
|
|
5
5
|
|
|
6
6
|
export type TerrainPassRenderOptions = LayersPassRenderOptions;
|
|
7
7
|
|
|
8
|
+
const TERRAIN_BLENDING: RenderPipelineParameters = {
|
|
9
|
+
blendColorOperation: 'max',
|
|
10
|
+
blendColorSrcFactor: 'one',
|
|
11
|
+
blendColorDstFactor: 'one',
|
|
12
|
+
blendAlphaOperation: 'max',
|
|
13
|
+
blendAlphaSrcFactor: 'one',
|
|
14
|
+
blendAlphaDstFactor: 'one'
|
|
15
|
+
};
|
|
16
|
+
|
|
8
17
|
/** Renders textures used by the TerrainEffect render pass */
|
|
9
18
|
export class TerrainPass extends LayersPass {
|
|
10
19
|
getRenderableLayers(viewport: Viewport, opts: TerrainPassRenderOptions): Layer[] {
|
|
@@ -32,24 +41,15 @@ export class TerrainPass extends LayersPass {
|
|
|
32
41
|
|
|
33
42
|
target.resize(viewport);
|
|
34
43
|
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.render({
|
|
45
|
-
...opts,
|
|
46
|
-
target,
|
|
47
|
-
pass: 'terrain-height-map',
|
|
48
|
-
layers: opts.layers!,
|
|
49
|
-
viewports: [viewport],
|
|
50
|
-
effects: []
|
|
51
|
-
})
|
|
52
|
-
);
|
|
44
|
+
this.render({
|
|
45
|
+
...opts,
|
|
46
|
+
target,
|
|
47
|
+
pass: 'terrain-height-map',
|
|
48
|
+
layers: opts.layers!,
|
|
49
|
+
viewports: [viewport],
|
|
50
|
+
effects: [],
|
|
51
|
+
clearColor: [0, 0, 0, 0]
|
|
52
|
+
});
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPassRenderOptions>) {
|
|
@@ -64,20 +64,23 @@ export class TerrainPass extends LayersPass {
|
|
|
64
64
|
const layers = terrainCover.filterLayers(opts.layers!);
|
|
65
65
|
target.resize(viewport);
|
|
66
66
|
|
|
67
|
-
this.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
this.render({
|
|
68
|
+
...opts,
|
|
69
|
+
target,
|
|
70
|
+
pass: `terrain-cover-${terrainCover.id}`,
|
|
71
|
+
layers,
|
|
72
|
+
effects: [],
|
|
73
|
+
viewports: [viewport],
|
|
74
|
+
clearColor: [0, 0, 0, 0]
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
protected getLayerParameters(layer: Layer<{}>, layerIndex: number, viewport: Viewport) {
|
|
79
|
+
return {
|
|
80
|
+
...layer.props.parameters,
|
|
81
|
+
blend: true,
|
|
82
|
+
depthTest: false,
|
|
83
|
+
...(layer.props.operation.includes('terrain') && TERRAIN_BLENDING)
|
|
84
|
+
};
|
|
82
85
|
}
|
|
83
86
|
}
|
|
@@ -53,33 +53,29 @@ export class TerrainPickingPass extends PickLayersPass {
|
|
|
53
53
|
}
|
|
54
54
|
target.resize(viewport);
|
|
55
55
|
|
|
56
|
-
this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
|
|
70
|
-
cullRect: undefined,
|
|
71
|
-
deviceRect: viewport,
|
|
72
|
-
pickZ: false
|
|
73
|
-
})
|
|
74
|
-
);
|
|
56
|
+
this.render({
|
|
57
|
+
...opts,
|
|
58
|
+
pickingFBO: target,
|
|
59
|
+
pass: `terrain-cover-picking-${terrainCover.id}`,
|
|
60
|
+
layers,
|
|
61
|
+
effects: [],
|
|
62
|
+
viewports: [viewport],
|
|
63
|
+
// Disable the default culling because TileLayer would cull sublayers based on the screen viewport,
|
|
64
|
+
// not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
|
|
65
|
+
cullRect: undefined,
|
|
66
|
+
deviceRect: viewport,
|
|
67
|
+
pickZ: false
|
|
68
|
+
});
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any {
|
|
72
|
+
let parameters: any;
|
|
78
73
|
if (this.drawParameters[layer.id]) {
|
|
79
|
-
|
|
74
|
+
parameters = this.drawParameters[layer.id];
|
|
75
|
+
} else {
|
|
76
|
+
parameters = super.getLayerParameters(layer, layerIndex, viewport);
|
|
77
|
+
parameters.blend = true;
|
|
80
78
|
}
|
|
81
|
-
|
|
82
|
-
parameters.blend = true;
|
|
83
|
-
return parameters;
|
|
79
|
+
return {...parameters, depthTest: false};
|
|
84
80
|
}
|
|
85
81
|
}
|
package/src/terrain/utils.ts
CHANGED
|
@@ -6,23 +6,29 @@ export function createRenderTarget(
|
|
|
6
6
|
opts: {
|
|
7
7
|
id: string;
|
|
8
8
|
float?: boolean;
|
|
9
|
+
interpolate?: boolean;
|
|
9
10
|
}
|
|
10
11
|
) {
|
|
11
12
|
return device.createFramebuffer({
|
|
12
13
|
id: opts.id,
|
|
13
14
|
colorAttachments: [
|
|
14
15
|
device.createTexture({
|
|
16
|
+
id: opts.id,
|
|
15
17
|
...(opts.float && {
|
|
16
18
|
format: 'rgba32float',
|
|
17
19
|
type: GL.FLOAT
|
|
18
20
|
}),
|
|
19
21
|
mipmaps: false,
|
|
20
|
-
sampler:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
sampler:
|
|
23
|
+
opts.interpolate === false
|
|
24
|
+
? {
|
|
25
|
+
minFilter: 'nearest',
|
|
26
|
+
magFilter: 'nearest'
|
|
27
|
+
}
|
|
28
|
+
: {
|
|
29
|
+
minFilter: 'linear',
|
|
30
|
+
magFilter: 'linear'
|
|
31
|
+
}
|
|
26
32
|
})
|
|
27
33
|
]
|
|
28
34
|
});
|