@deck.gl/geo-layers 9.4.0-alpha.2 → 9.4.0-beta.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/dist/dist.dev.js +6375 -5029
- package/dist/geo-cell-layer/GeoCellLayer.d.ts.map +1 -1
- package/dist/geo-cell-layer/GeoCellLayer.js +2 -1
- package/dist/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/index.cjs +21181 -1889
- package/dist/index.cjs.map +3 -4
- package/dist/mesh-layer/mesh-layer-uniforms.d.ts +1 -0
- package/dist/mesh-layer/mesh-layer-uniforms.d.ts.map +1 -1
- package/dist/mesh-layer/mesh-layer-uniforms.js +8 -0
- package/dist/mesh-layer/mesh-layer-uniforms.js.map +1 -1
- package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
- package/dist/mesh-layer/mesh-layer.js +15 -6
- package/dist/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/mesh-layer/mesh-layer.wgsl.d.ts +3 -0
- package/dist/mesh-layer/mesh-layer.wgsl.d.ts.map +1 -0
- package/dist/mesh-layer/mesh-layer.wgsl.js +130 -0
- package/dist/mesh-layer/mesh-layer.wgsl.js.map +1 -0
- package/dist/mesh-layer/mesh-pbr-material.d.ts +252 -0
- package/dist/mesh-layer/mesh-pbr-material.d.ts.map +1 -0
- package/dist/mesh-layer/mesh-pbr-material.js +27 -0
- package/dist/mesh-layer/mesh-pbr-material.js.map +1 -0
- package/dist/trips-layer/trips-layer-uniforms.d.ts +1 -0
- package/dist/trips-layer/trips-layer-uniforms.d.ts.map +1 -1
- package/dist/trips-layer/trips-layer-uniforms.js +14 -3
- package/dist/trips-layer/trips-layer-uniforms.js.map +1 -1
- package/dist/trips-layer/trips-layer.d.ts +6 -1
- package/dist/trips-layer/trips-layer.d.ts.map +1 -1
- package/dist/trips-layer/trips-layer.js +57 -24
- package/dist/trips-layer/trips-layer.js.map +1 -1
- package/dist/trips-layer/trips-layer.wgsl.d.ts +11 -0
- package/dist/trips-layer/trips-layer.wgsl.d.ts.map +1 -0
- package/dist/trips-layer/trips-layer.wgsl.js +48 -0
- package/dist/trips-layer/trips-layer.wgsl.js.map +1 -0
- package/dist.min.js +1415 -149
- package/dist.webgl-only/a5-layer/a5-layer.js +30 -0
- package/dist.webgl-only/a5-layer/a5-layer.js.map +1 -0
- package/dist.webgl-only/geo-cell-layer/GeoCellLayer.js +57 -0
- package/dist.webgl-only/geo-cell-layer/GeoCellLayer.js.map +1 -0
- package/dist.webgl-only/geohash-layer/geohash-layer.js +24 -0
- package/dist.webgl-only/geohash-layer/geohash-layer.js.map +1 -0
- package/dist.webgl-only/geohash-layer/geohash-utils.js +54 -0
- package/dist.webgl-only/geohash-layer/geohash-utils.js.map +1 -0
- package/dist.webgl-only/great-circle-layer/great-circle-layer.js +17 -0
- package/dist.webgl-only/great-circle-layer/great-circle-layer.js.map +1 -0
- package/dist.webgl-only/h3-layers/h3-cluster-layer.js +52 -0
- package/dist.webgl-only/h3-layers/h3-cluster-layer.js.map +1 -0
- package/dist.webgl-only/h3-layers/h3-hexagon-layer.js +209 -0
- package/dist.webgl-only/h3-layers/h3-hexagon-layer.js.map +1 -0
- package/dist.webgl-only/h3-layers/h3-utils.js +60 -0
- package/dist.webgl-only/h3-layers/h3-utils.js.map +1 -0
- package/dist.webgl-only/index.cjs +22542 -0
- package/dist.webgl-only/index.cjs.map +6 -0
- package/dist.webgl-only/index.js +22 -0
- package/dist.webgl-only/index.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-fragment.glsl.js +34 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-uniforms.js +19 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-vertex.glsl.js +64 -0
- package/dist.webgl-only/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-layer.js +149 -0
- package/dist.webgl-only/mesh-layer/mesh-layer.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-layer.wgsl.js +5 -0
- package/dist.webgl-only/mesh-layer/mesh-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/mesh-layer/mesh-pbr-material.js +27 -0
- package/dist.webgl-only/mesh-layer/mesh-pbr-material.js.map +1 -0
- package/dist.webgl-only/mvt-layer/coordinate-transform.js +45 -0
- package/dist.webgl-only/mvt-layer/coordinate-transform.js.map +1 -0
- package/dist.webgl-only/mvt-layer/find-index-binary.js +100 -0
- package/dist.webgl-only/mvt-layer/find-index-binary.js.map +1 -0
- package/dist.webgl-only/mvt-layer/mvt-layer.js +315 -0
- package/dist.webgl-only/mvt-layer/mvt-layer.js.map +1 -0
- package/dist.webgl-only/quadkey-layer/quadkey-layer.js +27 -0
- package/dist.webgl-only/quadkey-layer/quadkey-layer.js.map +1 -0
- package/dist.webgl-only/quadkey-layer/quadkey-utils.js +30 -0
- package/dist.webgl-only/quadkey-layer/quadkey-utils.js.map +1 -0
- package/dist.webgl-only/s2-layer/s2-geometry.js +127 -0
- package/dist.webgl-only/s2-layer/s2-geometry.js.map +1 -0
- package/dist.webgl-only/s2-layer/s2-layer.js +24 -0
- package/dist.webgl-only/s2-layer/s2-layer.js.map +1 -0
- package/dist.webgl-only/s2-layer/s2-utils.js +91 -0
- package/dist.webgl-only/s2-layer/s2-utils.js.map +1 -0
- package/dist.webgl-only/terrain-layer/terrain-layer.js +260 -0
- package/dist.webgl-only/terrain-layer/terrain-layer.js.map +1 -0
- package/dist.webgl-only/tile-3d-layer/tile-3d-layer.js +343 -0
- package/dist.webgl-only/tile-3d-layer/tile-3d-layer.js.map +1 -0
- package/dist.webgl-only/tile-layer/tile-layer.js +233 -0
- package/dist.webgl-only/tile-layer/tile-layer.js.map +1 -0
- package/dist.webgl-only/tileset-2d/index.js +7 -0
- package/dist.webgl-only/tileset-2d/index.js.map +1 -0
- package/dist.webgl-only/tileset-2d/memoize.js +45 -0
- package/dist.webgl-only/tileset-2d/memoize.js.map +1 -0
- package/dist.webgl-only/tileset-2d/tile-2d-header.js +141 -0
- package/dist.webgl-only/tileset-2d/tile-2d-header.js.map +1 -0
- package/dist.webgl-only/tileset-2d/tile-2d-traversal.js +208 -0
- package/dist.webgl-only/tileset-2d/tile-2d-traversal.js.map +1 -0
- package/dist.webgl-only/tileset-2d/tileset-2d.js +557 -0
- package/dist.webgl-only/tileset-2d/tileset-2d.js.map +1 -0
- package/dist.webgl-only/tileset-2d/types.js +5 -0
- package/dist.webgl-only/tileset-2d/types.js.map +1 -0
- package/dist.webgl-only/tileset-2d/utils.js +246 -0
- package/dist.webgl-only/tileset-2d/utils.js.map +1 -0
- package/dist.webgl-only/trips-layer/trips-layer-uniforms.js +23 -0
- package/dist.webgl-only/trips-layer/trips-layer-uniforms.js.map +1 -0
- package/dist.webgl-only/trips-layer/trips-layer.js +97 -0
- package/dist.webgl-only/trips-layer/trips-layer.js.map +1 -0
- package/dist.webgl-only/trips-layer/trips-layer.wgsl.js +3 -0
- package/dist.webgl-only/trips-layer/trips-layer.wgsl.js.map +1 -0
- package/dist.webgl-only/wms-layer/utils.js +17 -0
- package/dist.webgl-only/wms-layer/utils.js.map +1 -0
- package/dist.webgl-only/wms-layer/wms-layer.js +198 -0
- package/dist.webgl-only/wms-layer/wms-layer.js.map +1 -0
- package/package.json +11 -6
- package/src/geo-cell-layer/GeoCellLayer.ts +2 -0
- package/src/mesh-layer/mesh-layer-uniforms.ts +9 -0
- package/src/mesh-layer/mesh-layer.ts +15 -6
- package/src/mesh-layer/mesh-layer.wgsl.ts +130 -0
- package/src/mesh-layer/mesh-pbr-material.ts +39 -0
- package/src/trips-layer/trips-layer-uniforms.ts +15 -3
- package/src/trips-layer/trips-layer.ts +84 -38
- package/src/trips-layer/trips-layer.wgsl.ts +63 -0
|
@@ -5,6 +5,7 @@ export declare const meshUniforms: {
|
|
|
5
5
|
readonly name: "mesh";
|
|
6
6
|
readonly vs: "layout(std140) uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n";
|
|
7
7
|
readonly fs: "layout(std140) uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n";
|
|
8
|
+
readonly source: "struct MeshUniforms {\n pickFeatureIds: f32,\n};\n\n@group(0) @binding(auto) var<uniform> mesh: MeshUniforms;\n";
|
|
8
9
|
readonly uniformTypes: {
|
|
9
10
|
readonly pickFeatureIds: "f32";
|
|
10
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mesh-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;CAQmB,CAAC"}
|
|
@@ -6,10 +6,18 @@ layout(std140) uniform meshUniforms {
|
|
|
6
6
|
bool pickFeatureIds;
|
|
7
7
|
} mesh;
|
|
8
8
|
`;
|
|
9
|
+
const source = /* wgsl */ `\
|
|
10
|
+
struct MeshUniforms {
|
|
11
|
+
pickFeatureIds: f32,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
@group(0) @binding(auto) var<uniform> mesh: MeshUniforms;
|
|
15
|
+
`;
|
|
9
16
|
export const meshUniforms = {
|
|
10
17
|
name: 'mesh',
|
|
11
18
|
vs: uniformBlock,
|
|
12
19
|
fs: uniformBlock,
|
|
20
|
+
source,
|
|
13
21
|
uniformTypes: {
|
|
14
22
|
pickFeatureIds: 'f32'
|
|
15
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-layer-uniforms.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAMF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,cAAc,EAAE,KAAK;KACtB;CACyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mesh-layer-uniforms.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;CAMzB,CAAC;AAMF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,MAAM;IACN,YAAY,EAAE;QACZ,cAAc,EAAE,KAAK;KACtB;CACyC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-layer.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAmB,iBAAiB,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"mesh-layer.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAmB,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAQ3E,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAoBF,6CAA6C;AAC7C,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE5F,qCAAqC;AACrC,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,eAAe,CAC7F,KAAK,EACL,QAAQ,CAAC,eAAe,CAAC,GAAG,UAAU,CACvC;IACC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,YAAY,wCAAgB;IAEnC,UAAU;IAWV,eAAe;IAoBf,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAS1C,IAAI,CAAC,IAAI,KAAA;IAoBT,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK;IAyBrC,yBAAyB,CAAC,QAAQ,KAAA;IA0BlC,aAAa,CAAC,QAAQ,KAAA,EAAE,IAAI,EAAE,IAAI,GAAG,iBAAiB;IAiBtD,iCAAiC,CAAC,SAAS,KAAA;IAM3C,aAAa,CAAC,OAAO,EAAE,YAAY;CAKpC"}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { parsePBRMaterial } from '@luma.gl/gltf';
|
|
5
|
-
import { pbrMaterial } from '@luma.gl/shadertools';
|
|
6
5
|
import { Model } from '@luma.gl/engine';
|
|
7
6
|
import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
|
|
8
7
|
import { meshUniforms } from "./mesh-layer-uniforms.js";
|
|
8
|
+
import { meshPbrMaterial } from "./mesh-pbr-material.js";
|
|
9
9
|
import vs from "./mesh-layer-vertex.glsl.js";
|
|
10
10
|
import fs from "./mesh-layer-fragment.glsl.js";
|
|
11
|
+
import source from "./mesh-layer.wgsl.js";
|
|
11
12
|
function validateGeometryAttributes(attributes) {
|
|
12
13
|
const positionAttribute = attributes.positions || attributes.POSITION;
|
|
13
14
|
const vertexCount = positionAttribute.value.length / positionAttribute.size;
|
|
@@ -27,9 +28,13 @@ const defaultProps = {
|
|
|
27
28
|
class MeshLayer extends SimpleMeshLayer {
|
|
28
29
|
getShaders() {
|
|
29
30
|
const shaders = super.getShaders();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
return {
|
|
32
|
+
...shaders,
|
|
33
|
+
vs,
|
|
34
|
+
fs,
|
|
35
|
+
source,
|
|
36
|
+
modules: [...shaders.modules, meshPbrMaterial, meshUniforms]
|
|
37
|
+
};
|
|
33
38
|
}
|
|
34
39
|
initializeState() {
|
|
35
40
|
const { featureIds } = this.props;
|
|
@@ -89,7 +94,8 @@ class MeshLayer extends SimpleMeshLayer {
|
|
|
89
94
|
defines: {
|
|
90
95
|
...shaders.defines,
|
|
91
96
|
...parsedPBRMaterial?.defines,
|
|
92
|
-
HAS_UV_REGIONS: mesh.attributes.uvRegions ? 1 : 0
|
|
97
|
+
HAS_UV_REGIONS: mesh.attributes.uvRegions ? 1 : 0,
|
|
98
|
+
HAS_FEATURE_IDS: this.props.featureIds ? 1 : 0
|
|
93
99
|
},
|
|
94
100
|
parameters: parsedPBRMaterial?.parameters,
|
|
95
101
|
isInstanced: true
|
|
@@ -105,8 +111,11 @@ class MeshLayer extends SimpleMeshLayer {
|
|
|
105
111
|
this.setState({ parsedPBRMaterial });
|
|
106
112
|
const { pbr_baseColorSampler } = parsedPBRMaterial.bindings;
|
|
107
113
|
const { emptyTexture } = this.state;
|
|
114
|
+
const meshTexture = pbr_baseColorSampler || emptyTexture;
|
|
108
115
|
const simpleMeshProps = {
|
|
109
|
-
|
|
116
|
+
...(this.context.device.type === 'webgpu'
|
|
117
|
+
? { simpleMeshTexture: meshTexture }
|
|
118
|
+
: { sampler: meshTexture }),
|
|
110
119
|
hasTexture: Boolean(pbr_baseColorSampler)
|
|
111
120
|
};
|
|
112
121
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-layer.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,gBAAgB,EAAoB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"mesh-layer.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "struct VertexInputs {\n @location(0) positions: vec3<f32>,\n#ifdef HAS_NORMALS\n @location(1) normals: vec3<f32>,\n#endif\n @location(2) colors: vec4<f32>,\n#ifdef HAS_UV\n @location(3) texCoords: vec2<f32>,\n#endif\n#ifdef HAS_UV_REGIONS\n @location(4) uvRegions: vec4<f32>,\n#endif\n#ifdef HAS_FEATURE_IDS\n @location(5) rowIndexes: u32,\n#endif\n @location(6) instanceColors: vec4<f32>,\n @location(7) instanceModelMatrixCol0: vec3<f32>,\n @location(8) instanceModelMatrixCol1: vec3<f32>,\n @location(9) instanceModelMatrixCol2: vec3<f32>,\n};\n\nstruct FragmentInputs {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n @location(1) texCoord: vec2<f32>,\n @location(2) pbrPosition: vec3<f32>,\n @location(3) pbrNormal: vec3<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\nfn applyUVRegion(uv: vec2<f32>, uvRegion: vec4<f32>) -> vec2<f32> {\n#ifdef HAS_UV_REGIONS\n // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md\n return fract(uv) * (uvRegion.zw - uvRegion.xy) + uvRegion.xy;\n#else\n return uv;\n#endif\n}\n\n@vertex\nfn vertexMain(\n inputs: VertexInputs,\n @builtin(instance_index) instanceIndex: u32\n) -> FragmentInputs {\n var outputs: FragmentInputs;\n var texCoord = vec2<f32>(0.0);\n var normal = vec3<f32>(0.0, 0.0, 1.0);\n var uvRegion = vec4<f32>(0.0);\n\n#ifdef HAS_UV\n texCoord = inputs.texCoords;\n#endif\n#ifdef HAS_NORMALS\n normal = inputs.normals;\n#endif\n#ifdef HAS_UV_REGIONS\n uvRegion = inputs.uvRegions;\n#endif\n\n texCoord = applyUVRegion(texCoord, uvRegion);\n geometry.uv = texCoord;\n#ifdef HAS_FEATURE_IDS\n geometry.pickingColor = picking_getPickingColorFromIndex(inputs.rowIndexes);\n#else\n geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex);\n#endif\n\n let instanceModelMatrix = mat3x3<f32>(\n inputs.instanceModelMatrixCol0,\n inputs.instanceModelMatrixCol1,\n inputs.instanceModelMatrixCol2\n );\n let commonPosition = vec4<f32>(project_position_vec3_f32(inputs.positions), 1.0);\n\n geometry.position = commonPosition;\n geometry.normal = project_normal(instanceModelMatrix * normal);\n\n outputs.position = project_common_position_to_clipspace(commonPosition);\n outputs.color = vec4<f32>(\n inputs.colors.rgb * inputs.instanceColors.rgb,\n inputs.instanceColors.a\n );\n outputs.texCoord = texCoord;\n outputs.pbrPosition = commonPosition.xyz;\n outputs.pbrNormal = geometry.normal;\n outputs.pickingColor = geometry.pickingColor;\n return outputs;\n}\n\n@fragment\nfn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {\n fragmentGeometry.uv = inputs.texCoord;\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inputs.pickingColor)) {\n discard;\n }\n return vec4<f32>(inputs.pickingColor, 1.0);\n }\n\n fragmentInputs.pbr_vPosition = inputs.pbrPosition;\n fragmentInputs.pbr_vUV0 = inputs.texCoord;\n fragmentInputs.pbr_vUV1 = vec2<f32>(0.0);\n fragmentInputs.pbr_vNormal = inputs.pbrNormal;\n\n var color = inputs.color * pbr_filterColor(vec4<f32>(0.0));\n color.a *= layer.opacity;\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) {\n let highlightAlpha = picking.highlightColor.a;\n let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);\n if (blendedAlpha > 0.0) {\n color = vec4<f32>(\n mix(color.rgb, picking.highlightColor.rgb, highlightAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n }\n }\n\n return deckgl_premultiplied_alpha(color);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=mesh-layer.wgsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-layer.wgsl.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.wgsl.ts"],"names":[],"mappings":";AAIA,wBA6HE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export default /* wgsl */ `\
|
|
5
|
+
struct VertexInputs {
|
|
6
|
+
@location(0) positions: vec3<f32>,
|
|
7
|
+
#ifdef HAS_NORMALS
|
|
8
|
+
@location(1) normals: vec3<f32>,
|
|
9
|
+
#endif
|
|
10
|
+
@location(2) colors: vec4<f32>,
|
|
11
|
+
#ifdef HAS_UV
|
|
12
|
+
@location(3) texCoords: vec2<f32>,
|
|
13
|
+
#endif
|
|
14
|
+
#ifdef HAS_UV_REGIONS
|
|
15
|
+
@location(4) uvRegions: vec4<f32>,
|
|
16
|
+
#endif
|
|
17
|
+
#ifdef HAS_FEATURE_IDS
|
|
18
|
+
@location(5) rowIndexes: u32,
|
|
19
|
+
#endif
|
|
20
|
+
@location(6) instanceColors: vec4<f32>,
|
|
21
|
+
@location(7) instanceModelMatrixCol0: vec3<f32>,
|
|
22
|
+
@location(8) instanceModelMatrixCol1: vec3<f32>,
|
|
23
|
+
@location(9) instanceModelMatrixCol2: vec3<f32>,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
struct FragmentInputs {
|
|
27
|
+
@builtin(position) position: vec4<f32>,
|
|
28
|
+
@location(0) color: vec4<f32>,
|
|
29
|
+
@location(1) texCoord: vec2<f32>,
|
|
30
|
+
@location(2) pbrPosition: vec3<f32>,
|
|
31
|
+
@location(3) pbrNormal: vec3<f32>,
|
|
32
|
+
@location(4) pickingColor: vec3<f32>,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
fn applyUVRegion(uv: vec2<f32>, uvRegion: vec4<f32>) -> vec2<f32> {
|
|
36
|
+
#ifdef HAS_UV_REGIONS
|
|
37
|
+
// https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md
|
|
38
|
+
return fract(uv) * (uvRegion.zw - uvRegion.xy) + uvRegion.xy;
|
|
39
|
+
#else
|
|
40
|
+
return uv;
|
|
41
|
+
#endif
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@vertex
|
|
45
|
+
fn vertexMain(
|
|
46
|
+
inputs: VertexInputs,
|
|
47
|
+
@builtin(instance_index) instanceIndex: u32
|
|
48
|
+
) -> FragmentInputs {
|
|
49
|
+
var outputs: FragmentInputs;
|
|
50
|
+
var texCoord = vec2<f32>(0.0);
|
|
51
|
+
var normal = vec3<f32>(0.0, 0.0, 1.0);
|
|
52
|
+
var uvRegion = vec4<f32>(0.0);
|
|
53
|
+
|
|
54
|
+
#ifdef HAS_UV
|
|
55
|
+
texCoord = inputs.texCoords;
|
|
56
|
+
#endif
|
|
57
|
+
#ifdef HAS_NORMALS
|
|
58
|
+
normal = inputs.normals;
|
|
59
|
+
#endif
|
|
60
|
+
#ifdef HAS_UV_REGIONS
|
|
61
|
+
uvRegion = inputs.uvRegions;
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
texCoord = applyUVRegion(texCoord, uvRegion);
|
|
65
|
+
geometry.uv = texCoord;
|
|
66
|
+
#ifdef HAS_FEATURE_IDS
|
|
67
|
+
geometry.pickingColor = picking_getPickingColorFromIndex(inputs.rowIndexes);
|
|
68
|
+
#else
|
|
69
|
+
geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex);
|
|
70
|
+
#endif
|
|
71
|
+
|
|
72
|
+
let instanceModelMatrix = mat3x3<f32>(
|
|
73
|
+
inputs.instanceModelMatrixCol0,
|
|
74
|
+
inputs.instanceModelMatrixCol1,
|
|
75
|
+
inputs.instanceModelMatrixCol2
|
|
76
|
+
);
|
|
77
|
+
let commonPosition = vec4<f32>(project_position_vec3_f32(inputs.positions), 1.0);
|
|
78
|
+
|
|
79
|
+
geometry.position = commonPosition;
|
|
80
|
+
geometry.normal = project_normal(instanceModelMatrix * normal);
|
|
81
|
+
|
|
82
|
+
outputs.position = project_common_position_to_clipspace(commonPosition);
|
|
83
|
+
outputs.color = vec4<f32>(
|
|
84
|
+
inputs.colors.rgb * inputs.instanceColors.rgb,
|
|
85
|
+
inputs.instanceColors.a
|
|
86
|
+
);
|
|
87
|
+
outputs.texCoord = texCoord;
|
|
88
|
+
outputs.pbrPosition = commonPosition.xyz;
|
|
89
|
+
outputs.pbrNormal = geometry.normal;
|
|
90
|
+
outputs.pickingColor = geometry.pickingColor;
|
|
91
|
+
return outputs;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@fragment
|
|
95
|
+
fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {
|
|
96
|
+
fragmentGeometry.uv = inputs.texCoord;
|
|
97
|
+
|
|
98
|
+
if (picking.isActive > 0.5) {
|
|
99
|
+
if (!picking_isColorValid(inputs.pickingColor)) {
|
|
100
|
+
discard;
|
|
101
|
+
}
|
|
102
|
+
return vec4<f32>(inputs.pickingColor, 1.0);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
fragmentInputs.pbr_vPosition = inputs.pbrPosition;
|
|
106
|
+
fragmentInputs.pbr_vUV0 = inputs.texCoord;
|
|
107
|
+
fragmentInputs.pbr_vUV1 = vec2<f32>(0.0);
|
|
108
|
+
fragmentInputs.pbr_vNormal = inputs.pbrNormal;
|
|
109
|
+
|
|
110
|
+
var color = inputs.color * pbr_filterColor(vec4<f32>(0.0));
|
|
111
|
+
color.a *= layer.opacity;
|
|
112
|
+
|
|
113
|
+
if (picking.isHighlightActive > 0.5) {
|
|
114
|
+
let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);
|
|
115
|
+
if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) {
|
|
116
|
+
let highlightAlpha = picking.highlightColor.a;
|
|
117
|
+
let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);
|
|
118
|
+
if (blendedAlpha > 0.0) {
|
|
119
|
+
color = vec4<f32>(
|
|
120
|
+
mix(color.rgb, picking.highlightColor.rgb, highlightAlpha / blendedAlpha),
|
|
121
|
+
blendedAlpha
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return deckgl_premultiplied_alpha(color);
|
|
128
|
+
}
|
|
129
|
+
`;
|
|
130
|
+
//# sourceMappingURL=mesh-layer.wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-layer.wgsl.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HzB,CAAC"}
|