@adobe/data-gpu 0.10.20 → 0.10.21

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.
Files changed (39) hide show
  1. package/dist/core/core-plugin.d.ts +1 -1
  2. package/dist/graphics/animation/animation-data-plugin.d.ts +2 -2
  3. package/dist/graphics/animation/animation-plugin.d.ts +5 -5
  4. package/dist/graphics/camera/camera-plugin.d.ts +2 -2
  5. package/dist/graphics/camera/orbit/orbit-data-plugin.d.ts +5 -5
  6. package/dist/graphics/camera/orbit/orbit-plugin.d.ts +5 -5
  7. package/dist/graphics/camera/orbit/orbit-system-plugin.d.ts +5 -5
  8. package/dist/graphics/graphics-plugin.d.ts +2 -2
  9. package/dist/graphics/picking/picking-plugin.d.ts +783 -783
  10. package/dist/graphics/rendering/bone-collider-plugin.d.ts +224 -224
  11. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.d.ts +158 -158
  12. package/dist/graphics/rendering/interpolation-plugin.d.ts +23 -23
  13. package/dist/graphics/rendering/jolt-ragdoll-plugin.d.ts +225 -225
  14. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu-plugin.d.ts +12 -12
  15. package/dist/graphics/rendering/model-collider-plugin.d.ts +172 -172
  16. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.d.ts +167 -158
  17. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.js +61 -1
  18. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.js.map +1 -1
  19. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.d.ts +15 -15
  20. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js +11 -14
  21. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js.map +1 -1
  22. package/dist/graphics/rendering/ragdoll-trigger-plugin.d.ts +1 -1
  23. package/dist/graphics/rendering/skinning/skinning-plugin.d.ts +181 -181
  24. package/dist/graphics/scene/light/light-plugin.d.ts +1 -1
  25. package/dist/graphics/scene/model/mesh-plugin.d.ts +18 -18
  26. package/dist/graphics/scene/model/model-loader-plugin.d.ts +162 -162
  27. package/dist/graphics/scene/model/shape/shape-geometry-plugin.d.ts +74 -74
  28. package/dist/graphics/scene/model/world-bounds-plugin.d.ts +162 -162
  29. package/dist/graphics/scene/scene-plugin.d.ts +26 -26
  30. package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.d.ts +14 -14
  31. package/dist/material/material-plugin.d.ts +5 -5
  32. package/dist/physics/physics-clock-plugin.d.ts +2 -2
  33. package/dist/physics/physics-data-plugin.d.ts +15 -15
  34. package/dist/physics/solvers/jolt-solver-plugin.d.ts +17 -17
  35. package/dist/physics/solvers/rapier-solver-plugin.d.ts +17 -17
  36. package/package.json +2 -2
  37. package/src/graphics/rendering/pbr-render/pbr-factor-render-plugin.ts +74 -0
  38. package/src/graphics/rendering/pbr-render/physics-bridge-plugin.ts +12 -15
  39. package/tsconfig.tsbuildinfo +1 -1
@@ -5,9 +5,13 @@ import { type Entity } from "@adobe/data/ecs";
5
5
  * Pairs with `materialPaletteGpu` (`_paletteIndex` on factor materials).
6
6
  *
7
7
  * Pairs with `materialPaletteGpu` (`_paletteIndex`). Idle when no factor materials or drawables exist.
8
+ *
9
+ * Set resource `_pbrFactorStaticInstances = true` for fully static scenes
10
+ * (e.g. terrain heightfield): after drawable count stabilizes, skip per-frame
11
+ * TRS gather + instance buffer uploads and only re-issue drawIndexed.
8
12
  */
