@rings-webgpu/core 1.0.12 → 1.0.13
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/rings.es.js +241 -255
- package/dist/rings.es.js.map +3 -3
- package/dist/rings.es.max.js +356 -249
- package/dist/rings.umd.js +235 -249
- package/dist/rings.umd.js.map +3 -3
- package/dist/rings.umd.max.js +357 -248
- package/dist/types/components/renderer/GSplatRenderer.d.ts +16 -5
- package/dist/types/gfx/renderJob/jobs/RendererJob.d.ts +2 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/materials/GSplatMaterial.d.ts +4 -2
- package/dist/types/shape/GSplatGeometry.d.ts +13 -0
- package/dist/types/textures/R32UintTexture.d.ts +11 -0
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { PassType } from "../../gfx/renderJob/passRenderer/state/PassType";
|
|
|
7
7
|
import { GaussianSplatAsset } from "../../loader/parser/3dgs/GaussianSplatAsset";
|
|
8
8
|
import { Uint8ArrayTexture } from "../../textures/Uint8ArrayTexture";
|
|
9
9
|
import { Uint32ArrayTexture } from "../../textures/Uint32ArrayTexture";
|
|
10
|
+
import { R32UintTexture } from "../../textures/R32UintTexture";
|
|
10
11
|
import { Float16ArrayTexture } from "../../textures/Float16ArrayTexture";
|
|
11
12
|
import { Vector2 } from "../../math/Vector2";
|
|
12
13
|
/**
|
|
@@ -22,7 +23,7 @@ export declare class GSplatRenderer extends RenderNode {
|
|
|
22
23
|
transformA: Uint32ArrayTexture;
|
|
23
24
|
transformB: Float16ArrayTexture;
|
|
24
25
|
texParams: Float32Array;
|
|
25
|
-
splatOrder:
|
|
26
|
+
splatOrder: R32UintTexture;
|
|
26
27
|
gsplatMaterial: GSplatMaterial;
|
|
27
28
|
private _positions;
|
|
28
29
|
get positions(): Float32Array;
|
|
@@ -35,6 +36,8 @@ export declare class GSplatRenderer extends RenderNode {
|
|
|
35
36
|
private _lastViewMatrixHash;
|
|
36
37
|
private _lastCameraSpeed;
|
|
37
38
|
private _adaptiveSorting;
|
|
39
|
+
private _lastPixelCullParams;
|
|
40
|
+
private _texturesInitialized;
|
|
38
41
|
private _lodEnabled;
|
|
39
42
|
private _lodDistances;
|
|
40
43
|
private _lodRatios;
|
|
@@ -45,6 +48,8 @@ export declare class GSplatRenderer extends RenderNode {
|
|
|
45
48
|
private _mapping;
|
|
46
49
|
private _fullCount;
|
|
47
50
|
get fullCount(): number;
|
|
51
|
+
private _batchSize;
|
|
52
|
+
instanceCount: number;
|
|
48
53
|
constructor();
|
|
49
54
|
/**
|
|
50
55
|
* Initialize from Gaussian Splat asset
|
|
@@ -108,6 +113,16 @@ export declare class GSplatRenderer extends RenderNode {
|
|
|
108
113
|
maxEnabled: boolean;
|
|
109
114
|
distanceEnabled: boolean;
|
|
110
115
|
};
|
|
116
|
+
/**
|
|
117
|
+
* Get batching statistics
|
|
118
|
+
*/
|
|
119
|
+
getBatchingStats(): {
|
|
120
|
+
enabled: boolean;
|
|
121
|
+
batchSize: number;
|
|
122
|
+
instanceCount: number;
|
|
123
|
+
splatCount: number;
|
|
124
|
+
reduction: number;
|
|
125
|
+
};
|
|
111
126
|
/**
|
|
112
127
|
* Calculate texture size for given splat count
|
|
113
128
|
*/
|
|
@@ -136,10 +151,6 @@ export declare class GSplatRenderer extends RenderNode {
|
|
|
136
151
|
* Update node before rendering
|
|
137
152
|
*/
|
|
138
153
|
nodeUpdate(view: View3D, passType: PassType, renderPassState: RendererPassState, clusterLightingBuffer?: ClusterLightingBuffer): void;
|
|
139
|
-
/**
|
|
140
|
-
* Render pass
|
|
141
|
-
*/
|
|
142
|
-
renderPass2(view: View3D, passType: PassType, rendererPassState: RendererPassState, clusterLightingBuffer: ClusterLightingBuffer, encoder: GPURenderPassEncoder, useBundle?: boolean): void;
|
|
143
154
|
/**
|
|
144
155
|
* Render pass (fallback)
|
|
145
156
|
*/
|
|
@@ -18,7 +18,8 @@ export declare class RendererJob {
|
|
|
18
18
|
shadowMapPassRenderer: ShadowMapPassRenderer;
|
|
19
19
|
pointLightShadowRenderer: PointLightShadowRenderer;
|
|
20
20
|
ddgiProbeRenderer: DDGIProbeRenderer;
|
|
21
|
-
|
|
21
|
+
_postRenderer: PostRenderer;
|
|
22
|
+
get postRenderer(): PostRenderer;
|
|
22
23
|
clusterLightingRender: ClusterLightingRender;
|
|
23
24
|
reflectionRenderer: ReflectionRenderer;
|
|
24
25
|
occlusionSystem: OcclusionSystem;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -545,6 +545,7 @@ export * from "./setting/post/SSRSetting";
|
|
|
545
545
|
export * from "./setting/post/TAASetting";
|
|
546
546
|
export * from "./shape/BoxGeometry";
|
|
547
547
|
export * from "./shape/CylinderGeometry";
|
|
548
|
+
export * from "./shape/GSplatGeometry";
|
|
548
549
|
export * from "./shape/PlaneGeometry";
|
|
549
550
|
export * from "./shape/SphereGeometry";
|
|
550
551
|
export * from "./shape/TorusGeometry";
|
|
@@ -561,6 +562,7 @@ export * from "./textures/Float32ArrayTexture";
|
|
|
561
562
|
export * from "./textures/HDRTexture";
|
|
562
563
|
export * from "./textures/HDRTextureCube";
|
|
563
564
|
export * from "./textures/LDRTextureCube";
|
|
565
|
+
export * from "./textures/R32UintTexture";
|
|
564
566
|
export * from "./textures/RenderTexture";
|
|
565
567
|
export * from "./textures/SolidColorSky";
|
|
566
568
|
export * from "./textures/TextureCubeFaceData";
|
|
@@ -2,6 +2,7 @@ import { Material } from "./Material";
|
|
|
2
2
|
import { Float16ArrayTexture } from "../textures/Float16ArrayTexture";
|
|
3
3
|
import { Uint8ArrayTexture } from "../textures/Uint8ArrayTexture";
|
|
4
4
|
import { Uint32ArrayTexture } from "../textures/Uint32ArrayTexture";
|
|
5
|
+
import { R32UintTexture } from "../textures/R32UintTexture";
|
|
5
6
|
import { Matrix4 } from "../math/Matrix4";
|
|
6
7
|
/**
|
|
7
8
|
* GSplat Material
|
|
@@ -9,8 +10,9 @@ import { Matrix4 } from "../math/Matrix4";
|
|
|
9
10
|
* @group Material
|
|
10
11
|
*/
|
|
11
12
|
export declare class GSplatMaterial extends Material {
|
|
13
|
+
private _pixelCullArray;
|
|
12
14
|
constructor();
|
|
13
|
-
setSplatTextures(splatColor: Uint8ArrayTexture, transformA: Uint32ArrayTexture, transformB: Float16ArrayTexture, texParams: Float32Array, splatOrder?:
|
|
15
|
+
setSplatTextures(splatColor: Uint8ArrayTexture, transformA: Uint32ArrayTexture, transformB: Float16ArrayTexture, texParams: Float32Array, splatOrder?: R32UintTexture): void;
|
|
14
16
|
/**
|
|
15
17
|
* Set the model matrix for transforming splats to world space
|
|
16
18
|
*/
|
|
@@ -21,5 +23,5 @@ export declare class GSplatMaterial extends Material {
|
|
|
21
23
|
* @param maxPixels Maximum pixel coverage (cull oversized splats), default: 0 (disabled)
|
|
22
24
|
* @param maxPixelCullDistance Only cull oversized splats within this distance, 0 = always cull
|
|
23
25
|
*/
|
|
24
|
-
setPixelCulling(minPixels: number, maxPixels: number, maxPixelCullDistance?: number): void;
|
|
26
|
+
setPixelCulling(minPixels: number, maxPixels: number, maxPixelCullDistance?: number, batchSize?: number): void;
|
|
25
27
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GeometryBase } from "../core/geometry/GeometryBase";
|
|
2
|
+
/**
|
|
3
|
+
* GSplat Geometry (PlayCanvas Style)
|
|
4
|
+
*
|
|
5
|
+
* Exactly like PlayCanvas gsplat-instance.js:
|
|
6
|
+
* - batchSize splats per draw call (default 128)
|
|
7
|
+
* - Each splat = 4 vertices (x, y, local_index)
|
|
8
|
+
* - Each splat = 6 indices (2 triangles)
|
|
9
|
+
*/
|
|
10
|
+
export declare class GSplatGeometry extends GeometryBase {
|
|
11
|
+
batchSize: number;
|
|
12
|
+
constructor(batchSize?: number);
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Texture } from "../gfx/graphics/webGpu/core/texture/Texture";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* R32Uint texture backed by Uint32Array
|
|
5
|
+
* @group Texture
|
|
6
|
+
*/
|
|
7
|
+
export declare class R32UintTexture extends Texture {
|
|
8
|
+
private _dataBuffer;
|
|
9
|
+
create(width: number, height: number, data: Uint32Array): this;
|
|
10
|
+
updateTexture(width: number, height: number, data: Uint32Array): void;
|
|
11
|
+
}
|