@luma.gl/engine 9.3.0-alpha.9 → 9.3.0
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/animation-loop/make-animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/make-animation-loop.js +1 -0
- package/dist/animation-loop/make-animation-loop.js.map +1 -1
- package/dist/compute/computation.js +2 -2
- package/dist/compute/computation.js.map +1 -1
- package/dist/debug/debug-framebuffer.d.ts +9 -4
- package/dist/debug/debug-framebuffer.d.ts.map +1 -1
- package/dist/debug/debug-framebuffer.js +91 -45
- package/dist/debug/debug-framebuffer.js.map +1 -1
- package/dist/dist.dev.js +200 -126
- package/dist/dist.min.js +33 -33
- package/dist/dynamic-texture/dynamic-texture.d.ts.map +1 -1
- package/dist/dynamic-texture/dynamic-texture.js +3 -1
- package/dist/dynamic-texture/dynamic-texture.js.map +1 -1
- package/dist/dynamic-texture/texture-data.js +2 -2
- package/dist/dynamic-texture/texture-data.js.map +1 -1
- package/dist/geometries/cube-geometry.js +7 -7
- package/dist/geometries/cube-geometry.js.map +1 -1
- package/dist/geometries/ico-sphere-geometry.js +3 -1
- package/dist/geometries/ico-sphere-geometry.js.map +1 -1
- package/dist/geometry/gpu-geometry.d.ts.map +1 -1
- package/dist/geometry/gpu-geometry.js +3 -0
- package/dist/geometry/gpu-geometry.js.map +1 -1
- package/dist/index.cjs +176 -108
- package/dist/index.cjs.map +3 -3
- package/dist/material/material.js +2 -2
- package/dist/material/material.js.map +1 -1
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +45 -34
- package/dist/model/model.js.map +1 -1
- package/dist/models/billboard-texture-model.js +4 -4
- package/dist/models/billboard-texture-module.d.ts +1 -1
- package/dist/models/billboard-texture-module.js +1 -1
- package/dist/models/light-model-utils.js +2 -2
- package/dist/modules/picking/color-picking.d.ts +2 -2
- package/dist/modules/picking/index-picking.d.ts +2 -2
- package/dist/modules/picking/legacy-color-picking.d.ts +4 -4
- package/dist/modules/picking/picking-uniforms.d.ts +1 -1
- package/dist/modules/picking/picking-uniforms.d.ts.map +1 -1
- package/dist/modules/picking/picking-uniforms.js +1 -1
- package/dist/modules/picking/picking.d.ts +2 -2
- package/dist/passes/get-fragment-shader.js +4 -4
- package/dist/shader-inputs.d.ts.map +1 -1
- package/dist/shader-inputs.js +20 -23
- package/dist/shader-inputs.js.map +1 -1
- package/package.json +2 -2
- package/src/animation-loop/make-animation-loop.ts +1 -0
- package/src/compute/computation.ts +2 -2
- package/src/debug/debug-framebuffer.ts +139 -61
- package/src/dynamic-texture/dynamic-texture.ts +3 -5
- package/src/dynamic-texture/texture-data.ts +2 -2
- package/src/dynamic-texture/texture-data.ts.disabled +1 -1
- package/src/geometries/cube-geometry.ts +7 -7
- package/src/geometries/ico-sphere-geometry.ts +3 -1
- package/src/geometry/gpu-geometry.ts +3 -0
- package/src/material/material.ts +2 -2
- package/src/model/model.ts +48 -36
- package/src/models/billboard-texture-model.ts +4 -4
- package/src/models/billboard-texture-module.ts +1 -1
- package/src/models/light-model-utils.ts +2 -2
- package/src/modules/picking/picking-uniforms.ts +1 -1
- package/src/passes/get-fragment-shader.ts +4 -4
- package/src/shader-inputs.ts +32 -41
|
@@ -39,10 +39,10 @@ export class Material {
|
|
|
39
39
|
module
|
|
40
40
|
]));
|
|
41
41
|
this.shaderInputs = props.shaderInputs || new ShaderInputs(moduleMap);
|
|
42
|
-
this._uniformStore = new UniformStore(this.shaderInputs.modules);
|
|
42
|
+
this._uniformStore = new UniformStore(this.device, this.shaderInputs.modules);
|
|
43
43
|
for (const [moduleName, module] of Object.entries(this.shaderInputs.modules)) {
|
|
44
44
|
if (this.ownsModule(moduleName) && shaderModuleHasUniforms(module)) {
|
|
45
|
-
const uniformBuffer = this._uniformStore.getManagedUniformBuffer(
|
|
45
|
+
const uniformBuffer = this._uniformStore.getManagedUniformBuffer(moduleName);
|
|
46
46
|
this.bindings[`${moduleName}Uniforms`] = uniformBuffer;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.js","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAElF,OAAO,EAAC,cAAc,EAAC,8CAA2C;AAClE,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,uBAAuB,EAAC,wCAAqC;AACrE,OAAO,EAAC,GAAG,EAAC,wBAAqB;AACjC,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,eAAe,EAChB,8BAA2B;AAwC5B;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IAInB,uCAAuC;IAC9B,EAAE,CAAS;IACpB,+CAA+C;IACtC,MAAM,CAAS;IACxB,gDAAgD;IACvC,OAAO,CAA2C;IAC3D,oDAAoD;IAC3C,YAAY,CAA6B;IAClD,8EAA8E;IACrE,QAAQ,GAA6C,EAAE,CAAC;IAEzD,aAAa,CAAe;IAC5B,oBAAoB,GAAW,EAAE,CAAC;IAE1C,YAAY,MAAc,EAAE,QAAgD,EAAE;QAC5E,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,OAAO;YACV,KAAK,CAAC,OAAO;gBACb,IAAI,eAAe,CAA0B,MAAM,EAAE;oBACnD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;iBACjE,CAAC,CAAC;QAEL,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI;YACX,MAAM;SACP,CAAC,CACyE,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,YAAY,CAAe,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"material.js","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,MAAM,EAEN,MAAM,EAIN,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EAKb,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAC,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAC,QAAQ,EAAC,gCAA6B;AACnD,OAAO,EAAC,WAAW,EAAkB,oCAAiC;AAWtE,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,cAAc,EAAC,8CAA2C;AAClE,OAAO,EAAC,QAAQ,EAAC,gCAA6B;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model/model.js
CHANGED
|
@@ -15,6 +15,7 @@ import { ShaderInputs } from "../shader-inputs.js";
|
|
|
15
15
|
import { DynamicTexture } from "../dynamic-texture/dynamic-texture.js";
|
|
16
16
|
const LOG_DRAW_PRIORITY = 2;
|
|
17
17
|
const LOG_DRAW_TIMEOUT = 10000;
|
|
18
|
+
const PIPELINE_INITIALIZATION_FAILED = 'render pipeline initialization failed';
|
|
18
19
|
/**
|
|
19
20
|
* High level draw API for luma.gl.
|
|
20
21
|
*
|
|
@@ -295,6 +296,7 @@ export class Model {
|
|
|
295
296
|
renderPass.popDebugGroup();
|
|
296
297
|
}
|
|
297
298
|
let drawSuccess;
|
|
299
|
+
let pipelineErrored = this.pipeline.isErrored;
|
|
298
300
|
try {
|
|
299
301
|
renderPass.pushDebugGroup(`${this}.draw(${renderPass})`);
|
|
300
302
|
this._logDrawCallStart();
|
|
@@ -302,33 +304,40 @@ export class Model {
|
|
|
302
304
|
// TODO - inside RenderPass is likely the worst place to do this from performance perspective.
|
|
303
305
|
// Application can call Model.predraw() to avoid this.
|
|
304
306
|
this.pipeline = this._updatePipeline();
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
307
|
+
pipelineErrored = this.pipeline.isErrored;
|
|
308
|
+
if (pipelineErrored) {
|
|
309
|
+
log.info(LOG_DRAW_PRIORITY, `>>> DRAWING ABORTED ${this.id}: ${PIPELINE_INITIALIZATION_FAILED}`)();
|
|
310
|
+
drawSuccess = false;
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
const syncBindings = this._getBindings();
|
|
314
|
+
const syncBindGroups = this._getBindGroups();
|
|
315
|
+
const { indexBuffer } = this.vertexArray;
|
|
316
|
+
const indexCount = indexBuffer
|
|
317
|
+
? indexBuffer.byteLength / (indexBuffer.indexType === 'uint32' ? 4 : 2)
|
|
318
|
+
: undefined;
|
|
319
|
+
drawSuccess = this.pipeline.draw({
|
|
320
|
+
renderPass,
|
|
321
|
+
vertexArray: this.vertexArray,
|
|
322
|
+
isInstanced: this.isInstanced,
|
|
323
|
+
vertexCount: this.vertexCount,
|
|
324
|
+
instanceCount: this.instanceCount,
|
|
325
|
+
indexCount,
|
|
326
|
+
transformFeedback: this.transformFeedback || undefined,
|
|
327
|
+
// Pipelines may be shared across models when caching is enabled, so bindings
|
|
328
|
+
// and WebGL uniforms must be supplied on every draw instead of being stored
|
|
329
|
+
// on the pipeline instance.
|
|
330
|
+
bindings: syncBindings,
|
|
331
|
+
bindGroups: syncBindGroups,
|
|
332
|
+
_bindGroupCacheKeys: this._getBindGroupCacheKeys(),
|
|
333
|
+
uniforms: this.props.uniforms,
|
|
334
|
+
// WebGL shares underlying cached pipelines even for models that have different parameters and topology,
|
|
335
|
+
// so we must provide our unique parameters to each draw
|
|
336
|
+
// (In WebGPU most parameters are encoded in the pipeline and cannot be changed per draw call)
|
|
337
|
+
parameters: this.parameters,
|
|
338
|
+
topology: this.topology
|
|
339
|
+
});
|
|
340
|
+
}
|
|
332
341
|
}
|
|
333
342
|
finally {
|
|
334
343
|
renderPass.popDebugGroup();
|
|
@@ -340,6 +349,9 @@ export class Model {
|
|
|
340
349
|
this._lastDrawTimestamp = this.device.timestamp;
|
|
341
350
|
this._needsRedraw = false;
|
|
342
351
|
}
|
|
352
|
+
else if (pipelineErrored) {
|
|
353
|
+
this._needsRedraw = PIPELINE_INITIALIZATION_FAILED;
|
|
354
|
+
}
|
|
343
355
|
else {
|
|
344
356
|
this._needsRedraw = 'waiting for resource initialization';
|
|
345
357
|
}
|
|
@@ -433,11 +445,11 @@ export class Model {
|
|
|
433
445
|
/** Set the shader inputs */
|
|
434
446
|
setShaderInputs(shaderInputs) {
|
|
435
447
|
this.shaderInputs = shaderInputs;
|
|
436
|
-
this._uniformStore = new UniformStore(this.shaderInputs.modules);
|
|
448
|
+
this._uniformStore = new UniformStore(this.device, this.shaderInputs.modules);
|
|
437
449
|
// Create uniform buffer bindings for all modules that actually have uniforms
|
|
438
450
|
for (const [moduleName, module] of Object.entries(this.shaderInputs.modules)) {
|
|
439
451
|
if (shaderModuleHasUniforms(module) && !this.material?.ownsModule(moduleName)) {
|
|
440
|
-
const uniformBuffer = this._uniformStore.getManagedUniformBuffer(
|
|
452
|
+
const uniformBuffer = this._uniformStore.getManagedUniformBuffer(moduleName);
|
|
441
453
|
this.bindings[`${moduleName}Uniforms`] = uniformBuffer;
|
|
442
454
|
}
|
|
443
455
|
}
|
|
@@ -723,12 +735,11 @@ export class Model {
|
|
|
723
735
|
// } || (this._drawCount++ > 3 && this._drawCount % 60)) {
|
|
724
736
|
return;
|
|
725
737
|
}
|
|
726
|
-
// TODO - display framebuffer output in debug window
|
|
727
738
|
const framebuffer = renderPass.props.framebuffer;
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
}
|
|
739
|
+
debugFramebuffer(renderPass, framebuffer, {
|
|
740
|
+
id: framebuffer?.id || `${this.id}-framebuffer`,
|
|
741
|
+
minimap: true
|
|
742
|
+
});
|
|
732
743
|
}
|
|
733
744
|
_getAttributeDebugTable() {
|
|
734
745
|
const table = {};
|
package/dist/model/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ const backgroundModule = {
|
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
const BACKGROUND_FS_WGSL = /* wgsl */ `\
|
|
13
|
-
@group(0) @binding(
|
|
14
|
-
@group(0) @binding(
|
|
13
|
+
@group(0) @binding(auto) var backgroundTexture: texture_2d<f32>;
|
|
14
|
+
@group(0) @binding(auto) var backgroundTextureSampler: sampler;
|
|
15
15
|
struct backgroundUniforms {
|
|
16
16
|
scale: vec2<f32>,
|
|
17
17
|
};
|
|
18
|
-
@group(0) @binding(
|
|
18
|
+
@group(0) @binding(auto) var<uniform> background: backgroundUniforms;
|
|
19
19
|
|
|
20
20
|
fn billboardTexture_getTextureUV(uv: vec2<f32>) -> vec2<f32> {
|
|
21
21
|
let scale: vec2<f32> = background.scale;
|
|
@@ -35,7 +35,7 @@ precision highp float;
|
|
|
35
35
|
|
|
36
36
|
uniform sampler2D backgroundTexture;
|
|
37
37
|
|
|
38
|
-
uniform backgroundUniforms {
|
|
38
|
+
layout(std140) uniform backgroundUniforms {
|
|
39
39
|
vec2 scale;
|
|
40
40
|
} background;
|
|
41
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const billboardTexture: {
|
|
2
2
|
readonly name: "billboardTexture";
|
|
3
|
-
readonly fs: "#version 300 es\n\
|
|
3
|
+
readonly fs: "#version 300 es\n\nlayout(std140) uniform billboardTextureUniforms {\n vec2 topLeft;\n vec2 bottomRight;\n} billboardTexture;\n\nprecision highp float;\nuniform sampler2D backgroundTexture;\nout vec4 fragColor;\n\nvec2 billboardTexture_getTextureUV() {\n ivec2 iTexSize = textureSize(backgroundTexture, 0) * 2;\n vec2 texSize = vec2(float(iTexSize.x), float(iTexSize.y));\n vec2 position = gl_FragCoord.xy / texSize;\n return position;\n}\n\nvoid main(void) {\n vec2 position = billboardTexture_getTextureUV();\n fragColor = texture(backgroundTexture, position);\n}\n";
|
|
4
4
|
readonly dependencies: [];
|
|
5
5
|
readonly uniformTypes: {
|
|
6
6
|
readonly topLeft: "vec2<f32>";
|
|
@@ -304,7 +304,7 @@ struct lightMarkerUniforms {
|
|
|
304
304
|
viewProjectionMatrix: mat4x4<f32>,
|
|
305
305
|
};
|
|
306
306
|
|
|
307
|
-
@
|
|
307
|
+
@group(0) @binding(auto) var<uniform> lightMarker : lightMarkerUniforms;
|
|
308
308
|
|
|
309
309
|
struct VertexInputs {
|
|
310
310
|
@location(0) positions : vec3<f32>,
|
|
@@ -355,7 +355,7 @@ in vec3 instanceDirection;
|
|
|
355
355
|
in vec3 instanceScale;
|
|
356
356
|
in vec4 instanceColor;
|
|
357
357
|
|
|
358
|
-
uniform lightMarkerUniforms {
|
|
358
|
+
layout(std140) uniform lightMarkerUniforms {
|
|
359
359
|
mat4 viewProjectionMatrix;
|
|
360
360
|
} lightMarker;
|
|
361
361
|
|
|
@@ -5,8 +5,8 @@ import type { PickingProps, PickingUniforms } from "./picking-uniforms.js";
|
|
|
5
5
|
export declare const picking: {
|
|
6
6
|
readonly name: "picking";
|
|
7
7
|
readonly source: "struct pickingUniforms {\n isActive: i32,\n indexMode: i32,\n batchIndex: i32,\n\n isHighlightActive: i32,\n highlightedBatchIndex: i32,\n highlightedObjectIndex: i32,\n highlightColor: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n\n\nconst COLOR_PICKING_INVALID_INDEX = -1;\nconst COLOR_PICKING_MAX_OBJECT_INDEX = 16777214;\nconst COLOR_PICKING_MAX_BATCH_INDEX = 254;\n\nfn picking_setObjectIndex(objectIndex: i32) -> i32 {\n return objectIndex;\n}\n\nfn picking_isObjectHighlighted(objectIndex: i32) -> bool {\n return\n picking.isHighlightActive != 0 &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == objectIndex;\n}\n\nfn picking_filterHighlightColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0 || !picking_isObjectHighlighted(objectIndex)) {\n return color;\n }\n\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n if (blendedAlpha == 0.0) {\n return vec4<f32>(color.rgb, 0.0);\n }\n\n let highLightRatio = highLightAlpha / blendedAlpha;\n let blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4<f32>(blendedRGB, blendedAlpha);\n}\n\nfn picking_canEncodePickInfo(objectIndex: i32) -> bool {\n return\n objectIndex != COLOR_PICKING_INVALID_INDEX &&\n objectIndex >= 0 &&\n objectIndex <= COLOR_PICKING_MAX_OBJECT_INDEX &&\n picking.batchIndex >= 0 &&\n picking.batchIndex <= COLOR_PICKING_MAX_BATCH_INDEX;\n}\n\nfn picking_getPickingColor(objectIndex: i32) -> vec4<f32> {\n if (!picking_canEncodePickInfo(objectIndex)) {\n return vec4<f32>(0.0, 0.0, 0.0, 0.0);\n }\n\n let encodedObjectIndex = objectIndex + 1;\n let red = encodedObjectIndex % 256;\n let green = (encodedObjectIndex / 256) % 256;\n let blue = (encodedObjectIndex / 65536) % 256;\n let alpha = picking.batchIndex + 1;\n\n return vec4<f32>(\n f32(red) / 255.0,\n f32(green) / 255.0,\n f32(blue) / 255.0,\n f32(alpha) / 255.0\n );\n}\n\nfn picking_filterPickingColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0) {\n if (!picking_canEncodePickInfo(objectIndex)) {\n discard;\n }\n return picking_getPickingColor(objectIndex);\n }\n\n return color;\n}\n";
|
|
8
|
-
readonly vs: "precision highp float;\nprecision highp int;\n\
|
|
9
|
-
readonly fs: "precision highp float;\nprecision highp int;\n\
|
|
8
|
+
readonly vs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int INDEX_PICKING_MODE_INSTANCE = 0;\nconst int INDEX_PICKING_MODE_CUSTOM = 1;\n\nconst int COLOR_PICKING_INVALID_INDEX = -1;\n\nflat out int picking_objectIndex;\n\nvoid picking_setObjectIndex(int objectIndex) {\n switch (picking.indexMode) {\n case INDEX_PICKING_MODE_INSTANCE:\n picking_objectIndex = gl_InstanceID;\n break;\n case INDEX_PICKING_MODE_CUSTOM:\n picking_objectIndex = objectIndex;\n break;\n }\n}\n";
|
|
9
|
+
readonly fs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int COLOR_PICKING_INVALID_INDEX = -1;\nconst int COLOR_PICKING_MAX_OBJECT_INDEX = 16777214;\nconst int COLOR_PICKING_MAX_BATCH_INDEX = 254;\n\nflat in int picking_objectIndex;\n\nbool picking_isFragmentHighlighted() {\n return\n bool(picking.isHighlightActive) &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == picking_objectIndex\n ;\n}\n\nvec4 picking_filterHighlightColor(vec4 color) {\n if (bool(picking.isActive)) {\n return color;\n }\n\n if (!picking_isFragmentHighlighted()) {\n return color;\n }\n\n float highLightAlpha = picking.highlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nbool picking_canEncodePickInfo(int objectIndex) {\n return\n objectIndex != COLOR_PICKING_INVALID_INDEX &&\n objectIndex >= 0 &&\n objectIndex <= COLOR_PICKING_MAX_OBJECT_INDEX &&\n picking.batchIndex >= 0 &&\n picking.batchIndex <= COLOR_PICKING_MAX_BATCH_INDEX;\n}\n\nvec4 picking_getPickingColor() {\n if (!picking_canEncodePickInfo(picking_objectIndex)) {\n return vec4(0.0);\n }\n\n int encodedObjectIndex = picking_objectIndex + 1;\n int red = encodedObjectIndex % 256;\n int green = (encodedObjectIndex / 256) % 256;\n int blue = (encodedObjectIndex / 65536) % 256;\n int alpha = picking.batchIndex + 1;\n\n return vec4(float(red), float(green), float(blue), float(alpha)) / 255.0;\n}\n\nvec4 picking_filterPickingColor(vec4 color) {\n if (bool(picking.isActive)) {\n if (!picking_canEncodePickInfo(picking_objectIndex)) {\n discard;\n }\n return picking_getPickingColor();\n }\n\n return color;\n}\n\nvec4 picking_filterColor(vec4 color) {\n vec4 outColor = color;\n outColor = picking_filterHighlightColor(outColor);\n outColor = picking_filterPickingColor(outColor);\n return outColor;\n}\n";
|
|
10
10
|
readonly props: PickingProps;
|
|
11
11
|
readonly uniforms: PickingUniforms;
|
|
12
12
|
readonly uniformTypes: Required<import("@luma.gl/shadertools").UniformTypes<PickingUniforms>>;
|
|
@@ -13,8 +13,8 @@ import type { PickingProps, PickingUniforms } from "./picking-uniforms.js";
|
|
|
13
13
|
export declare const picking: {
|
|
14
14
|
readonly name: "picking";
|
|
15
15
|
readonly source: "struct pickingUniforms {\n isActive: i32,\n indexMode: i32,\n batchIndex: i32,\n\n isHighlightActive: i32,\n highlightedBatchIndex: i32,\n highlightedObjectIndex: i32,\n highlightColor: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n\n\nconst INDEX_PICKING_MODE_INSTANCE = 0;\nconst INDEX_PICKING_MODE_CUSTOM = 1;\nconst INDEX_PICKING_INVALID_INDEX = -1; // 2^32 - 1\n\n/**\n * WGSL shaders need to carry the returned object index through their own stage outputs.\n */\nfn picking_setObjectIndex(objectIndex: i32) -> i32 {\n return objectIndex;\n}\n\nfn picking_isObjectHighlighted(objectIndex: i32) -> bool {\n return\n picking.isHighlightActive != 0 &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == objectIndex;\n}\n\nfn picking_filterHighlightColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0 || !picking_isObjectHighlighted(objectIndex)) {\n return color;\n }\n\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n if (blendedAlpha == 0.0) {\n return vec4<f32>(color.rgb, 0.0);\n }\n\n let highLightRatio = highLightAlpha / blendedAlpha;\n let blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4<f32>(blendedRGB, blendedAlpha);\n}\n\nfn picking_filterPickingColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0 && objectIndex == INDEX_PICKING_INVALID_INDEX) {\n discard;\n }\n return color;\n}\n\nfn picking_getPickingColor(objectIndex: i32) -> vec2<i32> {\n return vec2<i32>(objectIndex, picking.batchIndex);\n}\n\n";
|
|
16
|
-
readonly vs: "precision highp float;\nprecision highp int;\n\
|
|
17
|
-
readonly fs: "precision highp float;\nprecision highp int;\n\
|
|
16
|
+
readonly vs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int INDEX_PICKING_MODE_INSTANCE = 0;\nconst int INDEX_PICKING_MODE_CUSTOM = 1;\n\nconst int INDEX_PICKING_INVALID_INDEX = -1; // 2^32 - 1\n\nflat out int picking_objectIndex;\n\n/**\n * Vertex shaders should call this function to set the object index.\n * If using instance or vertex mode, argument will be ignored, 0 can be supplied.\n */\nvoid picking_setObjectIndex(int objectIndex) {\n switch (picking.indexMode) {\n case INDEX_PICKING_MODE_INSTANCE:\n picking_objectIndex = gl_InstanceID;\n break;\n case INDEX_PICKING_MODE_CUSTOM:\n picking_objectIndex = objectIndex;\n break;\n }\n}\n";
|
|
17
|
+
readonly fs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int INDEX_PICKING_INVALID_INDEX = -1; // 2^32 - 1\n\nflat in int picking_objectIndex;\n\n/**\n * Check if this vertex is highlighted (part of the selected batch and object)\n */ \nbool picking_isFragmentHighlighted() {\n return \n bool(picking.isHighlightActive) &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == picking_objectIndex\n ;\n}\n\n/**\n * Returns highlight color if this item is selected.\n */\nvec4 picking_filterHighlightColor(vec4 color) {\n // If we are still picking, we don't highlight\n if (bool(picking.isActive)) {\n return color;\n }\n\n // If we are not highlighted, return color as is\n if (!picking_isFragmentHighlighted()) {\n return color;\n }\n \n // Blend in highlight color based on its alpha value\n float highLightAlpha = picking.highlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\n/*\n * Returns picking color if picking enabled else unmodified argument.\n */\nivec4 picking_getPickingColor() {\n // Assumes that colorAttachment0 is rg32int\n // TODO? - we could render indices into a second color attachment and not mess with fragColor\n return ivec4(picking_objectIndex, picking.batchIndex, 0u, 0u); \n}\n\nvec4 picking_filterPickingColor(vec4 color) {\n if (bool(picking.isActive)) {\n if (picking_objectIndex == INDEX_PICKING_INVALID_INDEX) {\n discard;\n }\n }\n return color;\n}\n\n/*\n * Returns picking color if picking is enabled if not\n * highlight color if this item is selected, otherwise unmodified argument.\n */\nvec4 picking_filterColor(vec4 color) {\n vec4 outColor = color;\n outColor = picking_filterHighlightColor(outColor);\n outColor = picking_filterPickingColor(outColor);\n return outColor;\n}\n";
|
|
18
18
|
readonly props: PickingProps;
|
|
19
19
|
readonly uniforms: PickingUniforms;
|
|
20
20
|
readonly uniformTypes: Required<import("@luma.gl/shadertools").UniformTypes<PickingUniforms>>;
|
|
@@ -7,7 +7,7 @@ export declare const legacyColorPicking: {
|
|
|
7
7
|
readonly isActive: "f32";
|
|
8
8
|
readonly isAttribute: "f32";
|
|
9
9
|
readonly isHighlightActive: "f32";
|
|
10
|
-
readonly
|
|
10
|
+
readonly useByteColors: "f32";
|
|
11
11
|
readonly highlightedObjectColor: "vec3<f32>";
|
|
12
12
|
readonly highlightColor: "vec4<f32>";
|
|
13
13
|
};
|
|
@@ -15,12 +15,12 @@ export declare const legacyColorPicking: {
|
|
|
15
15
|
readonly isActive: false;
|
|
16
16
|
readonly isAttribute: false;
|
|
17
17
|
readonly isHighlightActive: false;
|
|
18
|
-
readonly
|
|
18
|
+
readonly useByteColors: true;
|
|
19
19
|
readonly highlightedObjectColor: [0, 0, 0];
|
|
20
20
|
readonly highlightColor: import("@math.gl/types").NumberArray4;
|
|
21
21
|
};
|
|
22
|
-
readonly vs: "uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float
|
|
23
|
-
readonly fs: "uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float
|
|
22
|
+
readonly vs: "layout(std140) uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float useByteColors;\n vec3 highlightedObjectColor;\n vec4 highlightColor;\n} picking;\n\nout vec4 picking_vRGBcolor_Avalid;\n\n// Normalize unsigned byte color to 0-1 range\nvec3 picking_normalizeColor(vec3 color) {\n return picking.useByteColors > 0.5 ? color / 255.0 : color;\n}\n\n// Normalize unsigned byte color to 0-1 range\nvec4 picking_normalizeColor(vec4 color) {\n return picking.useByteColors > 0.5 ? color / 255.0 : color;\n}\n\nbool picking_isColorZero(vec3 color) {\n return dot(color, vec3(1.0)) < 0.00001;\n}\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.00001;\n}\n\n// Check if this vertex is highlighted \nbool isVertexHighlighted(vec3 vertexColor) {\n vec3 highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n return\n bool(picking.isHighlightActive) && picking_isColorZero(abs(vertexColor - highlightedObjectColor));\n}\n\n// Set the current picking color\nvoid picking_setPickingColor(vec3 pickingColor) {\n pickingColor = picking_normalizeColor(pickingColor);\n\n if (bool(picking.isActive)) {\n // Use alpha as the validity flag. If pickingColor is [0, 0, 0] fragment is non-pickable\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!bool(picking.isAttribute)) {\n // Stores the picking color so that the fragment shader can render it during picking\n picking_vRGBcolor_Avalid.rgb = pickingColor;\n }\n } else {\n // Do the comparison with selected item color in vertex shader as it should mean fewer compares\n picking_vRGBcolor_Avalid.a = float(isVertexHighlighted(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\n\nvoid picking_setPickingAttribute(vec2 value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\n\nvoid picking_setPickingAttribute(vec3 value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n";
|
|
23
|
+
readonly fs: "layout(std140) uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float useByteColors;\n vec3 highlightedObjectColor;\n vec4 highlightColor;\n} picking;\n\nin vec4 picking_vRGBcolor_Avalid;\n\n/*\n * Returns highlight color if this item is selected.\n */\nvec4 picking_filterHighlightColor(vec4 color) {\n // If we are still picking, we don't highlight\n if (picking.isActive > 0.5) {\n return color;\n }\n\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n // Blend in highlight color based on its alpha value\n float highLightAlpha = picking.highlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\n\n/*\n * Returns picking color if picking enabled else unmodified argument.\n */\nvec4 picking_filterPickingColor(vec4 color) {\n if (bool(picking.isActive)) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\n\n/*\n * Returns picking color if picking is enabled if not\n * highlight color if this item is selected, otherwise unmodified argument.\n */\nvec4 picking_filterColor(vec4 color) {\n vec4 highlightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highlightColor);\n}\n";
|
|
24
24
|
readonly getUniforms: (opts?: import("@luma.gl/shadertools").PickingProps, prevUniforms?: import("@luma.gl/shadertools").PickingUniforms) => import("@luma.gl/shadertools").PickingUniforms;
|
|
25
25
|
};
|
|
26
26
|
//# sourceMappingURL=legacy-color-picking.d.ts.map
|
|
@@ -46,7 +46,7 @@ export type PickingUniforms = {
|
|
|
46
46
|
highlightedObjectIndex: number;
|
|
47
47
|
};
|
|
48
48
|
export type PickingBindings = {};
|
|
49
|
-
export declare const GLSL_UNIFORMS = "precision highp float;\nprecision highp int;\n\
|
|
49
|
+
export declare const GLSL_UNIFORMS = "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n";
|
|
50
50
|
export declare const WGSL_UNIFORMS = "struct pickingUniforms {\n isActive: i32,\n indexMode: i32,\n batchIndex: i32,\n\n isHighlightActive: i32,\n highlightedBatchIndex: i32,\n highlightedObjectIndex: i32,\n highlightColor: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n";
|
|
51
51
|
declare function getUniforms(props?: PickingProps, prevUniforms?: PickingUniforms): PickingUniforms;
|
|
52
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picking-uniforms.d.ts","sourceRoot":"","sources":["../../../src/modules/picking/picking-uniforms.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAMjD,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sDAAsD;IACtD,cAAc,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,cAAc,EAAE,YAAY,CAAC;IAC7B,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC;AAejC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"picking-uniforms.d.ts","sourceRoot":"","sources":["../../../src/modules/picking/picking-uniforms.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAMjD,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sDAAsD;IACtD,cAAc,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,cAAc,EAAE,YAAY,CAAC;IAC7B,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC;AAejC,eAAO,MAAM,aAAa,kRAczB,CAAC;AAEF,eAAO,MAAM,aAAa,yRAazB,CAAC;AAEF,iBAAS,WAAW,CAAC,KAAK,GAAE,YAAiB,EAAE,YAAY,CAAC,EAAE,eAAe,GAAG,eAAe,CAuD9F;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe;oBACb,YAAY;uBACT,eAAe;;;;;;;;;;;;;CAgBgD,CAAC"}
|
|
@@ -6,8 +6,8 @@ import type { PickingProps, PickingUniforms } from "./picking-uniforms.js";
|
|
|
6
6
|
export declare const picking: {
|
|
7
7
|
readonly name: "picking";
|
|
8
8
|
readonly source: "struct pickingUniforms {\n isActive: i32,\n indexMode: i32,\n batchIndex: i32,\n\n isHighlightActive: i32,\n highlightedBatchIndex: i32,\n highlightedObjectIndex: i32,\n highlightColor: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n\n\nconst INDEX_PICKING_MODE_INSTANCE = 0;\nconst INDEX_PICKING_MODE_CUSTOM = 1;\nconst INDEX_PICKING_INVALID_INDEX = -1; // 2^32 - 1\n\n/**\n * WGSL shaders need to carry the returned object index through their own stage outputs.\n */\nfn picking_setObjectIndex(objectIndex: i32) -> i32 {\n return objectIndex;\n}\n\nfn picking_isObjectHighlighted(objectIndex: i32) -> bool {\n return\n picking.isHighlightActive != 0 &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == objectIndex;\n}\n\nfn picking_filterHighlightColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0 || !picking_isObjectHighlighted(objectIndex)) {\n return color;\n }\n\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n if (blendedAlpha == 0.0) {\n return vec4<f32>(color.rgb, 0.0);\n }\n\n let highLightRatio = highLightAlpha / blendedAlpha;\n let blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4<f32>(blendedRGB, blendedAlpha);\n}\n\nfn picking_filterPickingColor(color: vec4<f32>, objectIndex: i32) -> vec4<f32> {\n if (picking.isActive != 0 && objectIndex == INDEX_PICKING_INVALID_INDEX) {\n discard;\n }\n return color;\n}\n\nfn picking_getPickingColor(objectIndex: i32) -> vec2<i32> {\n return vec2<i32>(objectIndex, picking.batchIndex);\n}\n\n";
|
|
9
|
-
readonly vs: "precision highp float;\nprecision highp int;\n\
|
|
10
|
-
readonly fs: "precision highp float;\nprecision highp int;\n\
|
|
9
|
+
readonly vs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int INDEX_PICKING_MODE_INSTANCE = 0;\nconst int INDEX_PICKING_MODE_CUSTOM = 1;\n\nconst int COLOR_PICKING_INVALID_INDEX = -1;\n\nflat out int picking_objectIndex;\n\nvoid picking_setObjectIndex(int objectIndex) {\n switch (picking.indexMode) {\n case INDEX_PICKING_MODE_INSTANCE:\n picking_objectIndex = gl_InstanceID;\n break;\n case INDEX_PICKING_MODE_CUSTOM:\n picking_objectIndex = objectIndex;\n break;\n }\n}\n";
|
|
10
|
+
readonly fs: "precision highp float;\nprecision highp int;\n\nlayout(std140) uniform pickingUniforms {\n int isActive;\n int indexMode;\n int batchIndex;\n\n int isHighlightActive;\n int highlightedBatchIndex;\n int highlightedObjectIndex;\n vec4 highlightColor;\n} picking;\n\n\nconst int COLOR_PICKING_INVALID_INDEX = -1;\nconst int COLOR_PICKING_MAX_OBJECT_INDEX = 16777214;\nconst int COLOR_PICKING_MAX_BATCH_INDEX = 254;\n\nflat in int picking_objectIndex;\n\nbool picking_isFragmentHighlighted() {\n return\n bool(picking.isHighlightActive) &&\n picking.highlightedBatchIndex == picking.batchIndex &&\n picking.highlightedObjectIndex == picking_objectIndex\n ;\n}\n\nvec4 picking_filterHighlightColor(vec4 color) {\n if (bool(picking.isActive)) {\n return color;\n }\n\n if (!picking_isFragmentHighlighted()) {\n return color;\n }\n\n float highLightAlpha = picking.highlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nbool picking_canEncodePickInfo(int objectIndex) {\n return\n objectIndex != COLOR_PICKING_INVALID_INDEX &&\n objectIndex >= 0 &&\n objectIndex <= COLOR_PICKING_MAX_OBJECT_INDEX &&\n picking.batchIndex >= 0 &&\n picking.batchIndex <= COLOR_PICKING_MAX_BATCH_INDEX;\n}\n\nvec4 picking_getPickingColor() {\n if (!picking_canEncodePickInfo(picking_objectIndex)) {\n return vec4(0.0);\n }\n\n int encodedObjectIndex = picking_objectIndex + 1;\n int red = encodedObjectIndex % 256;\n int green = (encodedObjectIndex / 256) % 256;\n int blue = (encodedObjectIndex / 65536) % 256;\n int alpha = picking.batchIndex + 1;\n\n return vec4(float(red), float(green), float(blue), float(alpha)) / 255.0;\n}\n\nvec4 picking_filterPickingColor(vec4 color) {\n if (bool(picking.isActive)) {\n if (!picking_canEncodePickInfo(picking_objectIndex)) {\n discard;\n }\n return picking_getPickingColor();\n }\n\n return color;\n}\n\nvec4 picking_filterColor(vec4 color) {\n vec4 outColor = color;\n outColor = picking_filterHighlightColor(outColor);\n outColor = picking_filterPickingColor(outColor);\n return outColor;\n}\n";
|
|
11
11
|
readonly props: PickingProps;
|
|
12
12
|
readonly uniforms: PickingUniforms;
|
|
13
13
|
readonly uniformTypes: Required<import("@luma.gl/shadertools").UniformTypes<PickingUniforms>>;
|
|
@@ -26,8 +26,8 @@ export function getFragmentShaderForRenderPass(options) {
|
|
|
26
26
|
/** Get a filtering WGSL fragment shader */
|
|
27
27
|
function getFilterShaderWGSL(func) {
|
|
28
28
|
return /* wgsl */ `\
|
|
29
|
-
@group(0) @binding(
|
|
30
|
-
@group(0) @binding(
|
|
29
|
+
@group(0) @binding(auto) var sourceTexture: texture_2d<f32>;
|
|
30
|
+
@group(0) @binding(auto) var sourceTextureSampler: sampler;
|
|
31
31
|
|
|
32
32
|
@fragment
|
|
33
33
|
fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
|
|
@@ -43,8 +43,8 @@ fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
|
|
|
43
43
|
/** Get a sampling WGSL fragment shader */
|
|
44
44
|
function getSamplerShaderWGSL(func) {
|
|
45
45
|
return /* wgsl */ `\
|
|
46
|
-
@group(0) @binding(
|
|
47
|
-
@group(0) @binding(
|
|
46
|
+
@group(0) @binding(auto) var sourceTexture: texture_2d<f32>;
|
|
47
|
+
@group(0) @binding(auto) var sourceTextureSampler: sampler;
|
|
48
48
|
|
|
49
49
|
@fragment
|
|
50
50
|
fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader-inputs.d.ts","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,OAAO,EAAsB,MAAM,eAAe,CAAC;AAGhE,OAAO,EAEL,YAAY,EACZ,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,kBAAkB,GAAG,IAAI,CAC5B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3B,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,MAAM,GAAG,cAAc,CAC/F,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACxC;IAED,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAEpC;IAEF;;;OAGG;IAEH,OAAO,EAAE,QAAQ,CAAC;SAAE,CAAC,IAAI,MAAM,YAAY,GAAG,kBAAkB;KAAC,CAAC,CAAC;IAEnE,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACrF,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,sCAAsC;IAGtC;;;OAGG;gBAGD,OAAO,EAAE;SAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,kBAAkB;KAAC,EACzD,OAAO,CAAC,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"shader-inputs.d.ts","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,OAAO,EAAsB,MAAM,eAAe,CAAC;AAGhE,OAAO,EAEL,YAAY,EACZ,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,kBAAkB,GAAG,IAAI,CAC5B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3B,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,MAAM,GAAG,cAAc,CAC/F,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACxC;IAED,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAEpC;IAEF;;;OAGG;IAEH,OAAO,EAAE,QAAQ,CAAC;SAAE,CAAC,IAAI,MAAM,YAAY,GAAG,kBAAkB;KAAC,CAAC,CAAC;IAEnE,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACrF,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,sCAAsC;IAGtC;;;OAGG;gBAGD,OAAO,EAAE;SAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,kBAAkB;KAAC,EACzD,OAAO,CAAC,EAAE,mBAAmB;IAmC/B,cAAc;IACd,OAAO,IAAI,IAAI;IAEf;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;SAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAAC,CAAC,GAAG,IAAI;IAiCtF;;;OAGG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B,6CAA6C;IAC7C,gBAAgB,IAAI,OAAO,CACzB,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CACrE;IAID,oEAAoE;IACpE,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU3C,+EAA+E;IAC/E,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAaxD,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;CAU7C"}
|