9
13
  export declare const pbrFactorRender: {
10
- readonly components: {} & {
14
+ readonly components: {
11
15
  readonly visible: {
12
16
  readonly type: "boolean";
13
17
  readonly const: true;
@@ -99,7 +103,7 @@ export declare const pbrFactorRender: {
99
103
  readonly required: readonly ["min", "max"];
100
104
  readonly additionalProperties: false;
101
105
  };
102
- } & {
106
+ } & {} & {
103
107
  readonly _vertexBuffer: {
104
108
  readonly default: GPUBuffer | null;
105
109
  readonly nonPersistent: true;
@@ -462,8 +466,10 @@ export declare const pbrFactorRender: {
462
466
  };
463
467
  };
464
468
  readonly resources: {} & {
465
- readonly light: {
466
- readonly default: import("../../scene/light/public.js");
469
+ readonly _gltfMeshByUrl: {
470
+ readonly default: Map<string, Entity> | null;
471
+ readonly nonPersistent: true;
472
+ readonly mutable: true;
467
473
  };
468
474
  } & {
469
475
  readonly frameTime: {
@@ -516,17 +522,15 @@ export declare const pbrFactorRender: {
516
522
  readonly camera: {
517
523
  readonly default: import("../../camera/public.js");
518
524
  };
525
+ } & {
526
+ readonly light: {
527
+ readonly default: import("../../scene/light/public.js");
528
+ };
519
529
  } & {
520
530
  readonly _sceneUniformsBuffer: {
521
531
  readonly default: GPUBuffer | null;
522
532
  readonly nonPersistent: true;
523
533
  };
524
- } & {
525
- readonly _gltfMeshByUrl: {
526
- readonly default: Map<string, Entity> | null;
527
- readonly nonPersistent: true;
528
- readonly mutable: true;
529
- };
530
534
  } & {
531
535
  readonly _iblEnvironment: {
532
536
  readonly default: GPUTexture | null;
@@ -553,10 +557,15 @@ export declare const pbrFactorRender: {
553
557
  readonly default: GPUBindGroup | null;
554
558
  readonly nonPersistent: true;
555
559
  };
560
+ } & {
561
+ readonly _pbrFactorStaticInstances: {
562
+ readonly default: boolean;
563
+ readonly nonPersistent: true;
564
+ };
556
565
  };
557
- readonly archetypes: {} & {
566
+ readonly archetypes: {
558
567
  readonly Node: readonly ["position", "rotation", "scale", "parent", "visible"];
559
- } & {} & {
568
+ } & {} & {} & {
560
569
  readonly _VisibleMaterial: readonly ["nonPersistent", "_materialBindGroup", "_mesh"];
561
570
  readonly _PbrPrimitive: readonly ["nonPersistent", "_vertexBuffer", "_skinVertexBuffer", "_indexBuffer", "_indexCount", "_indexFormat", "_material", "_mesh", "_nodeLocalMatrix"];
562
571
  } & {
@@ -573,62 +582,7 @@ export declare const pbrFactorRender: {
573
582
  readonly Animation: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying"];
574
583
  readonly AnimationObservable: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying", "animationObservable"];
575
584
  } & {} & {} & {} & {} & {} & {};
576
- readonly transactions: {} & {} & {
577
- readonly setLight: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{}>, import("@adobe/data/schema").FromSchemas<{
578
- readonly light: {
579
- readonly default: import("../../scene/light/public.js");
580
- };
581
- }>, {}, {}, never>, args: Partial<import("../../scene/light/public.js")>) => void;
582
- } & {} & {} & {
583
- readonly setCanvas: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{}>, import("@adobe/data/schema").FromSchemas<{
584
- readonly renderPassEncoder: {
585
- readonly default: GPURenderPassEncoder | null;
586
- readonly nonPersistent: true;
587
- };
588
- readonly depthTexture: {
589
- readonly default: GPUTexture | null;
590
- readonly nonPersistent: true;
591
- };
592
- readonly clearColor: {
593
- readonly default: import("@adobe/data/math").Vec4;
594
- readonly nonPersistent: true;
595
- };
596
- readonly canvas: {
597
- readonly default: HTMLCanvasElement | null;
598
- readonly nonPersistent: true;
599
- };
600
- readonly canvasContext: {
601
- readonly default: GPUCanvasContext | null;
602
- readonly nonPersistent: true;
603
- };
604
- readonly canvasFormat: {
605
- readonly default: GPUTextureFormat;
606
- readonly nonPersistent: true;
607
- };
608
- readonly depthFormat: {
609
- readonly default: GPUTextureFormat;
610
- readonly nonPersistent: true;
611
- };
612
- } & {
613
- readonly frameTime: {
614
- readonly default: import("../../../core/frame-time/public.js");
615
- readonly nonPersistent: true;
616
- };
617
- } & {
618
- readonly schedulerState: {
619
- readonly default: import("@adobe/data/ecs").SchedulerState;
620
- };
621
- } & {
622
- readonly device: {
623
- readonly default: GPUDevice | null;
624
- readonly nonPersistent: true;
625
- };
626
- readonly commandEncoder: {
627
- readonly default: GPUCommandEncoder | null;
628
- readonly nonPersistent: true;
629
- };
630
- }>, {}, {}, never>, canvas: HTMLCanvasElement | null) => void;
631
- } & {} & {} & {} & {
585
+ readonly transactions: {} & {} & {} & {
632
586
  readonly insertMaterial: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
633
587
  readonly material: {
634
588
  readonly entity: true;
@@ -807,7 +761,7 @@ export declare const pbrFactorRender: {
807
761
  readonly unique: true;
808
762
  readonly archetype: "Material";
809
763
  };
810
- }, never>, row: import("../../../material/public.js")) => Entity;
764
+ }, never, never>, row: import("../../../material/public.js")) => Entity;
811
765
  readonly insertMaterialDefinition: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
812
766
  readonly material: {
813
767
  readonly entity: true;
@@ -986,7 +940,7 @@ export declare const pbrFactorRender: {
986
940
  readonly unique: true;
987
941
  readonly archetype: "Material";
988
942
  };
989
- }, never>, args: {
943
+ }, never, never>, args: {
990
944
  name: string;
991
945
  definition: import("../../../material/material-definition.js").MaterialDefinition;
992
946
  }) => Entity;
@@ -1168,7 +1122,7 @@ export declare const pbrFactorRender: {
1168
1122
  readonly unique: true;
1169
1123
  readonly archetype: "Material";
1170
1124
  };
1171
- }, never>, defs: Readonly<Record<string, import("../../../material/material-definition.js").MaterialDefinition>>) => void;
1125
+ }, never, never>, defs: Readonly<Record<string, import("../../../material/material-definition.js").MaterialDefinition>>) => void;
1172
1126
  readonly seedStandardMaterials: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
1173
1127
  readonly material: {
1174
1128
  readonly entity: true;
@@ -1347,7 +1301,7 @@ export declare const pbrFactorRender: {
1347
1301
  readonly unique: true;
1348
1302
  readonly archetype: "Material";
1349
1303
  };
1350
- }, never>) => void;
1304
+ }, never, never>) => void;
1351
1305
  readonly seedDefinitionMaterials: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
