Integrate CultMesh UI and URP cleanup

This commit is contained in:
Meta Vens 2026-06-30 19:14:49 +01:00
commit 4d7bb65868
131 changed files with 7209 additions and 5084 deletions

View file

@ -27,6 +27,8 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
private float _nextRefreshTime;
private AetheriaUnityRtsViewportDocuments _viewportDocuments;
private AetheriaRuntimeRenderSplatsViewportDocument _fallbackRenderSplatsViewport;
private string _lastWarningMessage = "";
public RenderTexture TargetTexture
{
@ -39,6 +41,15 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
}
}
public AetheriaRuntimeRenderSplatsViewportDocument CurrentDocument =>
_viewportDocuments?.CurrentRenderSplatsViewport ?? _fallbackRenderSplatsViewport;
public bool RenderInLateUpdate
{
get => renderInLateUpdate;
set => renderInLateUpdate = value;
}
private void Reset()
{
rasterizer = GetComponent<AetheriaRenderSplatRasterizer>();
@ -63,7 +74,7 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
return false;
RefreshDocument(false);
var document = _viewportDocuments?.CurrentRenderSplatsViewport;
var document = _viewportDocuments?.CurrentRenderSplatsViewport ?? _fallbackRenderSplatsViewport;
if (document == null)
return false;
@ -118,13 +129,36 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
.RenderSplatViewportDocuments(viewport, "unity-render-splat-viewport");
ClearViewportDocument();
_viewportDocuments = nextDocuments;
_fallbackRenderSplatsViewport = null;
_lastWarningMessage = "";
}
catch (Exception ex)
{
Debug.LogWarning($"Failed to read Aetheria render splats from local Verse state: {ex.Message}");
ClearViewportDocument();
_fallbackRenderSplatsViewport = EmptyRenderSplatsViewport(viewport);
WarnOnce($"Failed to read Aetheria render splats from local Verse state: {ex.Message}");
}
}
private void WarnOnce(string message)
{
if (string.Equals(_lastWarningMessage, message, StringComparison.Ordinal))
return;
_lastWarningMessage = message;
Debug.LogWarning(message);
}
private static AetheriaRuntimeRenderSplatsViewportDocument EmptyRenderSplatsViewport(
AetheriaRuntimeRtsViewportBounds viewport)
{
return new AetheriaRuntimeRenderSplatsViewportDocument
{
PublishedAtUtc = DateTimeOffset.UtcNow.ToString("O"),
Viewport = viewport ?? new AetheriaRuntimeRtsViewportBounds()
};
}
private AetheriaRuntimeRtsViewportBounds ResolveViewportBounds()
{
var halfSize = size * 0.5f;