Prove released temporal field lowering

This commit is contained in:
Meta Vens 2026-07-16 17:53:40 +01:00
commit 2ff86e46ee
8 changed files with 35 additions and 7 deletions

View file

@ -6,7 +6,8 @@
"GameCult.Eve.Surface",
"GameCult.Eve.UnityUIToolkit",
"GameCult.Eve.UnityScene",
"GameCult.Eve.UnityScene.CultMesh"
"GameCult.Eve.UnityScene.CultMesh",
"Unity.RenderPipelines.Universal.Runtime"
],
"includePlatforms": [],
"excludePlatforms": [],

View file

@ -12,6 +12,7 @@ using GameCult.Eve.UnityScene.Fields;
using GameCult.Mesh;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.Rendering.Universal;
using UnityEngine.TestTools;
using UnityEngine.UIElements;
@ -811,6 +812,13 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
Assert.That(fieldParticles.ParticleCount, Is.EqualTo(65536));
Assert.That(fieldParticles.DispatchCount, Is.GreaterThan(0));
Assert.That(fieldParticles.DrawCount, Is.GreaterThan(0));
Assert.That(fieldVolume.LastGridCenter, Is.EqualTo(fieldParticles.LastGridCenter),
"Fog and stateless particles were lowered against different world-grid frames.");
var pilotCameraData = camera.GetUniversalAdditionalCameraData();
Assert.That(pilotCameraData.antialiasing, Is.EqualTo(AntialiasingMode.TemporalAntiAliasing),
"The advertised temporal reconstruction contract did not reach the pilot camera.");
Assert.That(pilotCameraData.taaSettings.baseBlendFactor, Is.EqualTo(0.99f).Within(0.0001f));
Assert.That(pilotCameraData.taaSettings.jitterScale, Is.EqualTo(0.1f).Within(0.0001f));
var fieldDocument = typeof(EveUnityFieldsVolumeRenderer)
.GetField("_document", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
?.GetValue(fieldVolume);

View file

@ -9,7 +9,7 @@
"org.gamecult.cultlib": "https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.15",
"org.gamecult.eve.plugin-fields": "https://github.com/GameCult/EvePlugins.git?path=/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields#eve-plugin-fields-unity-v0.2.3",
"org.gamecult.eve.surface": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.surface#eveunity-surface-v0.2.2",
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.55",
"org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.56",
"org.gamecult.eve.unity-uitoolkit": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1"
},
"testables": [

View file

@ -144,7 +144,7 @@
"hash": "140e1bd963a0033e66777a3b2c5fe6e9c97dfe32"
},
"org.gamecult.eve.unity-scene": {
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.55",
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.56",
"depth": 0,
"source": "git",
"dependencies": {
@ -155,7 +155,7 @@
"com.unity.render-pipelines.universal": "17.4.0",
"com.unity.modules.particlesystem": "1.0.0"
},
"hash": "745ce7cc24c514ad442d53807722b6a4651d9521"
"hash": "dfa843cde2c0d9328bb2fa342c9378bf3cdfe6f4"
},
"org.gamecult.eve.unity-uitoolkit": {
"version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1",

View file

@ -6,7 +6,8 @@
"GameCult.Eve.Surface",
"GameCult.Eve.UnityUIToolkit",
"GameCult.Eve.UnityScene",
"GameCult.Eve.UnityScene.CultMesh"
"GameCult.Eve.UnityScene.CultMesh",
"Unity.RenderPipelines.Universal.Runtime"
],
"includePlatforms": [],
"excludePlatforms": [],

View file

@ -12,6 +12,7 @@ using GameCult.Eve.UnityScene.Fields;
using GameCult.Mesh;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.Rendering.Universal;
using UnityEngine.TestTools;
using UnityEngine.UIElements;
@ -811,6 +812,13 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests
Assert.That(fieldParticles.ParticleCount, Is.EqualTo(65536));
Assert.That(fieldParticles.DispatchCount, Is.GreaterThan(0));
Assert.That(fieldParticles.DrawCount, Is.GreaterThan(0));
Assert.That(fieldVolume.LastGridCenter, Is.EqualTo(fieldParticles.LastGridCenter),
"Fog and stateless particles were lowered against different world-grid frames.");
var pilotCameraData = camera.GetUniversalAdditionalCameraData();
Assert.That(pilotCameraData.antialiasing, Is.EqualTo(AntialiasingMode.TemporalAntiAliasing),
"The advertised temporal reconstruction contract did not reach the pilot camera.");
Assert.That(pilotCameraData.taaSettings.baseBlendFactor, Is.EqualTo(0.99f).Within(0.0001f));
Assert.That(pilotCameraData.taaSettings.jitterScale, Is.EqualTo(0.1f).Within(0.0001f));
var fieldDocument = typeof(EveUnityFieldsVolumeRenderer)
.GetField("_document", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
?.GetValue(fieldVolume);

View file

@ -118,7 +118,7 @@ present in the map-only frame. This is transport, authority, field-production,
and lowering proof, not visual parity: the current pilot capture contains the
blue fog field and provider geometry, but nearby ships remain too dark and the
celestial composition lacks the fossil capture's readable close body. Release
`0.3.55` includes generic lowering for Eve Fields `0.2.3`'s
`0.3.56` includes generic lowering for Eve Fields `0.2.3`'s
`AnimatedRadialCosine` source alongside `PowerPulse`, dither-scale,
temporal-history, and finite-look-at semantics. Aetheria publishes the fossil
global animated simplex/cellular/ambient producer stack, body-owned radial wave
@ -131,6 +131,16 @@ presentation/composition or provider art calibration rather than missing state
delivery. Color, lighting, patch structure, readable world geometry, and
gravity-wave visual parity remain open. EveUnity must not compensate with
Aetheria-specific lighting or fog rules.
The `0.3.56` run also closes two camera-contract omissions. Aetheria advertises
the fossil pilot camera's neutral temporal-reprojection values; the released
generic lowerer applies URP TAA with `0.99` history blend, `0.1` jitter scale,
high quality, and zero sharpening. Fog and Stardust now consume one generic
camera-relative viewport-frame resolver rather than projecting the same splat
document independently. The live witness fails unless their snapped grid
centers are identical; this run resolved both to `(-6,-6)` after movement.
The capture is still visibly rough and is not a visual-parity claim.
Substance is not part of this path; later texture baking belongs in Blender.
Aetheria currently bundles ambientCG's 1K `Metal012` color, normal, and
metalness maps under CC0. The same pre-generated maps now replace dead

View file

@ -13,7 +13,7 @@ param(
)
$ErrorActionPreference = "Stop"
$expectedEveUnityCommit = "745ce7cc24c514ad442d53807722b6a4651d9521"
$expectedEveUnityCommit = "dfa843cde2c0d9328bb2fa342c9378bf3cdfe6f4"
$expectedEveFieldsCommit = "c5a4a75c1b727499b16c2dae1895f29e2a9f72f0"
$expectedEveUnityUiToolkitCommit = "4d0cbe0185bdc4fc65eb63503a7c5cb578539669"
$expectedCultLibCommit = "419053ebe2325848051c4f4d8ba352cd4286c424"