1352
1306
  readonly material: {
1353
1307
  readonly entity: true;
@@ -1526,7 +1480,7 @@ export declare const pbrFactorRender: {
1526
1480
  readonly unique: true;
1527
1481
  readonly archetype: "Material";
1528
1482
  };
1529
- }, never>) => void;
1483
+ }, never, never>) => void;
1530
1484
  } & {
1531
1485
  readonly insertGltfMesh: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
1532
1486
  readonly mesh: {
@@ -1863,7 +1817,7 @@ export declare const pbrFactorRender: {
1863
1817
  readonly unique: true;
1864
1818
  readonly archetype: "Material";
1865
1819
  };
1866
- }, never>, args: {
1820
+ }, never, never>, args: {
1867
1821
  url: string;
1868
1822
  }) => Entity;
1869
1823
  readonly insertShapeMesh: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
@@ -2201,7 +2155,7 @@ export declare const pbrFactorRender: {
2201
2155
  readonly unique: true;
2202
2156
  readonly archetype: "Material";
2203
2157
  };
2204
- }, never>, args: {
2158
+ }, never, never>, args: {
2205
2159
  shapeSpec: import("../../public.js").ShapeSpec;
2206
2160
  }) => Entity;
2207
2161
  readonly insertMeshInstance: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{
@@ -2539,7 +2493,7 @@ export declare const pbrFactorRender: {
2539
2493
  readonly unique: true;
2540
2494
  readonly archetype: "Material";
2541
2495
  };
2542
- }, never>, args: {
2496
+ }, never, never>, args: {
2543
2497
  mesh: Entity;
2544
2498
  material: Entity;
2545
2499
  position?: import("@adobe/data/math").Vec3;
@@ -2881,14 +2835,14 @@ export declare const pbrFactorRender: {
2881
2835
  readonly unique: true;
2882
2836
  readonly archetype: "Material";
2883
2837
  };
2884
- }, never>, args: {
2838
+ }, never, never>, args: {
2885
2839
  mesh: Entity;
2886
2840
  position?: import("@adobe/data/math").Vec3;
2887
2841
  rotation?: import("@adobe/data/math").Quat;
2888
2842
  scale?: import("@adobe/data/math").Vec3;
2889
2843
  parent?: Entity;
2890
2844
  }) => Entity;
