@rings-webgpu/core 1.0.39 → 1.0.40
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 +52 -52
- package/dist/rings.es.js.map +2 -2
- package/dist/rings.es.max.js +92 -33
- package/dist/rings.umd.js +57 -57
- package/dist/rings.umd.js.map +2 -2
- package/dist/rings.umd.max.js +92 -33
- package/dist/types/loader/parser/tileRenderer/TilesRenderer.d.ts +8 -2
- package/package.json +1 -1
package/dist/rings.es.max.js
CHANGED
|
@@ -42285,7 +42285,7 @@ class PostProcessingComponent extends ComponentBase {
|
|
|
42285
42285
|
}
|
|
42286
42286
|
}
|
|
42287
42287
|
|
|
42288
|
-
const version = "1.0.
|
|
42288
|
+
const version = "1.0.39";
|
|
42289
42289
|
|
|
42290
42290
|
class Engine3D {
|
|
42291
42291
|
/**
|
|
@@ -55171,7 +55171,7 @@ let GSplatStreamRenderer = class extends RenderNode {
|
|
|
55171
55171
|
* Update node before rendering
|
|
55172
55172
|
*/
|
|
55173
55173
|
nodeUpdate(view, passType, renderPassState, clusterLightingBuffer) {
|
|
55174
|
-
if (this._validCount > 0 && view?.camera) {
|
|
55174
|
+
if (this._validCount > 0 && view?.camera && this._frameCount >= 60) {
|
|
55175
55175
|
if (view.camera.viewMatrix) {
|
|
55176
55176
|
this.scheduleOrder(view.camera.viewMatrix);
|
|
55177
55177
|
}
|
|
@@ -65917,11 +65917,11 @@ function toggleTiles(tile, renderer) {
|
|
|
65917
65917
|
const wasVisible = tile.__wasSetVisible;
|
|
65918
65918
|
const wasActive = tile.__wasSetActive;
|
|
65919
65919
|
if (wasActive !== setActive) {
|
|
65920
|
-
renderer.
|
|
65920
|
+
renderer.setTileDelayedActive(tile, setActive);
|
|
65921
65921
|
tile.__wasSetActive = setActive;
|
|
65922
65922
|
}
|
|
65923
65923
|
if (wasVisible !== setVisible) {
|
|
65924
|
-
renderer.
|
|
65924
|
+
renderer.setTileDelayedVisible(tile, setVisible);
|
|
65925
65925
|
tile.__wasSetVisible = setVisible;
|
|
65926
65926
|
}
|
|
65927
65927
|
}
|
|
@@ -66294,6 +66294,8 @@ class TilesRenderer {
|
|
|
66294
66294
|
_activeTiles = /* @__PURE__ */ new Set();
|
|
66295
66295
|
// Tiles that should be hidden but are delayed due to children loading
|
|
66296
66296
|
_delayedHideTiles = /* @__PURE__ */ new Set();
|
|
66297
|
+
_delayedVisibleTiles = /* @__PURE__ */ new Set();
|
|
66298
|
+
_delayedActiveTiles = /* @__PURE__ */ new Set();
|
|
66297
66299
|
// Rings-specific: Scene group
|
|
66298
66300
|
group;
|
|
66299
66301
|
// Rings-specific: Camera management
|
|
@@ -66412,6 +66414,8 @@ class TilesRenderer {
|
|
|
66412
66414
|
_usedSet.clear();
|
|
66413
66415
|
this.updateCameraInfo();
|
|
66414
66416
|
this._checkDelayedHideTiles();
|
|
66417
|
+
this._checkDelayedActiveTiles();
|
|
66418
|
+
this._checkDelayedVisibleTiles();
|
|
66415
66419
|
markUsedTiles(root, this);
|
|
66416
66420
|
markUsedSetLeaves(root, this);
|
|
66417
66421
|
markVisibleTiles(root, this);
|
|
@@ -66845,7 +66849,6 @@ class TilesRenderer {
|
|
|
66845
66849
|
}
|
|
66846
66850
|
if (scene) {
|
|
66847
66851
|
tile.cached.scene = scene;
|
|
66848
|
-
tile.loadingState = LOADED;
|
|
66849
66852
|
const bytesUsed = this._estimateBytesUsed(scene);
|
|
66850
66853
|
this._bytesUsed.set(scene, bytesUsed);
|
|
66851
66854
|
this.lruCache.setMemoryUsage(tile, bytesUsed);
|
|
@@ -66863,10 +66866,21 @@ class TilesRenderer {
|
|
|
66863
66866
|
});
|
|
66864
66867
|
}
|
|
66865
66868
|
{
|
|
66866
|
-
this.
|
|
66869
|
+
this.setTileImmediateActive(tile);
|
|
66867
66870
|
tile.active = true;
|
|
66871
|
+
tile.__wasSetActive = true;
|
|
66868
66872
|
this.stats.active++;
|
|
66869
66873
|
}
|
|
66874
|
+
{
|
|
66875
|
+
this.setTileImmediateVisible(tile);
|
|
66876
|
+
tile.visible = true;
|
|
66877
|
+
tile.__wasSetVisible = true;
|
|
66878
|
+
this.stats.visible++;
|
|
66879
|
+
}
|
|
66880
|
+
tile.loadingState = LOADED;
|
|
66881
|
+
tile.usedLastFrame = true;
|
|
66882
|
+
markVisibleTiles(tile, this);
|
|
66883
|
+
toggleTiles(tile, this);
|
|
66870
66884
|
} else {
|
|
66871
66885
|
tile.loadingState = FAILED;
|
|
66872
66886
|
this.stats.failed++;
|
|
@@ -66882,33 +66896,46 @@ class TilesRenderer {
|
|
|
66882
66896
|
/**
|
|
66883
66897
|
* Set tile active state
|
|
66884
66898
|
*/
|
|
66885
|
-
|
|
66899
|
+
setTileDelayedActive(tile, active) {
|
|
66886
66900
|
if (active) {
|
|
66887
66901
|
this._activeTiles.add(tile);
|
|
66888
66902
|
if (this._delayedHideTiles.has(tile)) {
|
|
66889
66903
|
this._delayedHideTiles.delete(tile);
|
|
66890
66904
|
}
|
|
66905
|
+
if (!this._delayedActiveTiles.has(tile)) {
|
|
66906
|
+
this._delayedActiveTiles.add(tile);
|
|
66907
|
+
}
|
|
66891
66908
|
} else {
|
|
66892
66909
|
this._activeTiles.delete(tile);
|
|
66910
|
+
if (!this._delayedHideTiles.has(tile)) {
|
|
66911
|
+
this._delayedHideTiles.add(tile);
|
|
66912
|
+
}
|
|
66913
|
+
if (this._delayedActiveTiles.has(tile)) {
|
|
66914
|
+
this._delayedActiveTiles.delete(tile);
|
|
66915
|
+
}
|
|
66893
66916
|
}
|
|
66894
|
-
|
|
66895
|
-
|
|
66896
|
-
|
|
66897
|
-
|
|
66898
|
-
|
|
66899
|
-
|
|
66900
|
-
|
|
66901
|
-
|
|
66917
|
+
}
|
|
66918
|
+
setTileImmediateActive(tile) {
|
|
66919
|
+
if (tile.hasRenderableContent) {
|
|
66920
|
+
const scene = tile.cached.scene;
|
|
66921
|
+
if (scene) {
|
|
66922
|
+
if (!this.group.entityChildren.includes(scene)) {
|
|
66923
|
+
if (scene.parent) {
|
|
66924
|
+
scene.parent.object3D.removeChild(scene);
|
|
66925
|
+
}
|
|
66926
|
+
this.group.addChild(scene);
|
|
66927
|
+
}
|
|
66928
|
+
if (tile.cached.worldTransform) {
|
|
66929
|
+
this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
|
|
66902
66930
|
}
|
|
66903
|
-
this.group.addChild(scene);
|
|
66904
|
-
}
|
|
66905
|
-
if (tile.cached.worldTransform) {
|
|
66906
|
-
this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
|
|
66907
66931
|
}
|
|
66908
|
-
|
|
66909
|
-
|
|
66910
|
-
|
|
66911
|
-
|
|
66932
|
+
}
|
|
66933
|
+
}
|
|
66934
|
+
setTileImmediateVisible(tile) {
|
|
66935
|
+
if (tile.hasRenderableContent) {
|
|
66936
|
+
const scene = tile.cached.scene;
|
|
66937
|
+
if (scene) {
|
|
66938
|
+
scene.transform.enable = true;
|
|
66912
66939
|
}
|
|
66913
66940
|
}
|
|
66914
66941
|
}
|
|
@@ -66920,35 +66947,67 @@ class TilesRenderer {
|
|
|
66920
66947
|
return;
|
|
66921
66948
|
}
|
|
66922
66949
|
for (const tile of this._delayedHideTiles) {
|
|
66923
|
-
this._delayedHideTiles.delete(tile);
|
|
66924
66950
|
const scene = tile.cached.scene;
|
|
66925
66951
|
if (scene) {
|
|
66926
66952
|
scene.transform.enable = false;
|
|
66953
|
+
this._delayedHideTiles.delete(tile);
|
|
66954
|
+
}
|
|
66955
|
+
}
|
|
66956
|
+
}
|
|
66957
|
+
_checkDelayedActiveTiles() {
|
|
66958
|
+
for (const tile of this._delayedActiveTiles) {
|
|
66959
|
+
if (tile.hasRenderableContent) {
|
|
66960
|
+
const scene = tile.cached.scene;
|
|
66961
|
+
if (scene) {
|
|
66962
|
+
if (!this.group.entityChildren.includes(scene)) {
|
|
66963
|
+
if (scene.parent) {
|
|
66964
|
+
scene.parent.object3D.removeChild(scene);
|
|
66965
|
+
}
|
|
66966
|
+
this.group.addChild(scene);
|
|
66967
|
+
}
|
|
66968
|
+
if (tile.cached.worldTransform) {
|
|
66969
|
+
this._applyWorldTransform(scene.transform, tile.cached.worldTransform);
|
|
66970
|
+
}
|
|
66971
|
+
this._delayedActiveTiles.delete(tile);
|
|
66972
|
+
}
|
|
66973
|
+
} else {
|
|
66974
|
+
this._delayedActiveTiles.delete(tile);
|
|
66975
|
+
}
|
|
66976
|
+
}
|
|
66977
|
+
}
|
|
66978
|
+
_checkDelayedVisibleTiles() {
|
|
66979
|
+
for (const tile of this._delayedVisibleTiles) {
|
|
66980
|
+
if (tile.hasRenderableContent) {
|
|
66981
|
+
const scene = tile.cached.scene;
|
|
66982
|
+
if (scene) {
|
|
66983
|
+
scene.transform.enable = true;
|
|
66984
|
+
this._delayedVisibleTiles.delete(tile);
|
|
66985
|
+
}
|
|
66986
|
+
} else {
|
|
66987
|
+
this._delayedVisibleTiles.delete(tile);
|
|
66927
66988
|
}
|
|
66928
66989
|
}
|
|
66929
66990
|
}
|
|
66930
66991
|
/**
|
|
66931
66992
|
* Set tile visibility
|
|
66932
66993
|
*/
|
|
66933
|
-
|
|
66994
|
+
setTileDelayedVisible(tile, visible) {
|
|
66934
66995
|
if (visible) {
|
|
66935
66996
|
this._visibleTiles.add(tile);
|
|
66936
66997
|
if (this._delayedHideTiles.has(tile)) {
|
|
66937
66998
|
this._delayedHideTiles.delete(tile);
|
|
66938
66999
|
}
|
|
67000
|
+
if (!this._delayedVisibleTiles.has(tile)) {
|
|
67001
|
+
this._delayedVisibleTiles.add(tile);
|
|
67002
|
+
}
|
|
66939
67003
|
} else {
|
|
66940
67004
|
this._visibleTiles.delete(tile);
|
|
66941
|
-
}
|
|
66942
|
-
const scene = tile.cached.scene;
|
|
66943
|
-
if (!scene) {
|
|
66944
|
-
return;
|
|
66945
|
-
}
|
|
66946
|
-
if (visible) {
|
|
66947
|
-
scene.transform.enable = true;
|
|
66948
|
-
} else {
|
|
66949
67005
|
if (!this._delayedHideTiles.has(tile)) {
|
|
66950
67006
|
this._delayedHideTiles.add(tile);
|
|
66951
67007
|
}
|
|
67008
|
+
if (this._delayedVisibleTiles.has(tile)) {
|
|
67009
|
+
this._delayedVisibleTiles.delete(tile);
|
|
67010
|
+
}
|
|
66952
67011
|
}
|
|
66953
67012
|
}
|
|
66954
67013
|
/**
|