@miris-inc/core 0.0.8-0d20504 → 0.0.8-0d7d861
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/AquaApi.wasm +0 -0
- package/dist/aqua-parser.wasm +0 -0
- package/dist/core.d.ts +375 -6
- package/dist/core.js +171 -55
- package/dist/core.prod.js +1 -1
- package/dist/core.standalone.js +3744 -2099
- package/dist/core.standalone.prod.js +1 -1
- package/package.json +1 -5
- package/dist/webshark.d.ts +0 -321
- package/dist/webshark.js +0 -2
- package/dist/webshark.wasm +0 -0
package/dist/AquaApi.wasm
CHANGED
|
Binary file
|
package/dist/aqua-parser.wasm
CHANGED
|
Binary file
|
package/dist/core.d.ts
CHANGED
|
@@ -70,6 +70,18 @@ export declare class Camera {
|
|
|
70
70
|
constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
declare interface Camera_2 {
|
|
74
|
+
dir: vec4;
|
|
75
|
+
U: vec4;
|
|
76
|
+
V: vec4;
|
|
77
|
+
eye: vec4;
|
|
78
|
+
l: number;
|
|
79
|
+
fov: number;
|
|
80
|
+
zNear: number;
|
|
81
|
+
zFar: number;
|
|
82
|
+
delete(): void;
|
|
83
|
+
}
|
|
84
|
+
|
|
73
85
|
export declare type CameraInit = {
|
|
74
86
|
aspect: number;
|
|
75
87
|
fov: number;
|
|
@@ -113,7 +125,9 @@ declare class Client {
|
|
|
113
125
|
getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
|
|
114
126
|
getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
|
|
115
127
|
getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
|
|
128
|
+
getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
|
|
116
129
|
getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
|
|
130
|
+
getOctantLocalBoundingBoxes(...args: ClientMethodParameters["getOctantLocalBoundingBoxes"]): number[];
|
|
117
131
|
getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
|
|
118
132
|
getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
|
|
119
133
|
hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
|
|
@@ -196,6 +210,13 @@ declare class Engine {
|
|
|
196
210
|
readonly Loaded: 2;
|
|
197
211
|
readonly Failed: 3;
|
|
198
212
|
};
|
|
213
|
+
static StreamStatus: {
|
|
214
|
+
readonly Unknown: 0;
|
|
215
|
+
readonly Resolving: 1;
|
|
216
|
+
readonly Loading: 2;
|
|
217
|
+
readonly Ready: 3;
|
|
218
|
+
readonly Failed: 4;
|
|
219
|
+
};
|
|
199
220
|
readonly ready: Promise<this>;
|
|
200
221
|
readonly pending: boolean;
|
|
201
222
|
get module(): MainModule;
|
|
@@ -204,6 +225,7 @@ declare class Engine {
|
|
|
204
225
|
get CompressionType(): {
|
|
205
226
|
SHARK_ELLIPSOID_COMPRESSED: unknown;
|
|
206
227
|
SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
|
|
228
|
+
SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
|
|
207
229
|
};
|
|
208
230
|
get Handedness(): {
|
|
209
231
|
Right: number;
|
|
@@ -225,6 +247,7 @@ declare class Engine {
|
|
|
225
247
|
Y: number;
|
|
226
248
|
Z: number;
|
|
227
249
|
};
|
|
250
|
+
get UsePadding(): boolean;
|
|
228
251
|
activatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
|
|
229
252
|
addStreamById(...args: [
|
|
230
253
|
handle: AquaClientHandle,
|
|
@@ -242,6 +265,7 @@ declare class Engine {
|
|
|
242
265
|
deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
|
|
243
266
|
remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
|
|
244
267
|
getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
|
|
268
|
+
getOctantLocalBoundingBoxes(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
|
|
245
269
|
destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
|
|
246
270
|
free(...args: [size: number]): number;
|
|
247
271
|
getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
|
|
@@ -260,6 +284,7 @@ declare class Engine {
|
|
|
260
284
|
getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
|
|
261
285
|
getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
|
|
262
286
|
getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
|
|
287
|
+
getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
|
|
263
288
|
getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
|
|
264
289
|
getLocalTransform(...args: [
|
|
265
290
|
handle: AquaClientHandle,
|
|
@@ -313,6 +338,7 @@ declare class Engine {
|
|
|
313
338
|
]): AquaStatus;
|
|
314
339
|
setMaxCacheSize(...args: [maxSizeBytes: number]): void;
|
|
315
340
|
setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
|
|
341
|
+
setPadSplatAttributes(usePadding: boolean): void;
|
|
316
342
|
setSceneObjectTransform(...args: [
|
|
317
343
|
handle: AquaClientHandle,
|
|
318
344
|
sceneObjectId: number,
|
|
@@ -341,9 +367,16 @@ declare class Engine {
|
|
|
341
367
|
* displayed frame per context, before the per-client updateSceneExecution() calls.
|
|
342
368
|
* `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
|
|
343
369
|
* measurement (first frame, or a resume from a stall) and the frame advances without recording
|
|
344
|
-
*
|
|
370
|
+
* `primsResident` is what the renderer held at the end of the previous frame, fading
|
|
371
|
+
* prims included, and `primCapacity` what it can hold; activations that would not fit are
|
|
372
|
+
* deferred, where primCapacity 0 means deferral is disabled.
|
|
345
373
|
*/
|
|
346
|
-
beginFrame(...args: [
|
|
374
|
+
beginFrame(...args: [
|
|
375
|
+
contextHandle: AquaContextHandle,
|
|
376
|
+
previousFrameTimeMs: number,
|
|
377
|
+
primsResident: number,
|
|
378
|
+
primCapacity: number
|
|
379
|
+
]): AquaStatus;
|
|
347
380
|
createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
|
|
348
381
|
cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
|
|
349
382
|
submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
|
|
@@ -357,6 +390,52 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
|
|
|
357
390
|
[Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
|
|
358
391
|
};
|
|
359
392
|
|
|
393
|
+
declare interface GlassMeshRegistry {
|
|
394
|
+
// Decodes one octree node's glass payload and registers it, replacing any previous entry for
|
|
395
|
+
// that object. False for a malformed or empty payload, leaving the registry unchanged.
|
|
396
|
+
//
|
|
397
|
+
// The two slot arguments are different numbers here, unlike on the native path, and swapping
|
|
398
|
+
// them renders glass that does not follow its asset: modelRootSlot scopes the panel dedupe to
|
|
399
|
+
// one asset instance, while chunkModelRootIndex is stamped into every vertex and read back as
|
|
400
|
+
// chunkModelRoots[pos.w], so that one takes the chunk's fade slot.
|
|
401
|
+
//
|
|
402
|
+
// geometryPtr/panelPtr address THIS module's heap - _malloc here and copy the bytes in, since
|
|
403
|
+
// the attributes live in the engine module's. The AABB is the geometry attribute's own range.
|
|
404
|
+
registerObject(
|
|
405
|
+
objectId: number,
|
|
406
|
+
lodIndex: number,
|
|
407
|
+
modelRootSlot: number,
|
|
408
|
+
chunkModelRootIndex: number,
|
|
409
|
+
geometryPtr: number,
|
|
410
|
+
geometryByteCount: number,
|
|
411
|
+
panelPtr: number,
|
|
412
|
+
panelByteCount: number,
|
|
413
|
+
aabbMinX: number,
|
|
414
|
+
aabbMinY: number,
|
|
415
|
+
aabbMinZ: number,
|
|
416
|
+
aabbMaxX: number,
|
|
417
|
+
aabbMaxY: number,
|
|
418
|
+
aabbMaxZ: number,
|
|
419
|
+
): boolean;
|
|
420
|
+
// Returns true if the object had glass, which is what says the buffers need rebuilding.
|
|
421
|
+
removeObject(objectId: number): boolean;
|
|
422
|
+
clear(): void;
|
|
423
|
+
isDirty(): boolean;
|
|
424
|
+
// Rebuilds the flattened buffers, keeping each panel from its deepest resident LOD. Stays dirty
|
|
425
|
+
// so uploadIfDirty still fires. Walks every registered object, so not per frame.
|
|
426
|
+
flattenIfDirty(): void;
|
|
427
|
+
uploadIfDirty(renderState: RenderState): void;
|
|
428
|
+
vertexCount(): number;
|
|
429
|
+
panelCount(): number;
|
|
430
|
+
delete(): void;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export declare const HaveData = 2;
|
|
434
|
+
|
|
435
|
+
export declare const HaveMetadata = 1;
|
|
436
|
+
|
|
437
|
+
export declare const HaveNothing = 0;
|
|
438
|
+
|
|
360
439
|
export declare class Lod {
|
|
361
440
|
#private;
|
|
362
441
|
readonly id: LodInit["id"];
|
|
@@ -387,6 +466,8 @@ export declare class Lod {
|
|
|
387
466
|
get transform(): Float32Array<ArrayBuffer> | null;
|
|
388
467
|
get _drawnOctantMask(): number;
|
|
389
468
|
set _drawnOctantMask(mask: number);
|
|
469
|
+
get _octantLocalBounds(): Float32Array<ArrayBuffer> | null;
|
|
470
|
+
set _octantLocalBounds(bounds: Float32Array<ArrayBuffer> | null);
|
|
390
471
|
get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
|
|
391
472
|
get _hasOctantOffsets(): boolean;
|
|
392
473
|
get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
|
|
@@ -420,11 +501,12 @@ export declare class LodStore {
|
|
|
420
501
|
deleteId(id: number): void;
|
|
421
502
|
}
|
|
422
503
|
|
|
423
|
-
declare interface MainModule {
|
|
504
|
+
declare interface MainModule extends SharkModule {
|
|
424
505
|
AttributeInfo: new () => AttributeInfo;
|
|
425
506
|
CompressionType: {
|
|
426
507
|
SHARK_ELLIPSOID_COMPRESSED: unknown;
|
|
427
508
|
SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
|
|
509
|
+
SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
|
|
428
510
|
};
|
|
429
511
|
Handedness: { Right: number; Left: number };
|
|
430
512
|
HEAPF32: Float32Array<ArrayBuffer>;
|
|
@@ -454,6 +536,7 @@ declare interface MainModule {
|
|
|
454
536
|
remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
|
|
455
537
|
deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
|
|
456
538
|
GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
|
|
539
|
+
GetOctantLocalBoundingBoxes(handle: number, sceneObjectId: number): number[];
|
|
457
540
|
GetAssetsAsync(handle: number, tags: StringVector): unknown[];
|
|
458
541
|
GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
|
|
459
542
|
GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
|
|
@@ -469,7 +552,12 @@ declare interface MainModule {
|
|
|
469
552
|
TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
|
|
470
553
|
GetActiveClientSideIdsCheckSum(): number;
|
|
471
554
|
TakeRenderRequired(handle: number): boolean;
|
|
472
|
-
BeginFrame(
|
|
555
|
+
BeginFrame(
|
|
556
|
+
contextHandle: number,
|
|
557
|
+
previousFrameTimeMs: number,
|
|
558
|
+
primsResident: number,
|
|
559
|
+
primCapacity: number,
|
|
560
|
+
): number;
|
|
473
561
|
modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
|
|
474
562
|
setMaxCacheSize(maxSizeBytes: number): void;
|
|
475
563
|
SetPreferSharkEncodingProfiles(prefer: boolean): void;
|
|
@@ -511,16 +599,20 @@ export declare class Miris {
|
|
|
511
599
|
static readonly _XR_TARGET_FRAME_RATE = 43;
|
|
512
600
|
/* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
|
|
513
601
|
/* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
|
|
514
|
-
static readonly _SHARK_SPLAT_CAPACITY_DESKTOP
|
|
602
|
+
static readonly _SHARK_SPLAT_CAPACITY_DESKTOP: number;
|
|
515
603
|
/* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
|
|
516
|
-
static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP =
|
|
604
|
+
static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2400000;
|
|
517
605
|
/* Excluded from this release type: _isMobileDevice */
|
|
518
606
|
/* Excluded from this release type: _sharkSplatCapacity */
|
|
607
|
+
/* Excluded from this release type: _minimumSplatCount */
|
|
608
|
+
/* Excluded from this release type: _splatCountStorageKey */
|
|
609
|
+
/* Excluded from this release type: _reloadWithLowerSplatCapacity */
|
|
519
610
|
/* Excluded from this release type: _limitSharkSplatCapacity */
|
|
520
611
|
/* Excluded from this release type: _sharkSplatBudgetCap */
|
|
521
612
|
/* Excluded from this release type: _setTargetFrameRate */
|
|
522
613
|
/* Excluded from this release type: _setXRModeActive */
|
|
523
614
|
/* Excluded from this release type: _setSplatCountBudgetOverride */
|
|
615
|
+
/* Excluded from this release type: _reportRendererPrims */
|
|
524
616
|
/* Excluded from this release type: _update */
|
|
525
617
|
getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
|
|
526
618
|
getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
|
|
@@ -575,6 +667,72 @@ export declare type RawByteAttributeWithBounds = {
|
|
|
575
667
|
};
|
|
576
668
|
};
|
|
577
669
|
|
|
670
|
+
declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
|
|
671
|
+
export { ReadyState_2 as ReadyState }
|
|
672
|
+
|
|
673
|
+
declare interface RendererWGPU {
|
|
674
|
+
getProgramCount(): number;
|
|
675
|
+
getTextureCount(): number;
|
|
676
|
+
getEstimatedTextureSize(): number;
|
|
677
|
+
getTotalBufferSize(): number;
|
|
678
|
+
getGpuBufferSize(): number;
|
|
679
|
+
getUploadBufferSize(): number;
|
|
680
|
+
info: SharkInfo;
|
|
681
|
+
delete(): void;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
declare interface RenderState {
|
|
685
|
+
delete(): void;
|
|
686
|
+
initRenderState(
|
|
687
|
+
renderer: RendererWGPU,
|
|
688
|
+
width: number,
|
|
689
|
+
height: number,
|
|
690
|
+
vertices: number,
|
|
691
|
+
splats: number,
|
|
692
|
+
cubes: number,
|
|
693
|
+
sortThreads: number,
|
|
694
|
+
sortGroupSize: number,
|
|
695
|
+
sortKeySize: number,
|
|
696
|
+
): void;
|
|
697
|
+
initGraphicsState(
|
|
698
|
+
width: number,
|
|
699
|
+
height: number,
|
|
700
|
+
renderTextureFormat: TextureFormatValue,
|
|
701
|
+
depthTextureFormat: TextureFormatValue,
|
|
702
|
+
): void;
|
|
703
|
+
updateRenderDetails(
|
|
704
|
+
width: number,
|
|
705
|
+
height: number,
|
|
706
|
+
splatTriangles: number,
|
|
707
|
+
): void;
|
|
708
|
+
// Decodes Radiance .hdr bytes into roughness-ladder level `level` (0 is the sharp mirror).
|
|
709
|
+
// hdrPtr must address THIS module's heap - _malloc here and copy the bytes in.
|
|
710
|
+
// Returns false for bytes that are not a usable Radiance image, or a level out of range.
|
|
711
|
+
uploadEnvironmentLadderLevelFromHdr(
|
|
712
|
+
level: number,
|
|
713
|
+
sigmaDeg: number,
|
|
714
|
+
hdrPtr: number,
|
|
715
|
+
hdrSizeBytes: number,
|
|
716
|
+
): boolean;
|
|
717
|
+
// Republish the ladder's shape. Call after any level lands, or it is sampled at whatever shape
|
|
718
|
+
// the last uploadSplatSetData declared. Pass SplatSet.hasReflectionParams().
|
|
719
|
+
uploadReflectionLadderParams(reflectionsEnabled: boolean): void;
|
|
720
|
+
// Debug controls. Drop the reflection term, or replace the surfel colour with one of the layers
|
|
721
|
+
// it is shaded from, numbered as RenderViewModes.h's AOV_* defines. setRenderView below sets
|
|
722
|
+
// the AOV together with the rest of a named view.
|
|
723
|
+
setReflectionsEnabled(enabled: boolean): void;
|
|
724
|
+
// Render textured gaussians on pixels no surfel covers, resolved as fvdb's open gate does.
|
|
725
|
+
// Off by default: those pixels show the clear colour.
|
|
726
|
+
setSurfelLessTextureSplatsEnabled(enabled: boolean): void;
|
|
727
|
+
setDebugAovMode(mode: number): void;
|
|
728
|
+
// GPU pass timing. Turning it on makes every pass write timestamps; a no-op on a device without
|
|
729
|
+
// timestamp-query. resolveTimeStamps goes after a frame's render; passTimingsMs starts a readback
|
|
730
|
+
// of them unless one is in flight and maps pass name to milliseconds from the last that landed.
|
|
731
|
+
setPassTimingEnabled(enabled: boolean): void;
|
|
732
|
+
resolveTimeStamps(): void;
|
|
733
|
+
passTimingsMs(): Record<string, number>;
|
|
734
|
+
}
|
|
735
|
+
|
|
578
736
|
declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
|
|
579
737
|
|
|
580
738
|
declare interface RuntimeSettings extends EmbindObject {
|
|
@@ -633,6 +791,7 @@ export declare class Scene extends EventTarget {
|
|
|
633
791
|
/* Excluded from this release type: _getDrMap */
|
|
634
792
|
/* Excluded from this release type: _onDrMapLadder */
|
|
635
793
|
/* Excluded from this release type: _onFeatureData */
|
|
794
|
+
/* Excluded from this release type: _updateStreamStatuses */
|
|
636
795
|
/* Excluded from this release type: _onSceneLoaded */
|
|
637
796
|
delete(stream: Stream): void;
|
|
638
797
|
close(): void;
|
|
@@ -656,6 +815,115 @@ declare interface SceneMetadata extends EmbindObject {
|
|
|
656
815
|
readonly inputColorSpace: string;
|
|
657
816
|
}
|
|
658
817
|
|
|
818
|
+
declare interface SharkInfo {
|
|
819
|
+
renderCalls: number;
|
|
820
|
+
render: SharkRenderInfo;
|
|
821
|
+
reset(): void;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
declare interface SharkModule {
|
|
825
|
+
Camera: new () => Camera_2;
|
|
826
|
+
RenderState: new () => RenderState;
|
|
827
|
+
SplatSet: new () => SplatSet;
|
|
828
|
+
GlassMeshRegistry: new () => GlassMeshRegistry;
|
|
829
|
+
vec4: new (x: number, y: number, z: number, w: number) => vec4;
|
|
830
|
+
|
|
831
|
+
SortType: {
|
|
832
|
+
RADIX_SORT: SortTypeValue;
|
|
833
|
+
OCTREE_SORT: SortTypeValue;
|
|
834
|
+
KDTREE_SORT: SortTypeValue;
|
|
835
|
+
STD_SORT: SortTypeValue;
|
|
836
|
+
};
|
|
837
|
+
|
|
838
|
+
TextureFormat: {
|
|
839
|
+
RGBA32_Float: TextureFormatValue;
|
|
840
|
+
RGBA16_Float: TextureFormatValue;
|
|
841
|
+
RG16_Float: TextureFormatValue;
|
|
842
|
+
RGBA32_UInt: TextureFormatValue;
|
|
843
|
+
RGBA32_SInt: TextureFormatValue;
|
|
844
|
+
RGBA16_UInt: TextureFormatValue;
|
|
845
|
+
RGBA16_SInt: TextureFormatValue;
|
|
846
|
+
RGBA8_UInt: TextureFormatValue;
|
|
847
|
+
RGBA8_SInt: TextureFormatValue;
|
|
848
|
+
RGBA8_UNorm: TextureFormatValue;
|
|
849
|
+
RGBA8_SNorm: TextureFormatValue;
|
|
850
|
+
RGBA16_UNorm: TextureFormatValue;
|
|
851
|
+
RGBA16_SNorm: TextureFormatValue;
|
|
852
|
+
BGRA8_UNorm: TextureFormatValue;
|
|
853
|
+
BC6HRGB_UFloat: TextureFormatValue;
|
|
854
|
+
BC6HRGB_Float: TextureFormatValue;
|
|
855
|
+
BC7RGBA_UNorm: TextureFormatValue;
|
|
856
|
+
BC7RGBA_UNormSrgb: TextureFormatValue;
|
|
857
|
+
BC3RGBA_UNorm: TextureFormatValue;
|
|
858
|
+
BC3RGBA_UNormSrgb: TextureFormatValue;
|
|
859
|
+
Depth16Unorm: TextureFormatValue;
|
|
860
|
+
Depth24Plus: TextureFormatValue;
|
|
861
|
+
Depth32Float: TextureFormatValue;
|
|
862
|
+
};
|
|
863
|
+
|
|
864
|
+
WebGPU: WebGPUInterface;
|
|
865
|
+
|
|
866
|
+
// HEAPU8 is replaced whenever the heap grows, so read it fresh rather than caching it.
|
|
867
|
+
_malloc(byteCount: number): number;
|
|
868
|
+
_free(ptr: number): void;
|
|
869
|
+
readonly HEAPU8: Uint8Array;
|
|
870
|
+
|
|
871
|
+
uploadSplatSetData(
|
|
872
|
+
set: SplatSet,
|
|
873
|
+
renderState: RenderState,
|
|
874
|
+
start: number,
|
|
875
|
+
): void;
|
|
876
|
+
uploadChunkFades(set: SplatSet, renderState: RenderState): void;
|
|
877
|
+
// One mat4 per model root, so cheap enough to call every frame while an asset is moving
|
|
878
|
+
uploadModelRootTransforms(set: SplatSet, renderState: RenderState): void;
|
|
879
|
+
processSplatSet(
|
|
880
|
+
camera: Camera_2,
|
|
881
|
+
set: SplatSet,
|
|
882
|
+
renderState: RenderState,
|
|
883
|
+
width: number,
|
|
884
|
+
height: number,
|
|
885
|
+
triangles: number,
|
|
886
|
+
projectOnGPU: boolean,
|
|
887
|
+
cullEllipsoid: boolean,
|
|
888
|
+
useAffineApprox: boolean,
|
|
889
|
+
depthSortOnGPU: boolean,
|
|
890
|
+
useInvZ: boolean,
|
|
891
|
+
rasterizeWithCompute: boolean,
|
|
892
|
+
useSOGS: boolean,
|
|
893
|
+
sortType: SortTypeValue,
|
|
894
|
+
skipSort: boolean,
|
|
895
|
+
): number;
|
|
896
|
+
createRendererWGPUWithoutSurface(
|
|
897
|
+
colorTargetFormat: TextureFormatValue,
|
|
898
|
+
): RendererWGPU;
|
|
899
|
+
/// Gives back the reference WebGPU.importJsTexture returned for a texture.
|
|
900
|
+
releaseImportedTexture(texture: number): void;
|
|
901
|
+
renderSplatSetToSceneTextures(
|
|
902
|
+
splatSet: SplatSet,
|
|
903
|
+
renderState: RenderState,
|
|
904
|
+
colorTarget: number,
|
|
905
|
+
depthTarget: number,
|
|
906
|
+
renderGES: boolean,
|
|
907
|
+
): void;
|
|
908
|
+
// Render view registry, indexed as RenderViews.h orders it. setRenderView ignores an index
|
|
909
|
+
// Shark cannot produce.
|
|
910
|
+
setRenderView(viewIndex: number): void;
|
|
911
|
+
renderView(): number;
|
|
912
|
+
renderViewCount(): number;
|
|
913
|
+
renderViewName(viewIndex: number): string;
|
|
914
|
+
renderViewSupported(viewIndex: number): boolean;
|
|
915
|
+
// The next supported view, forwards for direction 1 and backwards for -1.
|
|
916
|
+
stepRenderView(from: number, direction: number): number;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
declare interface SharkRenderInfo {
|
|
920
|
+
triangles: number;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
declare interface SortTypeValue {
|
|
924
|
+
value: number;
|
|
925
|
+
}
|
|
926
|
+
|
|
659
927
|
declare type SparkAttributeInfo = {
|
|
660
928
|
elementsPerSplat: number;
|
|
661
929
|
discard: boolean;
|
|
@@ -670,6 +938,86 @@ declare interface SpatialFormat extends EmbindObject {
|
|
|
670
938
|
handedness: number;
|
|
671
939
|
}
|
|
672
940
|
|
|
941
|
+
declare interface SplatSet {
|
|
942
|
+
splatCount: number;
|
|
943
|
+
// Number of splats actually drawn: ordering[0, activeSplats) holds the unmasked splat indices.
|
|
944
|
+
// Set alongside orderingView() to restrict the draw to unmasked octant ranges.
|
|
945
|
+
activeSplats: number;
|
|
946
|
+
// Selects which ellipsoid layout to allocate and what ellipsoidsView() exposes:
|
|
947
|
+
// packed (16 bytes/splat) or uncompressed (48). Must be set before the first resize.
|
|
948
|
+
usePackedEllipsoids: boolean;
|
|
949
|
+
// direct-write upload: resize -> write into the views -> finalize.
|
|
950
|
+
// views are valid only until the next resize.
|
|
951
|
+
resize(splatCount: number): void;
|
|
952
|
+
ellipsoidsView(): Uint32Array;
|
|
953
|
+
colorsView(): Uint32Array;
|
|
954
|
+
sh1View(): Uint32Array;
|
|
955
|
+
sh2View(): Uint32Array;
|
|
956
|
+
sh3aView(): Uint32Array;
|
|
957
|
+
sh3bView(): Uint32Array;
|
|
958
|
+
// mod_depth is a half-float per primitive slot (dense, padded for non-surfels), so this is a
|
|
959
|
+
// Uint16Array unlike every other view here -- do not address it with the uint32 splat strides
|
|
960
|
+
// used for ellipsoids/colors/sh*.
|
|
961
|
+
modDepthView(): Uint16Array;
|
|
962
|
+
// Per-chunk fade (opacity multiplier), one float per chunk, defaults to 1.0.
|
|
963
|
+
// Also sizes the chunk slot to model root slot map below, since both are indexed by chunk slot
|
|
964
|
+
resizeChunkFades(chunkCount: number): void;
|
|
965
|
+
chunkFadesView(): Float32Array;
|
|
966
|
+
// Per-splat chunk index, defaults to slot 0. Write before finalize()
|
|
967
|
+
chunkIndicesView(): Int32Array;
|
|
968
|
+
// Model transforms, resolved per splat as
|
|
969
|
+
// modelRootTransforms[chunkModelRoots[chunkIndices[splat]]]
|
|
970
|
+
// Slot 0 of both tables is reserved as identity, so real slots start at 1 and a set that
|
|
971
|
+
// never writes them renders untransformed.
|
|
972
|
+
resizeModelRootSlots(modelRootCount: number): void;
|
|
973
|
+
// 16 floats per model root, COLUMN-major - i.e. write THREE's Matrix4.toArray() straight in
|
|
974
|
+
modelRootTransformsView(): Float32Array;
|
|
975
|
+
// The inverses, same slots and layout. The true-perspective projection (Project.glsl) transforms
|
|
976
|
+
// a quadratic form and needs them; writing a transform without its inverse leaves that path
|
|
977
|
+
// projecting the splat as if untransformed. Use Matrix4.invert() on a copy
|
|
978
|
+
modelRootInverseTransformsView(): Float32Array;
|
|
979
|
+
// Sized by resizeChunkFades. Defaults to slot 0 (identity) for every chunk
|
|
980
|
+
chunkModelRootsView(): Int32Array;
|
|
981
|
+
// resizeModelRootSlots resets every slot to the absolute decode. False for a slot outside the table
|
|
982
|
+
setModelRootRootRelativeDecode(
|
|
983
|
+
slot: number,
|
|
984
|
+
originX: number,
|
|
985
|
+
originY: number,
|
|
986
|
+
originZ: number,
|
|
987
|
+
step: number,
|
|
988
|
+
lnScaleOffset: number,
|
|
989
|
+
): boolean;
|
|
990
|
+
// int32 render-order buffer (sized 2*splatCount after finalize). Valid only until the next resize.
|
|
991
|
+
orderingView(): Int32Array;
|
|
992
|
+
finalize(): void;
|
|
993
|
+
// like finalize() but keeps splats in their delivered (octant-sorted) order — no kd-tree reorder —
|
|
994
|
+
// so sparse-octant range masking can index child-octant ranges directly. RADIX_SORT only.
|
|
995
|
+
finalizeBounds(): void;
|
|
996
|
+
// Whether the asset carries per-surfel reflectance records, which is what decides whether
|
|
997
|
+
// reflections are shaded at all. Pass to RenderState.uploadReflectionLadderParams.
|
|
998
|
+
hasReflectionParams(): boolean;
|
|
999
|
+
// Widens packed reflectance records - recordVersion 2 for 18-byte reflectanceDataV2, 1 for
|
|
1000
|
+
// 26-byte reflectanceDataV1 - into the per-splat GPU records at bufferOffset. wirePtr must
|
|
1001
|
+
// address THIS module's heap - _malloc here and copy the bytes in, since the attribute lives in
|
|
1002
|
+
// the engine module's. Records cover a node's surfel range, which starts at its first splat.
|
|
1003
|
+
// Returns the records written; 0 if the data was rejected.
|
|
1004
|
+
decodeReflectionParams(
|
|
1005
|
+
recordVersion: number,
|
|
1006
|
+
wirePtr: number,
|
|
1007
|
+
wireSizeBytes: number,
|
|
1008
|
+
elementCount: number,
|
|
1009
|
+
bufferOffset: number,
|
|
1010
|
+
nodeSplatCount: number,
|
|
1011
|
+
logId: number,
|
|
1012
|
+
): number;
|
|
1013
|
+
// Zeroes records in [startSplat, endSplat). Needed wherever splats are re-packed at fresh
|
|
1014
|
+
// offsets, or a reused slot shades its splat from the previous occupant's material.
|
|
1015
|
+
clearReflectionParams(startSplat: number, endSplat: number): void;
|
|
1016
|
+
// Splats in [0, count) holding a non-zero record. Diagnostic.
|
|
1017
|
+
populatedReflectionParamCount(count: number): number;
|
|
1018
|
+
delete(): void;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
673
1021
|
export declare class Stream extends EventTarget {
|
|
674
1022
|
#private;
|
|
675
1023
|
static readonly _idMap: Map<number, Stream>;
|
|
@@ -724,6 +1072,9 @@ export declare class Stream extends EventTarget {
|
|
|
724
1072
|
/* Excluded from this release type: _onStreamLoaded */
|
|
725
1073
|
getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
|
|
726
1074
|
/* Excluded from this release type: _getViewingVolumeObb */
|
|
1075
|
+
/** How much of the stream has loaded, as of the last frame. */
|
|
1076
|
+
get readyState(): ReadyState_2;
|
|
1077
|
+
/* Excluded from this release type: _updateStatus */
|
|
727
1078
|
/* Excluded from this release type: _onRootLoaded */
|
|
728
1079
|
add(modelRoot: ModelRoot): void;
|
|
729
1080
|
end(): void;
|
|
@@ -738,6 +1089,10 @@ export declare type StreamInit = {
|
|
|
738
1089
|
|
|
739
1090
|
declare type StringVector = EmbindVector<string>;
|
|
740
1091
|
|
|
1092
|
+
declare interface TextureFormatValue {
|
|
1093
|
+
value: number;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
741
1096
|
/** Recursive variant tree node from WASM. */
|
|
742
1097
|
export declare type VariantNode = {
|
|
743
1098
|
id: number;
|
|
@@ -748,4 +1103,18 @@ export declare type VariantNode = {
|
|
|
748
1103
|
nestedSets?: VariantNode[];
|
|
749
1104
|
};
|
|
750
1105
|
|
|
1106
|
+
declare interface vec4 {
|
|
1107
|
+
x: number;
|
|
1108
|
+
y: number;
|
|
1109
|
+
z: number;
|
|
1110
|
+
w: number;
|
|
1111
|
+
delete(): void;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
declare interface WebGPUInterface {
|
|
1115
|
+
importJsAdapter(adapter: GPUAdapter, parentPtr?: number): number;
|
|
1116
|
+
importJsDevice(device: GPUDevice, parentPtr?: number): number;
|
|
1117
|
+
importJsTexture(obj: GPUTexture, parentPtr?: number): number;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
751
1120
|
export { }
|