2891
- } & {} & {
2845
+ } & {} & {} & {} & {
2892
2846
  readonly insertAnimationClip: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{} & {
2893
2847
  readonly animationClipTracks: {
2894
2848
  readonly default: import("../../animation/animation-track/public.js")[];
@@ -2935,7 +2889,7 @@ export declare const pbrFactorRender: {
2935
2889
  readonly AnimationClip: readonly ["animationClipTracks", "animationClipDuration"];
2936
2890
  readonly Animation: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying"];
2937
2891
  readonly AnimationObservable: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying", "animationObservable"];
2938
- }, {} & {}, never>, args: {
2892
+ }, {} & {}, never, never>, args: {
2939
2893
  tracks: import("../../animation/animation-track/public.js")[];
2940
2894
  duration: number;
2941
2895
  }) => number;
@@ -2985,7 +2939,7 @@ export declare const pbrFactorRender: {
2985
2939
  readonly AnimationClip: readonly ["animationClipTracks", "animationClipDuration"];
2986
2940
  readonly Animation: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying"];
2987
2941
  readonly AnimationObservable: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying", "animationObservable"];
2988
- }, {} & {}, never>, args: {
2942
+ }, {} & {}, never, never>, args: {
2989
2943
  animationClipRef: number;
2990
2944
  animationTargets: number[];
2991
2945
  animationTime?: number;
@@ -3040,12 +2994,80 @@ export declare const pbrFactorRender: {
3040
2994
  readonly AnimationClip: readonly ["animationClipTracks", "animationClipDuration"];
3041
2995
  readonly Animation: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying"];
3042
2996
  readonly AnimationObservable: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying", "animationObservable"];
3043
- }, {}, never>, args: {
2997
+ }, {}, never, never>, args: {
3044
2998
  dt: number;
3045
2999
  observable: boolean;
3046
3000
  }) => void;
3047
3001
  } & {} & {
3048
3002
  readonly insertLoadedPrimitives: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{} & {
3003
+ readonly _vertexBuffer: {
3004
+ readonly default: GPUBuffer | null;
3005
+ readonly nonPersistent: true;
3006
+ };
3007
+ readonly _skinVertexBuffer: {
3008
+ readonly default: GPUBuffer | null;
3009
+ readonly nonPersistent: true;
3010
+ };
3011
+ readonly _indexBuffer: {
3012
+ readonly default: GPUBuffer | null;
3013
+ readonly nonPersistent: true;
3014
+ };
3015
+ readonly _indexCount: {
3016
+ readonly default: undefined;
3017
+ readonly nonPersistent: true;
3018
+ readonly type: "integer";
3019
+ readonly minimum: 0;
3020
+ readonly maximum: 4294967295;
3021
+ };
3022
+ readonly _indexFormat: {
3023
+ readonly default: GPUIndexFormat;
3024
+ readonly nonPersistent: true;
3025
+ };
3026
+ readonly _materialBindGroup: {
3027
+ readonly default: GPUBindGroup | null;
3028
+ readonly nonPersistent: true;
3029
+ };
3030
+ readonly _mesh: {
3031
+ readonly default: undefined;
3032
+ readonly nonPersistent: true;
3033
+ readonly entity: true;
3034
+ readonly type: "integer";
3035
+ readonly minimum: -2147483648;
3036
+ readonly maximum: 2147483647;
3037
+ };
3038
+ readonly _material: {
3039
+ readonly default: undefined;
3040
+ readonly nonPersistent: true;
3041
+ readonly entity: true;
3042
+ readonly type: "integer";
3043
+ readonly minimum: -2147483648;
3044
+ readonly maximum: 2147483647;
3045
+ };
3046
+ readonly _nodeLocalMatrix: {
3047
+ readonly default: undefined;
3048
+ readonly nonPersistent: true;
3049
+ readonly type: "array";
3050
+ readonly items: {
3051
+ readonly type: "number";
3052
+ readonly precision: 1;
3053
+ readonly default: number;
3054
+ };
3055
+ readonly minItems: 16;
3056
+ readonly maxItems: 16;
3057
+ };
3058
+ readonly _skeletonModelRef: {
3059
+ readonly default: undefined;
3060
+ readonly nonPersistent: true;
3061
+ readonly entity: true;
3062
+ readonly type: "integer";
3063
+ readonly minimum: -2147483648;
3064
+ readonly maximum: 2147483647;
3065
+ };
3066
+ readonly _skeletonJointMatrixBindGroup: {
3067
+ readonly default: GPUBindGroup | null;
3068
+ readonly nonPersistent: true;
3069
+ };
3070
+ } & {
3049
3071
  readonly visible: {
3050
3072
  readonly type: "boolean";
3051
3073
  readonly const: true;
@@ -3394,74 +3416,6 @@ export declare const pbrFactorRender: {
3394
3416
  readonly const: true;
3395
3417
  readonly default: true;
3396
3418
  };
3397
- } & {
3398
- readonly _vertexBuffer: {
3399
- readonly default: GPUBuffer | null;
3400
- readonly nonPersistent: true;
3401
- };
3402
- readonly _skinVertexBuffer: {
3403
- readonly default: GPUBuffer | null;
3404
- readonly nonPersistent: true;
3405
- };
3406
- readonly _indexBuffer: {
3407
- readonly default: GPUBuffer | null;
3408
- readonly nonPersistent: true;
3409
- };
3410
- readonly _indexCount: {
3411
- readonly default: undefined;
3412
- readonly nonPersistent: true;
3413
- readonly type: "integer";
3414
- readonly minimum: 0;
3415
- readonly maximum: 4294967295;
3416
- };
3417
- readonly _indexFormat: {
3418
- readonly default: GPUIndexFormat;
3419
- readonly nonPersistent: true;
3420
- };
3421
- readonly _materialBindGroup: {
3422
- readonly default: GPUBindGroup | null;
3423
- readonly nonPersistent: true;
3424
- };
3425
- readonly _mesh: {
3426
- readonly default: undefined;
3427
- readonly nonPersistent: true;
3428
- readonly entity: true;
3429
- readonly type: "integer";
3430
- readonly minimum: -2147483648;
3431
- readonly maximum: 2147483647;
3432
- };
3433
- readonly _material: {
3434
- readonly default: undefined;
3435
- readonly nonPersistent: true;
3436
- readonly entity: true;
3437
- readonly type: "integer";
3438
- readonly minimum: -2147483648;
3439
- readonly maximum: 2147483647;
3440
- };
3441
- readonly _nodeLocalMatrix: {
3442
- readonly default: undefined;
3443
- readonly nonPersistent: true;
3444
- readonly type: "array";
3445
- readonly items: {
3446
- readonly type: "number";
3447
- readonly precision: 1;
3448
- readonly default: number;
3449
- };
3450
- readonly minItems: 16;
3451
- readonly maxItems: 16;
3452
- };
3453
- readonly _skeletonModelRef: {
3454
- readonly default: undefined;
3455
- readonly nonPersistent: true;
3456
- readonly entity: true;
3457
- readonly type: "integer";
3458
- readonly minimum: -2147483648;
3459
- readonly maximum: 2147483647;
3460
- };
3461
- readonly _skeletonJointMatrixBindGroup: {
3462
- readonly default: GPUBindGroup | null;
3463
- readonly nonPersistent: true;
3464
- };
3465
3419
  }>, import("@adobe/data/schema").FromSchemas<{} & {
3466
3420
  readonly _gltfMeshByUrl: {
3467
3421
  readonly default: Map<string, Entity> | null;
@@ -3487,6 +3441,9 @@ export declare const pbrFactorRender: {
3487
3441
  readonly nonPersistent: true;
3488
3442
  };
3489
3443
  }>, {} & {} & {
3444
+ readonly _VisibleMaterial: readonly ["nonPersistent", "_materialBindGroup", "_mesh"];
3445
+ readonly _PbrPrimitive: readonly ["nonPersistent", "_vertexBuffer", "_skinVertexBuffer", "_indexBuffer", "_indexCount", "_indexFormat", "_material", "_mesh", "_nodeLocalMatrix"];
3446
+ } & {
3490
3447
  readonly Node: readonly ["position", "rotation", "scale", "parent", "visible"];
3491
3448
  } & {} & {
3492
3449
  readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
@@ -3501,10 +3458,7 @@ export declare const pbrFactorRender: {
3501
3458
  readonly AnimationClip: readonly ["animationClipTracks", "animationClipDuration"];
3502
3459
  readonly Animation: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying"];
3503
3460
  readonly AnimationObservable: readonly ["animationClipRef", "animationTargets", "animationTime", "animationSpeed", "animationLoop", "animationPlaying", "animationObservable"];
3504
- } & {} & {
3505
- readonly _VisibleMaterial: readonly ["nonPersistent", "_materialBindGroup", "_mesh"];
3506
- readonly _PbrPrimitive: readonly ["nonPersistent", "_vertexBuffer", "_skinVertexBuffer", "_indexBuffer", "_indexCount", "_indexFormat", "_material", "_mesh", "_nodeLocalMatrix"];
3507
- }, {} & {} & {
3461
+ } & {}, {} & {} & {} & {
3508
3462
  readonly nodeChildrenOf: {
3509
3463
  readonly key: "parent";
3510
3464
  readonly archetype: "Node";
@@ -3515,18 +3469,73 @@ export declare const pbrFactorRender: {
3515
3469
  readonly unique: true;
3516
3470
  readonly archetype: "Material";
3517
3471
  };
3518
- } & {} & {} & {} & {} & {}, never>, args: import("../../public.js").LoadedArgs) => void;
3519
- } & {} & {} & {} & {};
3520
- readonly systems: import("@adobe/data/ecs").SystemDeclarations<"_frameTime" | "update" | "schedulerSystem" | "input" | "preUpdate" | "postUpdate" | "physics" | "preRender" | "render" | "postRender" | "configureCanvas" | "beginRenderPass" | "endRenderPass" | "transformCreateWorldMatrix" | "transformSystem" | "updateCameraAspect" | "sceneUniformsSystem" | "animationSampleSystem" | "modelLoadSystem" | "iblInitSystem" | "pbrIblRenderSystem" | "materialPaletteGpuBuilder" | "pbrFactorPrimitiveRenderSystem">;
3472
+ } & {} & {} & {} & {}, never, never>, args: import("../../public.js").LoadedArgs) => void;
3473
+ } & {
3474
+ readonly setCanvas: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{}>, import("@adobe/data/schema").FromSchemas<{
3475
+ readonly renderPassEncoder: {
3476
+ readonly default: GPURenderPassEncoder | null;
3477
+ readonly nonPersistent: true;
3478
+ };
3479
+ readonly depthTexture: {
3480
+ readonly default: GPUTexture | null;
3481
+ readonly nonPersistent: true;
3482
+ };
3483
+ readonly clearColor: {
3484
+ readonly default: import("@adobe/data/math").Vec4;
3485
+ readonly nonPersistent: true;
3486
+ };
3487
+ readonly canvas: {
3488
+ readonly default: HTMLCanvasElement | null;
3489
+ readonly nonPersistent: true;
3490
+ };
3491
+ readonly canvasContext: {
3492
+ readonly default: GPUCanvasContext | null;
3493
+ readonly nonPersistent: true;
3494
+ };
3495
+ readonly canvasFormat: {
3496
+ readonly default: GPUTextureFormat;
3497
+ readonly nonPersistent: true;
3498
+ };
3499
+ readonly depthFormat: {
3500
+ readonly default: GPUTextureFormat;
3501
+ readonly nonPersistent: true;
3502
+ };
3503
+ } & {
3504
+ readonly frameTime: {
3505
+ readonly default: import("../../../core/frame-time/public.js");
3506
+ readonly nonPersistent: true;
3507
+ };
3508
+ } & {
3509
+ readonly schedulerState: {
3510
+ readonly default: import("@adobe/data/ecs").SchedulerState;
3511
+ };
3512
+ } & {
3513
+ readonly device: {
3514
+ readonly default: GPUDevice | null;
3515
+ readonly nonPersistent: true;
3516
+ };
3517
+ readonly commandEncoder: {
3518
+ readonly default: GPUCommandEncoder | null;
3519
+ readonly nonPersistent: true;
3520
+ };
3521
+ }>, {}, {}, never, never>, canvas: HTMLCanvasElement | null) => void;
3522
+ } & {} & {
3523
+ readonly setLight: (t: import("@adobe/data/ecs").Store<import("@adobe/data/schema").FromSchemas<{}>, import("@adobe/data/schema").FromSchemas<{
3524
+ readonly light: {
3525
+ readonly default: import("../../scene/light/public.js");
3526
+ };
3527
+ }>, {}, {}, never, never>, args: Partial<import("../../scene/light/public.js")>) => void;
3528
+ } & {} & {} & {} & {} & {};
3529
+ readonly systems: import("@adobe/data/ecs").SystemDeclarations<"transformCreateWorldMatrix" | "transformSystem" | "update" | "_frameTime" | "schedulerSystem" | "input" | "preUpdate" | "postUpdate" | "physics" | "preRender" | "render" | "postRender" | "animationSampleSystem" | "modelLoadSystem" | "configureCanvas" | "beginRenderPass" | "endRenderPass" | "updateCameraAspect" | "sceneUniformsSystem" | "iblInitSystem" | "pbrIblRenderSystem" | "materialPaletteGpuBuilder" | "pbrFactorPrimitiveRenderSystem">;
3521
3530
  readonly actions: {};
3522
3531
  readonly services: {};
3523
3532
  readonly computed: {};
3524
- readonly indexes: {} & {
3533
+ readonly indexes: {
3525
3534
  readonly nodeChildrenOf: {
3526
3535
  readonly key: "parent";
3527
3536
  readonly archetype: "Node";
3528
3537
  };
3529
- } & {} & {} & {
3538
+ } & {} & {} & {} & {
3530
3539
  readonly materialByName: {
3531
3540
  readonly key: "name";
3532
3541
  readonly unique: true;
@@ -14,9 +14,21 @@ import { composeTrs, createIblBindGroupLayout, DRAWABLE, DRAWABLE_DIRECT, DRAWAB
14
14
  * Pairs with `materialPaletteGpu` (`_paletteIndex` on factor materials).
15
15
  *
16
16
  * Pairs with `materialPaletteGpu` (`_paletteIndex`). Idle when no factor materials or drawables exist.
17
+ *
18
+ * Set resource `_pbrFactorStaticInstances = true` for fully static scenes
19
+ * (e.g. terrain heightfield): after drawable count stabilizes, skip per-frame
20
+ * TRS gather + instance buffer uploads and only re-issue drawIndexed.
17
21
  */
18
22
  export const pbrFactorRender = Database.Plugin.create({
19
23
  extends: Database.Plugin.combine(pbrIblRender, materialPaletteGpu, displayTransform),
24
+ resources: {
25
+ /**
26
+ * When true, instance matrices are uploaded once the drawable set is
27
+ * stable; later frames only rebind and draw. Clear or leave false for
28
+ * scenes that move/add bodies every frame.
29
+ */
30
+ _pbrFactorStaticInstances: { default: false, nonPersistent: true },
31
+ },
20
32
  systems: {
21
33
  pbrFactorPrimitiveRenderSystem: {
22
34
  schedule: { during: ["render"], after: ["beginRenderPass", "pbrIblRenderSystem"], before: ["endRenderPass"] },
@@ -37,8 +49,11 @@ export const pbrFactorRender = Database.Plugin.create({
37
49
  let indexScratch = new Uint32Array(1);
38
50
  let mats = new Float32Array(64 * 16);
39
51
  const batches = new Map();
52
+ let staticDraws = null;
53
+ let staticDrawCount = -1;
54
+ let staticStableFrames = 0;
40
55
  return () => {
41
- const { device, renderPassEncoder, canvasFormat, depthFormat, _sceneUniformsBuffer, _factorPaletteBindGroup, _iblIrradiance, _iblPrefiltered, _iblBrdfLut, } = db.store.resources;
56
+ const { device, renderPassEncoder, canvasFormat, depthFormat, _sceneUniformsBuffer, _factorPaletteBindGroup, _iblIrradiance, _iblPrefiltered, _iblBrdfLut, _pbrFactorStaticInstances, } = db.store.resources;
42
57
  if (!device || !renderPassEncoder || !_sceneUniformsBuffer || !_factorPaletteBindGroup)
43
58
  return;
44
59
  if (!_iblIrradiance || !_iblPrefiltered || !_iblBrdfLut)
@@ -87,6 +102,20 @@ export const pbrFactorRender = Database.Plugin.create({
87
102
  });
88
103
  cachedIrradiance = _iblIrradiance;
89
104
  }
105
+ // Static path: re-draw without re-gather / re-upload.
106
+ if (_pbrFactorStaticInstances && staticDraws != null && staticDraws.length > 0) {
107
+ renderPassEncoder.setPipeline(pipeline);
108
+ renderPassEncoder.setBindGroup(0, sceneBindGroup);
109
+ renderPassEncoder.setBindGroup(1, _factorPaletteBindGroup);
110
+ renderPassEncoder.setBindGroup(2, iblBindGroup);
111
+ for (const d of staticDraws) {
112
+ renderPassEncoder.setBindGroup(3, d.bindGroup);
113
+ renderPassEncoder.setVertexBuffer(0, d.vertexBuffer);
114
+ renderPassEncoder.setIndexBuffer(d.indexBuffer, d.indexFormat);
115
+ renderPassEncoder.drawIndexed(d.indexCount, d.n);
116
+ }
117
+ return;
118
+ }
90
119
  let mc = 0;
91
120
  for (const arch of db.store.queryArchetypes(["_paletteIndex"]))
92
121
  mc += arch.rowCount;
@@ -140,6 +169,7 @@ export const pbrFactorRender = Database.Plugin.create({
140
169
  renderPassEncoder.setBindGroup(0, sceneBindGroup);
141
170
  renderPassEncoder.setBindGroup(1, _factorPaletteBindGroup);
142
171
  renderPassEncoder.setBindGroup(2, iblBindGroup);
172
+ const nextStatic = [];
143
173
  for (const arch of db.store.queryArchetypes(PRIMITIVE)) {
144
174
  const vbs = arch.columns._vertexBuffer, ibs = arch.columns._indexBuffer;
145
175
  const counts = arch.columns._indexCount, formats = arch.columns._indexFormat;
@@ -179,7 +209,37 @@ export const pbrFactorRender = Database.Plugin.create({
179
209
  renderPassEncoder.setVertexBuffer(0, vbs.get(i));
180
210
  renderPassEncoder.setIndexBuffer(ibs.get(i), formats.get(i));
181
211
  renderPassEncoder.drawIndexed(counts.get(i), n);
212
+ if (_pbrFactorStaticInstances) {
213
+ nextStatic.push({
214
+ primId,
215
+ n,
216
+ indexCount: counts.get(i),
217
+ indexFormat: formats.get(i),
218
+ vertexBuffer: vbs.get(i),
219
+ indexBuffer: ibs.get(i),
220
+ bindGroup: entry.bindGroup,
221
+ });
222
+ }
223
+ }
224
+ }
225
+ // Freeze only after the drawable set stops growing for one frame
226
+ // (mesh resolve / material assign finish during the first seconds).
227
+ if (_pbrFactorStaticInstances) {
228
+ if (drawCount === staticDrawCount && drawCount > 0) {
229
+ staticStableFrames++;
182
230
  }
231
+ else {
232
+ staticStableFrames = 0;
233
+ staticDrawCount = drawCount;
234
+ }
235
+ if (staticStableFrames >= 1 && nextStatic.length > 0) {
236
+ staticDraws = nextStatic;
237
+ }
238
+ }
239
+ else {
240
+ staticDraws = null;
241
+ staticStableFrames = 0;
242
+ staticDrawCount = -1;
183
243
  }
184
244
  };
185
245
  },
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-factor-render-plugin.js","sourceRoot":"","sources":["../../../../src/graphics/rendering/pbr-render/pbr-factor-render-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbr-factor-render-plugin.js","sourceRoot":"","sources":["../../../../src/graphics/rendering/pbr-render/pbr-factor-render-plugin.ts"],"names":[],"mappings":"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"}